| @@ -0,0 +1,214 @@ |
| 1 | + |
| 2 | +/* WARNING: relative order of tokens is important. */ |
| 3 | + DEF_ASM(al) |
| 4 | + DEF_ASM(cl) |
| 5 | + DEF_ASM(dl) |
| 6 | + DEF_ASM(bl) |
| 7 | + DEF_ASM(ah) |
| 8 | + DEF_ASM(ch) |
| 9 | + DEF_ASM(dh) |
| 10 | + DEF_ASM(bh) |
| 11 | + DEF_ASM(ax) |
| 12 | + DEF_ASM(cx) |
| 13 | + DEF_ASM(dx) |
| 14 | + DEF_ASM(bx) |
| 15 | + DEF_ASM(sp) |
| 16 | + DEF_ASM(bp) |
| 17 | + DEF_ASM(si) |
| 18 | + DEF_ASM(di) |
| 19 | + DEF_ASM(eax) |
| 20 | + DEF_ASM(ecx) |
| 21 | + DEF_ASM(edx) |
| 22 | + DEF_ASM(ebx) |
| 23 | + DEF_ASM(esp) |
| 24 | + DEF_ASM(ebp) |
| 25 | + DEF_ASM(esi) |
| 26 | + DEF_ASM(edi) |
| 27 | + DEF_ASM(mm0) |
| 28 | + DEF_ASM(mm1) |
| 29 | + DEF_ASM(mm2) |
| 30 | + DEF_ASM(mm3) |
| 31 | + DEF_ASM(mm4) |
| 32 | + DEF_ASM(mm5) |
| 33 | + DEF_ASM(mm6) |
| 34 | + DEF_ASM(mm7) |
| 35 | + DEF_ASM(xmm0) |
| 36 | + DEF_ASM(xmm1) |
| 37 | + DEF_ASM(xmm2) |
| 38 | + DEF_ASM(xmm3) |
| 39 | + DEF_ASM(xmm4) |
| 40 | + DEF_ASM(xmm5) |
| 41 | + DEF_ASM(xmm6) |
| 42 | + DEF_ASM(xmm7) |
| 43 | + DEF_ASM(cr0) |
| 44 | + DEF_ASM(cr1) |
| 45 | + DEF_ASM(cr2) |
| 46 | + DEF_ASM(cr3) |
| 47 | + DEF_ASM(cr4) |
| 48 | + DEF_ASM(cr5) |
| 49 | + DEF_ASM(cr6) |
| 50 | + DEF_ASM(cr7) |
| 51 | + DEF_ASM(tr0) |
| 52 | + DEF_ASM(tr1) |
| 53 | + DEF_ASM(tr2) |
| 54 | + DEF_ASM(tr3) |
| 55 | + DEF_ASM(tr4) |
| 56 | + DEF_ASM(tr5) |
| 57 | + DEF_ASM(tr6) |
| 58 | + DEF_ASM(tr7) |
| 59 | + DEF_ASM(db0) |
| 60 | + DEF_ASM(db1) |
| 61 | + DEF_ASM(db2) |
| 62 | + DEF_ASM(db3) |
| 63 | + DEF_ASM(db4) |
| 64 | + DEF_ASM(db5) |
| 65 | + DEF_ASM(db6) |
| 66 | + DEF_ASM(db7) |
| 67 | + DEF_ASM(dr0) |
| 68 | + DEF_ASM(dr1) |
| 69 | + DEF_ASM(dr2) |
| 70 | + DEF_ASM(dr3) |
| 71 | + DEF_ASM(dr4) |
| 72 | + DEF_ASM(dr5) |
| 73 | + DEF_ASM(dr6) |
| 74 | + DEF_ASM(dr7) |
| 75 | + DEF_ASM(es) |
| 76 | + DEF_ASM(cs) |
| 77 | + DEF_ASM(ss) |
| 78 | + DEF_ASM(ds) |
| 79 | + DEF_ASM(fs) |
| 80 | + DEF_ASM(gs) |
| 81 | + DEF_ASM(st) |
| 82 | + |
| 83 | + DEF_BWL(mov) |
| 84 | + |
| 85 | + /* generic two operands */ |
| 86 | + DEF_BWL(add) |
| 87 | + DEF_BWL(or) |
| 88 | + DEF_BWL(adc) |
| 89 | + DEF_BWL(sbb) |
| 90 | + DEF_BWL(and) |
| 91 | + DEF_BWL(sub) |
| 92 | + DEF_BWL(xor) |
| 93 | + DEF_BWL(cmp) |
| 94 | + |
| 95 | + /* unary ops */ |
| 96 | + DEF_BWL(inc) |
| 97 | + DEF_BWL(dec) |
| 98 | + DEF_BWL(not) |
| 99 | + DEF_BWL(neg) |
| 100 | + DEF_BWL(mul) |
| 101 | + DEF_BWL(imul) |
| 102 | + DEF_BWL(div) |
| 103 | + DEF_BWL(idiv) |
| 104 | + |
| 105 | + DEF_BWL(xchg) |
| 106 | + DEF_BWL(test) |
| 107 | + |
| 108 | + /* shifts */ |
| 109 | + DEF_BWL(rol) |
| 110 | + DEF_BWL(ror) |
| 111 | + DEF_BWL(rcl) |
| 112 | + DEF_BWL(rcr) |
| 113 | + DEF_BWL(shl) |
| 114 | + DEF_BWL(shr) |
| 115 | + DEF_BWL(sar) |
| 116 | + |
| 117 | + DEF_ASM(shldw) |
| 118 | + DEF_ASM(shldl) |
| 119 | + DEF_ASM(shld) |
| 120 | + DEF_ASM(shrdw) |
| 121 | + DEF_ASM(shrdl) |
| 122 | + DEF_ASM(shrd) |
| 123 | + |
| 124 | + DEF_ASM(pushw) |
| 125 | + DEF_ASM(pushl) |
| 126 | + DEF_ASM(push) |
| 127 | + DEF_ASM(popw) |
| 128 | + DEF_ASM(popl) |
| 129 | + DEF_ASM(pop) |
| 130 | + DEF_BWL(in) |
| 131 | + DEF_BWL(out) |
| 132 | + |
| 133 | + DEF_WL(movzb) |
| 134 | + |
| 135 | + DEF_ASM(movzwl) |
| 136 | + DEF_ASM(movsbw) |
| 137 | + DEF_ASM(movsbl) |
| 138 | + DEF_ASM(movswl) |
| 139 | + |
| 140 | + DEF_WL(lea) |
| 141 | + |
| 142 | + DEF_ASM(les) |
| 143 | + DEF_ASM(lds) |
| 144 | + DEF_ASM(lss) |
| 145 | + DEF_ASM(lfs) |
| 146 | + DEF_ASM(lgs) |
| 147 | + |
| 148 | + DEF_ASM(call) |
| 149 | + DEF_ASM(jmp) |
| 150 | + DEF_ASM(lcall) |
| 151 | + DEF_ASM(ljmp) |
| 152 | + |
| 153 | + DEF_ASMTEST(j) |
| 154 | + |
| 155 | + DEF_ASMTEST(set) |
| 156 | + DEF_ASMTEST(cmov) |
| 157 | + |
| 158 | + DEF_WL(bsf) |
| 159 | + DEF_WL(bsr) |
| 160 | + DEF_WL(bt) |
| 161 | + DEF_WL(bts) |
| 162 | + DEF_WL(btr) |
| 163 | + DEF_WL(btc) |
| 164 | + |
| 165 | + DEF_WL(lsl) |
| 166 | + |
| 167 | + /* generic FP ops */ |
| 168 | + DEF_FP(add) |
| 169 | + DEF_FP(mul) |
| 170 | + |
| 171 | + DEF_ASM(fcom) |
| 172 | + DEF_ASM(fcom_1) /* non existant op, just to have a regular table */ |
| 173 | + DEF_FP1(com) |
| 174 | + |
| 175 | + DEF_FP(comp) |
| 176 | + DEF_FP(sub) |
| 177 | + DEF_FP(subr) |
| 178 | + DEF_FP(div) |
| 179 | + DEF_FP(divr) |
| 180 | + |
| 181 | + DEF_BWL(xadd) |
| 182 | + DEF_BWL(cmpxchg) |
| 183 | + |
| 184 | + /* string ops */ |
| 185 | + DEF_BWL(cmps) |
| 186 | + DEF_BWL(scmp) |
| 187 | + DEF_BWL(ins) |
| 188 | + DEF_BWL(outs) |
| 189 | + DEF_BWL(lods) |
| 190 | + DEF_BWL(slod) |
| 191 | + DEF_BWL(movs) |
| 192 | + DEF_BWL(smov) |
| 193 | + DEF_BWL(scas) |
| 194 | + DEF_BWL(ssca) |
| 195 | + DEF_BWL(stos) |
| 196 | + DEF_BWL(ssto) |
| 197 | + |
| 198 | + /* generic asm ops */ |
| 199 | + |
| 200 | +#define ALT(x) |
| 201 | +#define DEF_ASM_OP0(name, opcode) DEF_ASM(name) |
| 202 | +#define DEF_ASM_OP0L(name, opcode, group, instr_type) |
| 203 | +#define DEF_ASM_OP1(name, opcode, group, instr_type, op0) |
| 204 | +#define DEF_ASM_OP2(name, opcode, group, instr_type, op0, op1) |
| 205 | +#define DEF_ASM_OP3(name, opcode, group, instr_type, op0, op1, op2) |
| 206 | +#include "i386-asm.h" |
| 207 | + |
| 208 | +#define ALT(x) |
| 209 | +#define DEF_ASM_OP0(name, opcode) |
| 210 | +#define DEF_ASM_OP0L(name, opcode, group, instr_type) DEF_ASM(name) |
| 211 | +#define DEF_ASM_OP1(name, opcode, group, instr_type, op0) DEF_ASM(name) |
| 212 | +#define DEF_ASM_OP2(name, opcode, group, instr_type, op0, op1) DEF_ASM(name) |
| 213 | +#define DEF_ASM_OP3(name, opcode, group, instr_type, op0, op1, op2) DEF_ASM(name) |
| 214 | +#include "i386-asm.h" |