|
|
Client Defined Pseudo Ops
Introduction
Pseudo ops
are client defined instruction stream markers. They
can be used to represent assembly directives.
Pseudo ops should satisfy the following signature:
signature PSEUDO_OPS = sig
type pseudo_op
val toString : pseudo_op -> string
val emitValue : {pOp:pseudo_op, loc:int, emit:Word8.word -> unit} -> unit
val sizeOf : pseudo_op * int -> int
val adjustLabels : pseudo_op * int -> bool
end
The method that is required is:
- toString -- pretty printing the pseudo in assembly format.
When machine code generation is used, we also have to implement
the following methods:
- emitValue --
emit value of pseudo op give current location counter and output
stream. The value emitted should respect the endianness of the
target machine.
- sizeOf --
Size of the pseudo op in bytes given the current location counter
The location counter is provided in case some pseudo ops are
dependent on alignment considerations.
- adjustLabels --
adjust the value of labels in the pseudo op given the current
location counter.
These methods are involved during the
span dependence resolution phase to determine
the size and layout of the pseudo ops.
|
|
Generated by
mltex2html
|
Last modified: Mon Jun 8 14:18:05 UTC 2009 by buildd@vernadsky
|
|