data HWInstruction nocycle {
int iid
int ex1
int ex2
int ex3
int ex4
int registers[]
const byte REGISTER_TYPE_P = 1
const byte REGISTER_TYPE_R = 2
const byte REGISTER_TYPE_D = 3
const byte REGISTER_TYPE_C = 4
byte registerTypes[]
//reference to another instruction, e.g. for if- or jump-instructions
HWInstruction ref
//whether or not the ref'd instruction is before this one, in the instruction stream
bool refBefore
//offset of this instruction in the instruction stream
int offset
//offset of the reference-address (which needs to be filled in to point at the offset field of some other instruction)
int refAddress
//named local function, referenced by local calls
char functionNameRef[]
//line number
int lineNumber
//reference to the instruction which is first-executed by this instruction (i.e. its first operand, recursively)
HWInstruction firstOp
}To propose a new revision to this entity, use dana source put -ut your/new/version.dn -n util.compiler.HWInstruction -m "reason for update" -u yourUsername
Version 2 (this version) by barry
Notes for this version: Adds a first-op field to better support control flow reasoning.