Age | Commit message (Collapse) | Author |
|
Here is where we may have differing interpretations of what the bits
in the data pile may actually mean. This in particular refers to
printing the signed or unsigned versions of the bits given. Also,
interpreting some byte as a character or just a raw number.
|
|
Was only used for OP_PUSH data types anyway, so is essentially
useless. Only OP_PUSH has operands after it that directly relate to
it: the rest either have a fixed type (a byte for registers, for
example) or NIL (because they have no operand).
|
|
Takes two operands from the stack then pushes their sum.
|
|
|
|
Uses the stack and register, respectively, to jump to an absolute
address. The stack based jump pops a word off the stack to perform a
jump, while the register based one uses the operand to figure out
which register to use.
|
|
Jumps to the operand given, interpreted as a word, an absolute
address.
|
|
If I add a new operand I want the build system to be more helpful in
finding the places I need to change to make it work.
|
|
Duplicates the nth datum off the stack, pushing it to the top. Useful
for operations such as MOV which eat the stack.
|
|
Use (H)WORD_SIZE more, added some notes, etc
|
|
Uses memcpy internally, so we don't need to care about endianness.
|
|
Prints the opcode then any operands in the following brackets
|
|
|
|
|
|
Registers are now just words, with pushing from and moving to
registers with specified subtypes just pushing those types into the
word registers. That means there are 8 word registers which can act
as 16 half word registers, which themselves can act as 64 byte
registers.
|
|
Pretty self explanatory, helps with logging.
|
|
Pushed the bits one step too far.
|
|
|
|
Uses some bit hacks to quickly check what data type an opcode may have
by shifting down to units then casting it to a data_type_t.
Not very well tested yet, we'll need to see now.
|