case LGDT_ISN: emmitLGDT(); break; case LIDT_ISN: emmitLIDT(); break;
    public boolean emmit(String mnemonic, List operands, int operandSize) {        this.operands = operands;        this.operandSize = operandSize;        Integer key = (Integer) INSTRUCTION_MAP.get(mnemonic);        if (key == null) return false;        switch (key.intValue()) {            case ADC_ISN:                emmitADC();                break;            case ADD_ISN:                emmitADD();                break;            case AND_ISN:                emmitAND();                break;            case CALL_ISN:                emmitCALL();                break;            case CLD_ISN:                emmitCLD();                break;            case CLI_ISN:                emmitCLI();                break;            case CLTS_ISN:                emmitCLTS();                break;            case CMP_ISN:                emmitCMP();                break;            case CPUID_ISN:                emmitCPUID();                break;            case DEC_ISN:                emmitDEC();                break;            case DIV_ISN:                emmitDIV();                break;            case FLDCW_ISN:                emmitFLDCW();                break;            case FNINIT_ISN:                emmitFNINIT();                break;            case FNSAVE_ISN:                emmitFNSAVE();                break;            case FRSTOR_ISN:                emmitFRSTOR();                break;            case FSTCW_ISN:                emmitFSTCW();                break;            case FXRSTOR_ISN:                emmitFXRSTOR();                break;            case FXSAVE_ISN:                emmitFXSAVE();                break;            case HLT_ISN:                emmitHLT();                break;            case IN_ISN:                emmitIN();                break;            case INC_ISN:                emmitINC();                break;            case INT_ISN:                emmitINT();                break;            case IRET_ISN:                emmitIRET();                break;            case JA_ISN:                emmitJCC(X86Assembler.JA);            case JAE_ISN:                emmitJCC(X86Assembler.JAE);            case JB_ISN:                emmitJCC(X86Assembler.JB);                break;            case JE_ISN:                emmitJCC(X86Assembler.JE);                break;//TODO the X86BinaryAssembler support for this is buggy, cannot handle forward jumps.            case JECXZ_ISN:                emmitJECXZ();                break;            case JL_ISN:                emmitJCC(X86Assembler.JL);                break;            case JLE_ISN:                emmitJCC(X86Assembler.JLE);                break;            case JMP_ISN:                emmitJMP();                break;            case JNE_ISN:                emmitJCC(X86Assembler.JNE);                break;            case JNZ_ISN:                emmitJCC(X86Assembler.JNZ);                break;            case JZ_ISN:                emmitJCC(X86Assembler.JZ);                break;            case LDMXCSR_ISN:                emmitLDMXCSR();                break;            case LEA_ISN:                emmitLEA();                break;            case LMSW_ISN:                emmitLMSW();                break;            case LODSW_ISN:                emmitLODSW();                break;            case LOOP_ISN:                emmitLOOP();                break;            case LTR_ISN:                emmitLTR();                break;            case MOV_ISN:                emmitMOV();                break;            case MOVSB_ISN:                emmitMOVSB();                break;            case MOVSW_ISN:                emmitMOVSW();                break;            case MOVSD_ISN:                emmitMOVSD();                break;            case MOVZX_ISN:                emmitMOVZX();                break;            case NEG_ISN:                emmitNEG();                break;            case NOP_ISN:                emmitNOP();                break;            case OR_ISN:                emmitOR();                break;            case OUT_ISN:                emmitOUT();                break;            case POP_ISN:                emmitPOP();                break;            case POPA_ISN:                emmitPOPA();                break;            case POPF_ISN:                emmitPOPF();                break;            case PUSH_ISN:                emmitPUSH();                break;            case PUSHA_ISN:                emmitPUSHA();                break;            case PUSHF_ISN:                emmitPUSHF();                break;            case RET_ISN:                emmitRET();                break;            case SHL_ISN:                emmitSHL();                break;            case SHR_ISN:                emmitSHR();                break;            case STD_ISN:                emmitSTD();                break;            case STI_ISN:                emmitSTI();                break;            case STMXCSR_ISN:                emmitSTMXCSR();                break;            case STOSB_ISN:                emmitSTOSB();                break;            case STOSD_ISN:                emmitSTOSD();                break;            case STOSW_ISN:                emmitSTOSW();                break;            case SUB_ISN:                emmitSUB();                break;            case TEST_ISN:                emmitTEST();                break;            case XCHG_ISN:                emmitXCHG();                break;            case XOR_ISN:                emmitXOR();                break;            default:                throw new Error("Invalid instruction binding " + key.intValue() + " for " + mnemonic);        }        return true;    }