[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

16.6.6 制約を使わないということ

マシンによっては、アーキテクチャがきれいなのでオペランドの制約を 必要としないものもある。例えば、Vax では、オペランドがある文脈で有効なら、 その他のどの文脈でも有効である。そういうマシンでは、各オペランド制約は ‘g’ になるだろう。例外は、“load address” 命令のオペランドだけである。 “load adress” 命令は、指定されたメモリ位置の内容を参照するかのような 書き方をするが、実際はアドレスを参照するだけである。この場合には 制約は ‘p’ になる。

このようなマシンでは全部の制約について ‘g’ や ‘p’ と 書く代わりに、制約を空にすることもできる。 その場合には、各 match_operand の制約を ‘""’ とすれば良い。 アドレスオペランドは、 address 式で match_operand 囲むように書くことによって 認識されるのであり、制約によって認識されるのではない。

マシン記述の制約が単に空なら、コンパイル過程の特定の部分が 省略され、コンパイルが速くなる。 だが、制約を必要としない機種は実際にはほとんど存在しない。 現在存在するマシン記述は全て制約を使っている。


This document was generated using texi2html 1.78.