  | |  | | This list compares the instructions from Linoleum 1.2 and prior with those in Linoleum 2.0. These were taken from the compiler source files, and formatted for easy reference. Only the instruction patterns are included, and not any placeholders for registers, labels, and so on. Also, the list only compares the instruction sets, and not any differences in isokernal functions or other syntax changes.
Linoleum Instructions List | Lino 1.2 | Lino 2.0 | | | = | = | assignment | | - > | > | unconditioned jump | | = > | = > | call to subroutine, legacy symbolic code | | - - - | d | CPU delay, internal | | - - > | - - > | push | | < - - | < - - | pop | | + | + | integer increment | | - | - | integer decrement | | ^ | ' ? ^ | integer loop until zero | | ? : ) - > | s | jump on success, internal | | ? : ( - > | f | jump on failure, internal | | \ \ / \ \ | F | fail, internal | | / \ \ / | e | end, internal | | ( / | l | leave, internal | | + | + | integer addition | | - | - | integer subtraction | | & | & | bitwise AND | | | | | | bitwise OR | | # | # | bitwise XOR | | > | ' > | bitwise unsigned shift right | | < | ' < | bitwise shift left | | ? = - > | ? = > | integer jump if equal | | ? ! = - > | ? ! > | integer jump if not equal | | * | * | integer multiplication | | / | / | integer division | | % | % | integer modulus | | ! | ! | bitwise NOT | | $ + | $ + | add to stack pointer | | $ - | $ - | subtract from stack pointer | | ~ | , ~ | floating-point sine | | ~ ~ | , ~ ~ | floating-point cosine | | / ~ | , / ~ | floating-point square root | | + - | + - | integer negation | | + + - - | , + - | floating-point negation | | | | | | | | integer absolute value | | | | | | | , | | | floating-point absolute value | | = $ : | = $ : | assignment from stack memory | | $ : = | $ : = | assignment into stack memory | | > > | > | bitwise signed shift right | | @ > | @ > | bitwise rotate right | | < @ | @ < | bitwise rotate left | | * ' | ' * | unsigned multiplication | | / ' | ' / | unsigned division | | % ' | ' % | unsigned modulus | | + + | , + | floating-point addition | | - - | , - | floating-point subtraction | | * * | , * | floating-point multiplication | | / / | , / | floating-point division | | = , | , , | floating-point to integer conversion | | , = | , = | integer to floating-point conversion | | ? - - > | ? - > | bitwise jump if not set | | ? + - > | ? + > | bitwise jump if set | | ? ' > - > | ' ? > > | unsigned jump if greater | | ? ' < - > | ' ? < > | unsigned jump if less | | ? ' > = - > | ' ? > = > | unsigned jump if greater or equal | | ? ' < = - > | ' ? < = > | unsigned jump if less or equal | | ? > - > | ? > > | signed jump if greater | | ? < - > | ? < > | signed jump if less | | ? > = - > | ? > = > | signed jump if greater or equal | | ? < = - > | ? < = > | signed jump if less or equal | | ? ? = - > | , ? = > | floating-point jump if equal | | ? ? ! = - > | , ? ! > | floating-point jump if not equal | | ? ? > - > | , ? > > | floating-point jump if greater | | ? ? < - > | , ? < > | floating-point jump if less | | ? ? > = - > | , ? > = > | floating-point jump if greater or equal | | ? ? < = - > | , ? < = > | floating-point jump if less or equal | | % % | , % | floating-point partial remainder | | ^ / | , ^ / | floating-point arc tangent | | / - / | n | nop, internal | | / % ' | ' / % | integer unsigned split | | / % | / % | integer signed split | | - - - - > | - - > * | push all registers | | < - - - - | < - - * | pop all registers | | < > | < > | exchange values | | ^ ^ | ? ^ | integer loop until negative | | = $ | get stack pointer | | $ = | set stack pointer | | : | shortcall; preprocessed: association | | r | return tag, internal | | < - : | get return value; preprocessed: fun. call | | < - | functional call, without argument
|
| |  | |  |
|
|