History

Annotated the test further. Added more information to the string representation of Type objects. Fixed the order of the offsets in the string representation of offsets in double indirect operands. Updated the notes.

David Boddie committed 9 years ago

Commit a8c27d91 parent de9ef054 files · +63 −20Browse files

Showing the changes to docs (1 of 4 files). Show all

Unified · Split

docs/notes.txt+17−0
@@ -1,7 +1,13 @@
1+Opcode definitions
2+------------------
3+
14 Opcodes are defined in include/isa.h, limbo/optab.c and libinterp/xec.c.
25
36 consc is documented but does not exist in the opcode definitions.
47
8+Function signatures
9+-------------------
10+
511 Function signatures will be output by the Limbo compiler if you pass it the
612 "-D S" debug option.
713
@@ -45,3 +51,14 @@ endianness of the resulting value: · 37 unmodified lines
4551 The rtsign and idsign functions in the limbo/types.c file are responsible for
4652 creating a signature for a function. The sigkind array contains the characters
4753 used for each type of object that will be serialised.
54+
55+Operands
56+--------
57+
58+The double indirect operands SO(SO(fp)) and SO(SO(mp)) are represented by two
59+offsets in the encoded instruction. The first represents the "inner" offset,
60+the second the "outer" offset. For example:
61+
62+ 10(20(fp)) is represented as 20, 10 in the instruction.
63+
64+This was discovered by running the Limbo compiler with the -S option.