1 #define NSNAME 8 2 #define NSYM 50 3 #define NREG 32 4 5 #define NOPROF (1<<0) 6 #define DUPOK (1<<1) 7 8 #define REGZERO 0 9 #define REGRET 1 10 #define REGARG 1 11 /* compiler allocates R1 up as temps */ 12 /* compiler allocates register variables R3-R23 */ 13 #define REGEXT 25 14 /* compiler allocates external registers R25 down */ 15 /* dont use R26 R27 */ 16 #define REGTMP 28 17 #define REGSP 29 18 #define REGSB 30 19 #define REGLINK 31 20 21 #define FREGRET 0 22 /* compiler allocates register variables F4-F22 */ 23 /* compiler allocates external registers F22 down */ 24 #define FREGEXT 22 25 #define FREGZERO 24 /* both float and double */ 26 #define FREGHALF 26 /* double */ 27 #define FREGONE 28 /* double */ 28 #define FREGTWO 30 /* double */ 29 30 enum as 31 { 32 AXXX, 33 34 AABSD, 35 AABSF, 36 AABSW, 37 AADD, 38 AADDD, 39 AADDF, 40 AADDU, 41 AADDW, 42 AAND, 43 ABEQ, 44 ABFPF, 45 ABFPT, 46 ABGEZ, 47 ABGEZAL, 48 ABGTZ, 49 ABLEZ, 50 ABLTZ, 51 ABLTZAL, 52 ABNE, 53 ABREAK, 54 ACMPEQD, 55 ACMPEQF, 56 ACMPGED, 57 ACMPGEF, 58 ACMPGTD, 59 ACMPGTF, 60 ADATA, 61 ADIV, 62 ADIVD, 63 ADIVF, 64 ADIVU, 65 ADIVW, 66 AGLOBL, 67 AGOK, 68 AHISTORY, 69 AJAL, 70 AJMP, 71 AMOVB, 72 AMOVBU, 73 AMOVD, 74 AMOVDF, 75 AMOVDW, 76 AMOVF, 77 AMOVFD, 78 AMOVFW, 79 AMOVH, 80 AMOVHU, 81 AMOVW, 82 AMOVWD, 83 AMOVWF, 84 AMOVWL, 85 AMOVWR, 86 AMUL, 87 AMULD, 88 AMULF, 89 AMULU, 90 AMULW, 91 ANAME, 92 ANEGD, 93 ANEGF, 94 ANEGW, 95 ANOP, 96 ANOR, 97 AOR, 98 AREM, 99 AREMU, 100 ARET, 101 ARFE, 102 ASGT, 103 ASGTU, 104 ASLL, 105 ASRA, 106 ASRL, 107 ASUB, 108 ASUBD, 109 ASUBF, 110 ASUBU, 111 ASUBW, 112 ASYSCALL, 113 ATEXT, 114 ATLBP, 115 ATLBR, 116 ATLBWI, 117 ATLBWR, 118 AWORD, 119 AXOR, 120 121 AEND, 122 123 AMOVV, 124 AMOVVL, 125 AMOVVR, 126 ASLLV, 127 ASRAV, 128 ASRLV, 129 ADIVV, 130 ADIVVU, 131 AREMV, 132 AREMVU, 133 AMULV, 134 AMULVU, 135 AADDV, 136 AADDVU, 137 ASUBV, 138 ASUBVU, 139 140 ADYNT, 141 AINIT, 142 143 ABCASE, 144 ACASE, 145 146 ATRUNCFV, 147 ATRUNCDV, 148 ATRUNCFW, 149 ATRUNCDW, 150 AMOVWU, 151 AMOVFV, 152 AMOVDV, 153 AMOVVF, 154 AMOVVD, 155 156 ASIGNAME, 157 158 ALAST, 159 }; 160 161 /* type/name */ 162 #define D_GOK 0 163 #define D_NONE 1 164 165 /* type */ 166 #define D_BRANCH (D_NONE+1) 167 #define D_OREG (D_NONE+2) 168 #define D_EXTERN (D_NONE+3) /* name */ 169 #define D_STATIC (D_NONE+4) /* name */ 170 #define D_AUTO (D_NONE+5) /* name */ 171 #define D_PARAM (D_NONE+6) /* name */ 172 #define D_CONST (D_NONE+7) 173 #define D_FCONST (D_NONE+8) 174 #define D_SCONST (D_NONE+9) 175 #define D_HI (D_NONE+10) 176 #define D_LO (D_NONE+11) 177 #define D_REG (D_NONE+12) 178 #define D_FREG (D_NONE+13) 179 #define D_FCREG (D_NONE+14) 180 #define D_MREG (D_NONE+15) 181 #define D_FILE (D_NONE+16) 182 #define D_OCONST (D_NONE+17) 183 #define D_FILE1 (D_NONE+18) 184 #define D_VCONST (D_NONE+19) 185 186 /* 187 * this is the ranlib header 188 */ 189 #define SYMDEF "__.SYMDEF" 190 191 /* 192 * this is the simulated IEEE floating point 193 */ 194 typedef struct ieee Ieee; 195 struct ieee 196 { 197 long l; /* contains ls-man 0xffffffff */ 198 long h; /* contains sign 0x80000000 199 exp 0x7ff00000 200 ms-man 0x000fffff */ 201 }; 202