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 ANAME32, 92 ANAME, 93 ANEGD, 94 ANEGF, 95 ANEGW, 96 ANOP, 97 ANOR, 98 AOR, 99 AREM, 100 AREMU, 101 ARET, 102 ARFE, 103 ASGT, 104 ASGTU, 105 ASLL, 106 ASRA, 107 ASRL, 108 ASUB, 109 ASUBD, 110 ASUBF, 111 ASUBU, 112 ASUBW, 113 ASYSCALL, 114 ATEXT, 115 ATLBP, 116 ATLBR, 117 ATLBWI, 118 ATLBWR, 119 AWORD, 120 AXOR, 121 122 AEND, 123 124 AMOVV, 125 AMOVVL, 126 AMOVVR, 127 ASLLV, 128 ASRAV, 129 ASRLV, 130 ADIVV, 131 ADIVVU, 132 AREMV, 133 AREMVU, 134 AMULV, 135 AMULVU, 136 AADDV, 137 AADDVU, 138 ASUBV, 139 ASUBVU, 140 141 ADYNT, 142 AINIT, 143 144 ABCASE, 145 ACASE, 146 147 ATRUNCFV, 148 ATRUNCDV, 149 ATRUNCFW, 150 ATRUNCDW, 151 AMOVWU, 152 AMOVFV, 153 AMOVDV, 154 AMOVVF, 155 AMOVVD, 156 157 ASIGNAME, 158 159 ALAST, 160 }; 161 162 /* type/name */ 163 #define D_GOK 0 164 #define D_NONE 1 165 166 /* type */ 167 #define D_BRANCH (D_NONE+1) 168 #define D_OREG (D_NONE+2) 169 #define D_EXTERN (D_NONE+3) /* name */ 170 #define D_STATIC (D_NONE+4) /* name */ 171 #define D_AUTO (D_NONE+5) /* name */ 172 #define D_PARAM (D_NONE+6) /* name */ 173 #define D_CONST (D_NONE+7) 174 #define D_FCONST (D_NONE+8) 175 #define D_SCONST (D_NONE+9) 176 #define D_HI (D_NONE+10) 177 #define D_LO (D_NONE+11) 178 #define D_REG (D_NONE+12) 179 #define D_FREG (D_NONE+13) 180 #define D_FCREG (D_NONE+14) 181 #define D_MREG (D_NONE+15) 182 #define D_FILE (D_NONE+16) 183 #define D_OCONST (D_NONE+17) 184 #define D_FILE1 (D_NONE+18) 185 #define D_VCONST (D_NONE+19) 186 187 /* 188 * this is the ranlib header 189 */ 190 #define SYMDEF "__.SYMDEF" 191 192 /* 193 * this is the simulated IEEE floating point 194 */ 195 typedef struct ieee Ieee; 196 struct ieee 197 { 198 long l; /* contains ls-man 0xffffffff */ 199 long h; /* contains sign 0x80000000 200 exp 0x7ff00000 201 ms-man 0x000fffff */ 202 }; 203