Module flags

Source
Expand description

Definition of some constants for easier readability of the steps. When they refer to single bit flagsets, only one constant is needed.

Constantsยง

AP_ADD
Update ap by adding a number of positions
AP_ONE
Update ap by self increment
AP_Z2
Update by 2 in call instructions or zero behaviour for other instructions
DST_AP
Destination refers to ap register
NUM_FLAGS
Number of Cairo flags
OP0_AP
First operand refers to ap register
OP1_AP
Second operand refers to ap register
OP1_DBL
Second operand is double indexing
OP1_FP
Second operand refers to fp register
OP1_VAL
Second operand is immediate value
OPC_AEQ
Operation code is an assert-equal
OPC_CALL
Operation code is a call
OPC_JMP_INC
Operation code is a jump or an increment
OPC_RET
Operation code is a return
PC_ABS
Update pc by an absolute jump
PC_JNZ
Update pc by a conditional relative jump
PC_REL
Update pc by a relative jump
PC_SIZ
Default increase of pc by adding instruction size
POS_DST
Position of destination offset of 16 bits within instruction decomposition
POS_FLAGS
Bit position of the beginning of the flags in a Cairo instruction
POS_OP0
Position of first operand offset of 16 bits within instruction decomposition
POS_OP1
Position of second operand offset of 16 bits within instruction decomposition
RES_ADD
Result is an addition
RES_MUL
Result is a multiplication
RES_ONE
Result is a single operand