summaryrefslogtreecommitdiff
path: root/r1b.txt
blob: 7baa9c8c9127b4a7cdbdf266edc2e14062c75fd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
nop
rot (abc-bca)
-rot (abc-cab)
dup (x-xx)
swap (xy-yx)
over (xy-xyx)
drop (xy-x)
tuck (xy-yxy)
nip (xy-y)
lit (-l)
equal (xy-f)
nequal (xy-f)
add (xy-z)
sub (xy-z)
mul
div
neg
slt
ult
sle
ule
lod (a-d)
sto (da-)
push
pop



what abotu either

1[addr:15]  : call
0 
01 literal


want:
calls (15 bits)
j, cj, relative addr, 8 bits
lit, 4 or 8 or 16 bits
mark,loc,ret, + 4bit arg
regular op, no arg (between 16 and 32 of these)

CALL (addr:15)
or
JMP (cond?:1) (rdst:rest)
or 
(mark/loc/ret/lit4) (arg:4)
or

regular op (7 bits)



OPW:7: 1 T:2 arg:4
OPR:7: 0 opcode:6
	00 - 3f regular opcodes	(64 of them)
	4x	mark x
	5x	loc x
	6x	ret x
	7x	lit4 x

I: 0 0 (OPW|OPR) (OPW|OPR)
J: 0 1 0 cond? raddr:12
L: 0 1 1 value:13
C: 1 addr:15