Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v102/c168/cskel.lst
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

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 };