Register

Registers of the ISA can be declared specifiying the bitfield where the register code is set. The syntax to declare a register is:

register <name>[<size>] = <bitfield-specification>

Examples

bitfield Reg[4]

register r2[32] = Reg{2}

It’s a 32 bit register named r2 where they code is set on a Reg bitfield, and it’s code is 2.

bitfield Reg[4] {
    size[1]
    code[3]
}

register rdx[64] = Reg {
    size = 1,
    code = 2,
}

It’s a 64 bit register named rdx where they code is set on a Reg bitfield, and the bitfield’s fields are set to size = 1 and code = 2 respectivaly. It’s equivalent to Reg{10}.