Some machines are so clean that operand constraints are not required. For example, on the Vax, an operand valid in one context is valid in any other context. On such a machine, every operand constraint would be `g', excepting only operands of "load address" instructions which are written as if they referred to a memory location's contents but actual refer to its address. They would have constraint `p'.
For such machines, instead of writing `g' and `p' for all
the constraints, you can choose to write a description with empty constraints.
Then you write `""' for the constraint in every match_operand
.
Address operands are identified by writing an address
expression
around the match_operand
, not by their constraints.
When the machine description has just empty constraints, certain parts of compilation are skipped, making the compiler faster. However, few machines actually do not need constraints; all machine descriptions now in existence use constraints.
Go to the first, previous, next, last section, table of contents.