Symphony ISA specs for use in stdlib
default.isa
The stock game ISA. Production code must comply to this. Taken from symphony_11_functions in game version 2.1.330A
test.isa
ISA with additional instructions. These additional instructions may be used in the tests directory only. Some of these instructions require hardware changes.
Labels in more instructions
cmp, load, and store instructions (but not pload and pstore) now also accept labels.
qcall %a(label)
Performs a jump-and-link function call, with label size up to 32 bits.
HARDWARE: Store PC+4 in the result register when in jump mode.
li %a(register) %b:U32(immediate | label)
Loads an immediate up to 32 bits long
HARDWARE: No requirements
halt%c(condition)
Halts if flags matches the condition.
HARDWARE: Halt if instruction bit 31 is set AND the condition block is true.
condition
"" 1000
".all" 1000
".e" 0001
".ne" 1001
".b" 0010
".ae" 1010
".be" 0011
".a" 1011
".l" 0100
".ge" 1100
".le" 0101
".g" 1101