mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 16:34:07 +00:00
95 lines
3.2 KiB
Plaintext
95 lines
3.2 KiB
Plaintext
1File: CSKEL.H Page 1
|
|
1 /*
|
|
2 Copyright 1981
|
|
3 Alcyon Corporation
|
|
4 8474 Commerce Av.
|
|
5 San Diego, Ca. 92121
|
|
6 */
|
|
7
|
|
8 /*built-in literals*/
|
|
9 #define MOV 128
|
|
10 #define MOVL 129
|
|
11 #define JSR 130
|
|
12 #define CLR 131
|
|
13 #define CLRL 132
|
|
14 #define EXTW 133
|
|
15 #define EXTL 134
|
|
16 #define LEA 135
|
|
17 #define STK 136
|
|
18
|
|
19 /*built-in macros*/
|
|
20 #define TREE 141
|
|
21 #define LEFT 142
|
|
22 #define RIGHT 143
|
|
23 #define LOFFSET 144
|
|
24 #define ROFFSET 145
|
|
25 #define LADDR 146
|
|
26 #define RADDR 147
|
|
27 #define CR 148
|
|
28 #define NR 149
|
|
29 #define CAR 150
|
|
30 #define NAR 151
|
|
31 #define TLEFT 152
|
|
32 #define TRIGHT 153
|
|
33 #define TEITHER 154
|
|
34 #define TLEFTL 155
|
|
35 #define OP 156
|
|
36 #define AOP 157
|
|
37 #define MODSWAP 158
|
|
38 #define EXL 159
|
|
39 #define EXLR 160
|
|
40 #define EXLRN 161
|
|
41 #define EXRL 162
|
|
42 #define EXRLN 163
|
|
43 #define PSH 164
|
|
44 #define POP 165
|
|
45 #define POP8 166
|
|
46 #define OPCALL 167
|
|
47 #define POP4 169
|
|
48 #define LADDRP 168
|
|
49
|
|
50 /*modifiers for compiling sub-trees*/
|
|
51 #define S_INDR 1 /*indirection*/
|
|
52 #define S_STACK 2 /*onto stack*/
|
|
53 #define S_FORCC 4 /*set condition codes*/
|
|
54 #define S_NEXT 8 /*into next register*/
|
|
55
|
|
56 /*Sethy-Ullman values*/
|
|
57 #define SU_ZERO 0x000 /*zero*/
|
|
58 #define SU_ONE 0x100 /*one*/
|
|
59 #define SU_SMALL 0x200 /*constant between 1 and 8*/
|
|
1File: CSKEL.H Page 2
|
|
60 #define SU_QUICK 0x300 /*quick constant between -128 and 127*/
|
|
61 #define SU_CONST 0x400 /*any constant*/
|
|
62 #define SU_AREG 0x500 /*A register*/
|
|
63 #define SU_REG 0x600 /*register*/
|
|
64 #define SU_ADDR 0x700 /*addressable*/
|
|
65 #define SU_XREG 0x800 /*A register used as data...*/
|
|
66 #define SU_EASY 0x900 /*easy*/
|
|
67 #define SU_HARD 0xa00 /*hard*/
|
|
68 #define SU_VHARD 0xb00 /*very hard ... function calls, etc.*/
|
|
69 #define SU_ANY 0xf00 /*anything*/
|
|
70 #define ADDRESSABLE(x) (x->t_su<=SU_ADDR)
|
|
71 #define NOTADDRESSABLE(x) (x->t_su>SU_ADDR)
|
|
72 #define LOADABLE(x) (x->t_su<=SU_XREG)
|
|
73
|
|
74 /*flag byte (operand type):*/
|
|
75 #define T_CHAR 1 /*char only*/
|
|
76 #define T_SHORT 2 /*short*/
|
|
77 #define T_INT 3 /*int only*/
|
|
78 #define T_LONG 4 /*long*/
|
|
79 #define T_UCHAR 5 /*unsigned char*/
|
|
80 #define T_USHORT 6 /*unsigned short*/
|
|
81 #define T_UNSN 7 /*unsigned int*/
|
|
82 #define T_ULONG 8 /*unsigned long*/
|
|
83 #define T_FLOAT 9 /*float*/
|
|
84 #define T_DOUB 10 /*double*/
|
|
85 #define T_ANY 11 /*int or word (implied)*/
|
|
86 #define T_INDR 0x10 /*pointer type (bit)*/
|
|
87
|
|
88 struct skeleton {
|
|
89 int sk_left;
|
|
90 int sk_right;
|
|
91 char *sk_def;
|
|
92 };
|