scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | README | LICENSE

proc.h (1413B)


      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 	AIMM3,         /* 3 bit immediate */
     61 	AZERO,         /* a literal 0 */
     62 	ARST,          /* 0h, 08h, 10h, 18h, 20h, 28h, 30h, 38h */
     63 };
     64 
     65 enum class {
     66 	RCLASS  = 1 << 0,
     67 	PCLASS  = 1 << 1,
     68 	QCLASS  = 1 << 2,
     69 	DDCLASS = 1 << 3,
     70 	QQCLASS = 1 << 4,
     71 	PPCLASS = 1 << 5,
     72 	RRCLASS = 1 << 6,
     73 	CCCLASS = 1 << 7,
     74 	SSCLASS = 1 << 8,
     75 };