Opnd
- ImmOpnd
- Used by the intermediate representation (IR) to reference constants such as integer constants, floating point constants, pointer constants, and symbolic constants such as FRAMESIZE.
if (instr2.SrcOpnd.IsImmOpnd) Phx.Output.WriteLine("IsImmOpnd");
Например:
_i<2> = ASSIGN 3 #14
Операнд 3 - ImmOpnd
- LabelOpnd
- Used by the intermediate representation (IR) in Phoenix to reference user-defined or tool-generated label symbols. LabelOpnds represent the control-flow edges in the IR graph. All control flow is explicitly described with LabelOpnds.
Resources: CBRANCH t1, UserLabel, $L1 UserLabel: // true … GOTO Over $L1: // false … $Over: ---------------------------------------------------------------------------- SWITCH t1, SWDEFAULT $default SWCASE 1..1 $Case1 SWCASE 2..2 $Case2 SWCASE n..n $CaseN SWEND $default: $Case1: $Case2: … $CaseN: ---------------------------------------------------------------------------- FPADD x, y $FPExceptHandler … $FPExceptHandler: ----------------------------------------------------------------------------
VarOpnd
Used to reference a variety of resources, such as user variables, compiler temporaries, or physical registers. A VarOpnd can reference either the content or address of a resource. The reference can be to either the complete resource or portion of the resource, based on the field information provided. The resource can be a basic data type like an integer, or an aggregate type like a structure.
Например:
_k<3> = ASSIGN 0 #15
Операнд _k<3> - VarOpnd
IsSym | IsTmp | IsReg | IsMem | IsAddr | Пример | Описание |
---|---|---|---|---|---|---|
x | t275 | |||||
x | &_a | |||||
x | _b<6> | |||||
t275 | ||||||
t275 | ||||||
t275 | ||||||
t275 | ||||||
t275 | ||||||
t275 |
page revision: 4, last edited: 01 Dec 2006 09:40