/* WARNING: relative order of tokens is important. */ DEF_ASM(al) DEF_ASM(cl) DEF_ASM(dl) DEF_ASM(bl) DEF_ASM(ah) DEF_ASM(ch) DEF_ASM(dh) DEF_ASM(bh) DEF_ASM(ax) DEF_ASM(cx) DEF_ASM(dx) DEF_ASM(bx) DEF_ASM(sp) DEF_ASM(bp) DEF_ASM(si) DEF_ASM(di) DEF_ASM(eax) DEF_ASM(ecx) DEF_ASM(edx) DEF_ASM(ebx) DEF_ASM(esp) DEF_ASM(ebp) DEF_ASM(esi) DEF_ASM(edi) DEF_ASM(rax) DEF_ASM(rcx) DEF_ASM(rdx) DEF_ASM(rbx) DEF_ASM(rsp) DEF_ASM(rbp) DEF_ASM(rsi) DEF_ASM(rdi) DEF_ASM(mm0) DEF_ASM(mm1) DEF_ASM(mm2) DEF_ASM(mm3) DEF_ASM(mm4) DEF_ASM(mm5) DEF_ASM(mm6) DEF_ASM(mm7) DEF_ASM(xmm0) DEF_ASM(xmm1) DEF_ASM(xmm2) DEF_ASM(xmm3) DEF_ASM(xmm4) DEF_ASM(xmm5) DEF_ASM(xmm6) DEF_ASM(xmm7) DEF_ASM(cr0) DEF_ASM(cr1) DEF_ASM(cr2) DEF_ASM(cr3) DEF_ASM(cr4) DEF_ASM(cr5) DEF_ASM(cr6) DEF_ASM(cr7) DEF_ASM(tr0) DEF_ASM(tr1) DEF_ASM(tr2) DEF_ASM(tr3) DEF_ASM(tr4) DEF_ASM(tr5) DEF_ASM(tr6) DEF_ASM(tr7) DEF_ASM(db0) DEF_ASM(db1) DEF_ASM(db2) DEF_ASM(db3) DEF_ASM(db4) DEF_ASM(db5) DEF_ASM(db6) DEF_ASM(db7) DEF_ASM(dr0) DEF_ASM(dr1) DEF_ASM(dr2) DEF_ASM(dr3) DEF_ASM(dr4) DEF_ASM(dr5) DEF_ASM(dr6) DEF_ASM(dr7) DEF_ASM(es) DEF_ASM(cs) DEF_ASM(ss) DEF_ASM(ds) DEF_ASM(fs) DEF_ASM(gs) DEF_ASM(st) DEF_BWLQ(mov) /* generic two operands */ DEF_BWLQ(add) DEF_BWLQ(or) DEF_BWLQ(adc) DEF_BWLQ(sbb) DEF_BWLQ(and) DEF_BWLQ(sub) DEF_BWLQ(xor) DEF_BWLQ(cmp) /* unary ops */ DEF_BWLQ(inc) DEF_BWLQ(dec) DEF_BWLQ(not) DEF_BWLQ(neg) DEF_BWLQ(mul) DEF_BWLQ(imul) DEF_BWLQ(div) DEF_BWLQ(idiv) DEF_BWLQ(xchg) DEF_BWLQ(test) /* shifts */ DEF_BWLQ(rol) DEF_BWLQ(ror) DEF_BWLQ(rcl) DEF_BWLQ(rcr) DEF_BWLQ(shl) DEF_BWLQ(shr) DEF_BWLQ(sar) DEF_ASM(shldw) DEF_ASM(shldl) DEF_ASM(shld) DEF_ASM(shrdw) DEF_ASM(shrdl) DEF_ASM(shrd) DEF_ASM(pushw) DEF_ASM(pushl) DEF_ASM(pushq) DEF_ASM(push) DEF_ASM(popw) DEF_ASM(popl) DEF_ASM(popq) DEF_ASM(pop) DEF_BWL(in) DEF_BWL(out) DEF_WL(movzb) DEF_ASM(movzwl) DEF_ASM(movsbw) DEF_ASM(movsbl) DEF_ASM(movswl) DEF_ASM(movslq) DEF_WLQ(lea) DEF_ASM(les) DEF_ASM(lds) DEF_ASM(lss) DEF_ASM(lfs) DEF_ASM(lgs) DEF_ASM(call) DEF_ASM(jmp) DEF_ASM(lcall) DEF_ASM(ljmp) DEF_ASMTEST(j) DEF_ASMTEST(set) DEF_ASMTEST(cmov) DEF_WLQ(bsf) DEF_WLQ(bsr) DEF_WLQ(bt) DEF_WLQ(bts) DEF_WLQ(btr) DEF_WLQ(btc) DEF_WLQ(lsl) /* generic FP ops */ DEF_FP(add) DEF_FP(mul) DEF_ASM(fcom) DEF_ASM(fcom_1) /* non existant op, just to have a regular table */ DEF_FP1(com) DEF_FP(comp) DEF_FP(sub) DEF_FP(subr) DEF_FP(div) DEF_FP(divr) DEF_BWLQ(xadd) DEF_BWLQ(cmpxchg) /* string ops */ DEF_BWLQ(cmps) DEF_BWLQ(scmp) DEF_BWL(ins) DEF_BWL(outs) DEF_BWLQ(lods) DEF_BWLQ(slod) DEF_BWLQ(movs) DEF_BWLQ(smov) DEF_BWLQ(scas) DEF_BWLQ(ssca) DEF_BWLQ(stos) DEF_BWLQ(ssto) /* generic asm ops */ #define ALT(x) #define DEF_ASM_OP0(name, opcode) DEF_ASM(name) #define DEF_ASM_OP0L(name, opcode, group, instr_type) #define DEF_ASM_OP1(name, opcode, group, instr_type, op0) #define DEF_ASM_OP2(name, opcode, group, instr_type, op0, op1) #define DEF_ASM_OP3(name, opcode, group, instr_type, op0, op1, op2) #include "x86_64-asm.h" #define ALT(x) #define DEF_ASM_OP0(name, opcode) #define DEF_ASM_OP0L(name, opcode, group, instr_type) DEF_ASM(name) #define DEF_ASM_OP1(name, opcode, group, instr_type, op0) DEF_ASM(name) #define DEF_ASM_OP2(name, opcode, group, instr_type, op0, op1) DEF_ASM(name) #define DEF_ASM_OP3(name, opcode, group, instr_type, op0, op1, op2) DEF_ASM(name) #include "x86_64-asm.h"