proc.h - scc - simple c99 compiler
(HTM) git clone git://git.simple-cc.org/scc
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
proc.h (1375B)
---
1 enum args {
2 AREG_AF = AMAX,
3 AREG_A,
4 AREG_F,
5
6 AREG_BC,
7 AREG_B,
8 AREG_C,
9
10 AREG_HL,
11 AREG_H,
12 AREG_L,
13
14 AREG_DE,
15 AREG_D,
16 AREG_E,
17
18 AREG_IX,
19 AREG_IXL,
20 AREG_IXH,
21
22 AREG_IY,
23 AREG_IYL,
24 AREG_IYH,
25
26 AREG_R,
27 AREG_I,
28 AREG_AF_,
29 AREG_SP,
30
31 AREG_NZ,
32 AREG_Z,
33 AREG_NC,
34 AREG_PO,
35 AREG_PE,
36 AREG_P,
37 AREG_M,
38
39 AREG_RCLASS, /* register class for B, C, D, E, H, L and A */
40 AREG_PCLASS, /* register class for B, C, D, E, IXH, IXL and A */
41 AREG_QCLASS, /* register class for B, C, D, E, IYH, IYL and A */
42 AREG_DDCLASS, /* register class for BC, DE, HL and SP */
43 AREG_QQCLASS, /* register class for BC, DE, HL and AF */
44 AREG_PPCLASS, /* register class for BC, DE, IX and SP */
45 AREG_RRCLASS, /* register class for BC, DE, IY and SP */
46 AREG_SSCLASS, /* flag class for C, NC, Z, NZ */
47 AREG_CCCLASS, /* flag class for NZ, Z, NC, C, PO, PE, P, M */
48
49 AINDEX_IX, /* (IX+d) */
50 AINDEX_IY, /* (IX+d) */
51
52 AINDER_HL, /* (HL) */
53 AINDER_DE, /* (DE) */
54 AINDER_BC, /* (BC) */
55 AINDER_SP, /* (SP) */
56 AINDER_C, /* (C) */
57 AINDER_IX, /* (IX) */
58 AINDER_IY, /* (IY) */
59
60 AZERO, /* a literal 0 */
61 ARST, /* 0h, 08h, 10h, 18h, 20h, 28h, 30h, 38h */
62 };
63
64 enum class {
65 RCLASS = 1 << 0,
66 PCLASS = 1 << 1,
67 QCLASS = 1 << 2,
68 DDCLASS = 1 << 3,
69 QQCLASS = 1 << 4,
70 PPCLASS = 1 << 5,
71 RRCLASS = 1 << 6,
72 CCCLASS = 1 << 7,
73 SSCLASS = 1 << 8,
74 };