| No. | Op R1 R2 F-field | Description |
Time Manipulation |
| 0&8 | ?CHILD A1 A2 c1(2) mi(2) ds(16) | Execute child
c1 at address (A1), using A2 as migration hint (0 is a null that supplies
no hint). mi specifies how migration is to be treated: 00 - don't migrate;
01 - migrate only if no free frames on local machine; 10 - migrate optionally ;
11 - always migrate to different machine. The ds field specifies a 16 bit
mask, 1 bit for each slot in the frame. If a bit is on then a child will
set both the S-register for that slot and send a CR word to the second
register. |
| 1&9 | ?TRAP V1 V2 con(24) | trap to
operating system at a time just after current block and before any children. V1, V2 and con are
available to the operating system, all children after this time are stored
to memory (?many details need sorting out here). |
Memory Operations |
| 2&10 | ?ST V1 A2 a(24) | Store V1 at address (A2+ax4)
(just after current time). |
| 3&11 | ?MV V1 CR2 d(6) | Store value V1 into
destination register d of child referred to by CR2. |
| 4&12 | ?MA A1 CR2 d(6) a(18) | Load value at address
(A1+4xa) at time just before execution of child referred to by CR2 into
destination d of child referred to by CR2. |
Comparison |
| 16 | CMP V1 V2 cop1(3)d1..2(6)
cop2(3)d3(6) |
Compare V1 and V2 using cop. The result of cop1 is sent to d1 and its
complement to d2. The result of cop2 is sent to d3. |
Integer Arithmetic |
| 17 | ADD V1 V2 d1..4(6) | Add V1 and V2. Move sum
to d1..3 and overflow to d4. |
| 18 | SUB V1 V2 d1..4(6) | Subtract V2 from V1. Move
difference to d1..3 and overflow to d4. |
| 19 | MUL V1 V2 d1..4(6) | Multiply V1 by V2 move
the low order 32 bits of the result to d1..3 and the high order 32 bits to
d4. |
| 20 | DIV V1 V2 d1..4(6) | Divide V1 by V2. Move
integer part of the result to d1..3 and the remainder to d4. |
| 21 | SPLIT V1 V2 (sop(2)d(6))x3 | Divide the word V1,
about bit b=(V2 mod 32). Each sop contains two bits. The first says whether
the left or right part of the word is being referenced, the second says
whether that part is to be justified left or right in the result. |
Floating Point Arithmetic |
| 22 | ADDF F1 F2 d1..4(6) | Add F1 and F2. Move sum to
d1..4. |
| 23 | SUBF F1 F2 d1..4(6) | Subtract F2 from F1. Move
difference to d1..4. |
| 24 | MULF F1 F2 d1..4(6) | Multiply F1 by F2 move the
move the result to d1..4. |
| 25 | DIVF F1 F2 d1..4(6) | Divide F1 by F2. Move the
result to d1..4. |
| 26 | F2I F1 F2 d1..4(6) | Divide F1 by F2. Move the
integer part of the result to d1..2 (as a 32-bit integer) and the fractional
part (as a floating point number) to d3..4. |
| 27 | I2F V1 V2 d1..4(6) | Multiply the (integers) V1
and V2, convert the result to a float (avoiding loss of precision as far as
possible) and send the result to d1..4. |
Logic |
| 28 | AND V1 V2 d1..4(6) | Take bitwise AND of V1 and
V2 and move result. |
| 29 | OR V1 V2 d1..4(6) | Take bitwise OR of V1 and
V2 and move result. |
| 30 | XOR V1 V2 d1..4(6) | Take bitwise XOR of V1 and
V2 and move result. |