dioscuri.module.cpu32
Class BytecodeFragments

java.lang.Object
  extended by dioscuri.module.cpu32.BytecodeFragments
All Implemented Interfaces:
MicrocodeSet
Direct Known Subclasses:
ProtectedModeBytecodeFragments, RealModeBytecodeFragments

public class BytecodeFragments
extends java.lang.Object
implements MicrocodeSet

Author:
Bram Lohman, Bart Kiers

Field Summary
static java.lang.Object IMMEDIATE
           
static java.lang.Object X86LENGTH
           
 
Fields inherited from interface dioscuri.module.cpu32.MicrocodeSet
AAA, AAD, AAM, AAS, ADC, ADC_O16_FLAGS, ADC_O32_FLAGS, ADC_O8_FLAGS, ADD, ADD_O16_FLAGS, ADD_O32_FLAGS, ADD_O8_FLAGS, ADDR_2EAX, ADDR_2EBP, ADDR_2EBX, ADDR_2ECX, ADDR_2EDI, ADDR_2EDX, ADDR_2ESI, ADDR_2ESP, ADDR_2REG1, ADDR_4EAX, ADDR_4EBP, ADDR_4EBX, ADDR_4ECX, ADDR_4EDI, ADDR_4EDX, ADDR_4ESI, ADDR_4ESP, ADDR_4REG1, ADDR_8EAX, ADDR_8EBP, ADDR_8EBX, ADDR_8ECX, ADDR_8EDI, ADDR_8EDX, ADDR_8ESI, ADDR_8ESP, ADDR_8REG1, ADDR_AX, ADDR_BP, ADDR_BX, ADDR_CX, ADDR_DI, ADDR_DX, ADDR_EAX, ADDR_EBP, ADDR_EBX, ADDR_ECX, ADDR_EDI, ADDR_EDX, ADDR_ESI, ADDR_ESP, ADDR_IB, ADDR_ID, ADDR_IW, ADDR_MASK16, ADDR_REG1, ADDR_SI, ADDR_SP, ADDR_uAL, AND, BITWISE_FLAGS_O16, BITWISE_FLAGS_O32, BITWISE_FLAGS_O8, BOUND_O16, BOUND_O32, BSF, BSR, BSWAP, BT_MEM, BT_O16, BT_O32, BTC_MEM, BTC_O16, BTC_O32, BTR_MEM, BTR_O16, BTR_O32, BTS_MEM, BTS_O16, BTS_O32, CALL_ABS_O16_A16, CALL_ABS_O16_A32, CALL_ABS_O32_A16, CALL_ABS_O32_A32, CALL_FAR_O16_A16, CALL_FAR_O16_A32, CALL_FAR_O32_A16, CALL_FAR_O32_A32, CALL_O16_A16, CALL_O16_A32, CALL_O32_A16, CALL_O32_A32, CDQ, CLC, CLD, CLI, CLTS, CMC, CMOVA, CMOVC, CMOVG, CMOVL, CMOVNA, CMOVNC, CMOVNG, CMOVNL, CMOVNO, CMOVNP, CMOVNS, CMOVNZ, CMOVO, CMOVP, CMOVS, CMOVZ, CMPSB_A16, CMPSB_A32, CMPSD_A16, CMPSD_A32, CMPSW_A16, CMPSW_A32, CMPXCHG, CMPXCHG_O16_FLAGS, CMPXCHG_O32_FLAGS, CMPXCHG_O8_FLAGS, CMPXCHG8B, CPUID, CWD, DAA, DAS, DEC, DEC_O16_FLAGS, DEC_O32_FLAGS, DEC_O8_FLAGS, DIV_O16, DIV_O32, DIV_O8, EIP_UPDATE, ENTER_O16_A16, ENTER_O16_A32, ENTER_O32_A16, ENTER_O32_A32, F2XM1, FABS, FADD, FBCD2F, FCHECK0, FCHECK1, FCHOP, FCHS, FCLEX, FCMOVB, FCMOVBE, FCMOVE, FCMOVNB, FCMOVNBE, FCMOVNE, FCMOVNU, FCMOVU, FCOM, FCOMI, FCOS, FDECSTP, FDIV, FF2BCD, FFREE, FINCSTP, FINIT, FLDENV_14, FLDENV_28, FLOAD0_1, FLOAD0_L2E, FLOAD0_L2TEN, FLOAD0_LN2, FLOAD0_LOG2, FLOAD0_MEM_DOUBLE, FLOAD0_MEM_EXTENDED, FLOAD0_MEM_SINGLE, FLOAD0_PI, FLOAD0_POS0, FLOAD0_REG0, FLOAD0_REG0L, FLOAD0_ST0, FLOAD0_STN, FLOAD1_MEM_DOUBLE, FLOAD1_MEM_EXTENDED, FLOAD1_MEM_SINGLE, FLOAD1_POS0, FLOAD1_REG0, FLOAD1_REG0L, FLOAD1_ST0, FLOAD1_STN, FMUL, FPATAN, FPOP, FPREM, FPREM1, FPTAN, FPUSH, FRNDINT, FRSTOR_108, FRSTOR_94, FSAVE_108, FSAVE_94, FSCALE, FSIN, FSINCOS, FSQRT, FSTENV_14, FSTENV_28, FSTORE0_MEM_DOUBLE, FSTORE0_MEM_EXTENDED, FSTORE0_MEM_SINGLE, FSTORE0_REG0, FSTORE0_ST0, FSTORE0_STN, FSTORE1_MEM_DOUBLE, FSTORE1_MEM_EXTENDED, FSTORE1_MEM_SINGLE, FSTORE1_REG0, FSTORE1_ST0, FSTORE1_STN, FSUB, FUCOM, FUCOMI, FWAIT, FXAM, FXTRACT, FYL2X, FYL2XP1, HALT, IDIV_O16, IDIV_O32, IDIV_O8, IMUL_O16, IMUL_O32, IMULA_O16, IMULA_O32, IMULA_O8, IN_O16, IN_O32, IN_O8, INC, INC_O16_FLAGS, INC_O32_FLAGS, INC_O8_FLAGS, INSB_A16, INSB_A32, INSD_A16, INSD_A32, INSW_A16, INSW_A32, INT_O16_A16, INT_O16_A32, INT_O32_A16, INT_O32_A32, INT3_O16_A16, INT3_O16_A32, INT3_O32_A16, INT3_O32_A32, INTO_O16_A16, INTO_O16_A32, INTO_O32_A16, INTO_O32_A32, INVLPG, IRET_O16_A16, IRET_O16_A32, IRET_O32_A16, IRET_O32_A32, JA_O16, JA_O32, JA_O8, JC_O16, JC_O32, JC_O8, JCXZ, JECXZ, JG_O16, JG_O32, JG_O8, JL_O16, JL_O32, JL_O8, JNA_O16, JNA_O32, JNA_O8, JNC_O16, JNC_O32, JNC_O8, JNG_O16, JNG_O32, JNG_O8, JNL_O16, JNL_O32, JNL_O8, JNO_O16, JNO_O32, JNO_O8, JNP_O16, JNP_O32, JNP_O8, JNS_O16, JNS_O32, JNS_O8, JNZ_O16, JNZ_O32, JNZ_O8, JO_O16, JO_O32, JO_O8, JP_O16, JP_O32, JP_O8, JS_O16, JS_O32, JS_O8, JUMP_ABS_O16, JUMP_ABS_O32, JUMP_FAR_O16, JUMP_FAR_O32, JUMP_O16, JUMP_O32, JUMP_O8, JZ_O16, JZ_O32, JZ_O8, LAHF, LAR_O16, LAR_O32, LEAVE_O16_A16, LEAVE_O16_A32, LEAVE_O32_A16, LEAVE_O32_A32, LGDT_O16, LGDT_O32, LIDT_O16, LIDT_O32, LLDT, LMSW, LOAD_SEG_CS, LOAD_SEG_DS, LOAD_SEG_ES, LOAD_SEG_FS, LOAD_SEG_GS, LOAD_SEG_SS, LOAD0_ADDR, LOAD0_AH, LOAD0_AL, LOAD0_AX, LOAD0_BH, LOAD0_BL, LOAD0_BP, LOAD0_BX, LOAD0_CH, LOAD0_CL, LOAD0_CR0, LOAD0_CR2, LOAD0_CR3, LOAD0_CR4, LOAD0_CS, LOAD0_CX, LOAD0_DH, LOAD0_DI, LOAD0_DL, LOAD0_DR0, LOAD0_DR1, LOAD0_DR2, LOAD0_DR3, LOAD0_DR6, LOAD0_DR7, LOAD0_DS, LOAD0_DX, LOAD0_EAX, LOAD0_EBP, LOAD0_EBX, LOAD0_ECX, LOAD0_EDI, LOAD0_EDX, LOAD0_EFLAGS, LOAD0_ES, LOAD0_ESI, LOAD0_ESP, LOAD0_FLAGS, LOAD0_FPUCW, LOAD0_FPUSW, LOAD0_FS, LOAD0_GS, LOAD0_IB, LOAD0_ID, LOAD0_IW, LOAD0_MEM_BYTE, LOAD0_MEM_DWORD, LOAD0_MEM_QWORD, LOAD0_MEM_WORD, LOAD0_SI, LOAD0_SP, LOAD0_SS, LOAD1_AH, LOAD1_AL, LOAD1_AX, LOAD1_BH, LOAD1_BL, LOAD1_BP, LOAD1_BX, LOAD1_CH, LOAD1_CL, LOAD1_CX, LOAD1_DH, LOAD1_DI, LOAD1_DL, LOAD1_DX, LOAD1_EAX, LOAD1_EBP, LOAD1_EBX, LOAD1_ECX, LOAD1_EDI, LOAD1_EDX, LOAD1_ESI, LOAD1_ESP, LOAD1_IB, LOAD1_ID, LOAD1_IW, LOAD1_MEM_BYTE, LOAD1_MEM_DWORD, LOAD1_MEM_WORD, LOAD1_SI, LOAD1_SP, LOAD2_AL, LOAD2_AX, LOAD2_CL, LOAD2_EAX, LOAD2_IB, LODSB_A16, LODSB_A32, LODSD_A16, LODSD_A32, LODSW_A16, LODSW_A32, LOOP_CX, LOOP_ECX, LOOPNZ_CX, LOOPNZ_ECX, LOOPZ_CX, LOOPZ_ECX, LSL_O16, LSL_O32, LTR, MEM_RESET, MICROCODE_LIMIT, MOVSB_A16, MOVSB_A32, MOVSD_A16, MOVSD_A32, MOVSW_A16, MOVSW_A32, MUL_O16, MUL_O32, MUL_O8, NEG, NEG_O16_FLAGS, NEG_O32_FLAGS, NEG_O8_FLAGS, NOOP, NOT, OR, OUT_O16, OUT_O32, OUT_O8, OUTSB_A16, OUTSB_A32, OUTSD_A16, OUTSD_A32, OUTSW_A16, OUTSW_A32, POP_O16_A16, POP_O16_A32, POP_O32_A16, POP_O32_A32, POPA_A16, POPA_A32, POPAD_A16, POPAD_A32, POPF_O16_A16, POPF_O16_A32, POPF_O32_A16, POPF_O32_A32, PUSH_O16_A16, PUSH_O16_A32, PUSH_O32_A16, PUSH_O32_A32, PUSHA_A16, PUSHA_A32, PUSHAD_A16, PUSHAD_A32, PUSHF_O16_A16, PUSHF_O16_A32, PUSHF_O32_A16, PUSHF_O32_A32, RCL_O16, RCL_O16_FLAGS, RCL_O32, RCL_O32_FLAGS, RCL_O8, RCL_O8_FLAGS, RCR_O16, RCR_O16_FLAGS, RCR_O32, RCR_O32_FLAGS, RCR_O8, RCR_O8_FLAGS, RDMSR, RDTSC, REP_INSB_A16, REP_INSB_A32, REP_INSD_A16, REP_INSD_A32, REP_INSW_A16, REP_INSW_A32, REP_LODSB_A16, REP_LODSB_A32, REP_LODSD_A16, REP_LODSD_A32, REP_LODSW_A16, REP_LODSW_A32, REP_MOVSB_A16, REP_MOVSB_A32, REP_MOVSD_A16, REP_MOVSD_A32, REP_MOVSW_A16, REP_MOVSW_A32, REP_OUTSB_A16, REP_OUTSB_A32, REP_OUTSD_A16, REP_OUTSD_A32, REP_OUTSW_A16, REP_OUTSW_A32, REP_STOSB_A16, REP_STOSB_A32, REP_STOSD_A16, REP_STOSD_A32, REP_STOSW_A16, REP_STOSW_A32, REP_SUB_O16_FLAGS, REP_SUB_O32_FLAGS, REP_SUB_O8_FLAGS, REPE_CMPSB_A16, REPE_CMPSB_A32, REPE_CMPSD_A16, REPE_CMPSD_A32, REPE_CMPSW_A16, REPE_CMPSW_A32, REPE_SCASB_A16, REPE_SCASB_A32, REPE_SCASD_A16, REPE_SCASD_A32, REPE_SCASW_A16, REPE_SCASW_A32, REPNE_CMPSB_A16, REPNE_CMPSB_A32, REPNE_CMPSD_A16, REPNE_CMPSD_A32, REPNE_CMPSW_A16, REPNE_CMPSW_A32, REPNE_SCASB_A16, REPNE_SCASB_A32, REPNE_SCASD_A16, REPNE_SCASD_A32, REPNE_SCASW_A16, REPNE_SCASW_A32, RET_FAR_IW_O16_A16, RET_FAR_IW_O16_A32, RET_FAR_IW_O32_A16, RET_FAR_IW_O32_A32, RET_FAR_O16_A16, RET_FAR_O16_A32, RET_FAR_O32_A16, RET_FAR_O32_A32, RET_IW_O16_A16, RET_IW_O16_A32, RET_IW_O32_A16, RET_IW_O32_A32, RET_O16_A16, RET_O16_A32, RET_O32_A16, RET_O32_A32, ROL_O16, ROL_O16_FLAGS, ROL_O32, ROL_O32_FLAGS, ROL_O8, ROL_O8_FLAGS, ROR_O16, ROR_O16_FLAGS, ROR_O32, ROR_O32_FLAGS, ROR_O8, ROR_O8_FLAGS, SAHF, SAR_O16, SAR_O16_FLAGS, SAR_O32, SAR_O32_FLAGS, SAR_O8, SAR_O8_FLAGS, SBB, SBB_O16_FLAGS, SBB_O32_FLAGS, SBB_O8_FLAGS, SCASB_A16, SCASB_A32, SCASD_A16, SCASD_A32, SCASW_A16, SCASW_A32, SETA, SETC, SETG, SETL, SETNA, SETNC, SETNG, SETNL, SETNO, SETNP, SETNS, SETNZ, SETO, SETP, SETS, SETZ, SGDT_O16, SGDT_O32, SHL, SHL_O16_FLAGS, SHL_O32_FLAGS, SHL_O8_FLAGS, SHLD_O16, SHLD_O32, SHR, SHR_O16_FLAGS, SHR_O32_FLAGS, SHR_O8_FLAGS, SHRD_O16, SHRD_O32, SIDT_O16, SIDT_O32, SIGN_EXTEND_16_32, SIGN_EXTEND_8_16, SIGN_EXTEND_8_32, SLDT, SMSW, STC, STD, STI, STORE0_AH, STORE0_AL, STORE0_AX, STORE0_BH, STORE0_BL, STORE0_BP, STORE0_BX, STORE0_CH, STORE0_CL, STORE0_CR0, STORE0_CR2, STORE0_CR3, STORE0_CR4, STORE0_CS, STORE0_CX, STORE0_DH, STORE0_DI, STORE0_DL, STORE0_DR0, STORE0_DR1, STORE0_DR2, STORE0_DR3, STORE0_DR6, STORE0_DR7, STORE0_DS, STORE0_DX, STORE0_EAX, STORE0_EBP, STORE0_EBX, STORE0_ECX, STORE0_EDI, STORE0_EDX, STORE0_EFLAGS, STORE0_ES, STORE0_ESI, STORE0_ESP, STORE0_FLAGS, STORE0_FPUCW, STORE0_FPUSW, STORE0_FS, STORE0_GS, STORE0_MEM_BYTE, STORE0_MEM_DWORD, STORE0_MEM_QWORD, STORE0_MEM_WORD, STORE0_SI, STORE0_SP, STORE0_SS, STORE1_AH, STORE1_AL, STORE1_AX, STORE1_BH, STORE1_BL, STORE1_BP, STORE1_BX, STORE1_CH, STORE1_CL, STORE1_CS, STORE1_CX, STORE1_DH, STORE1_DI, STORE1_DL, STORE1_DS, STORE1_DX, STORE1_EAX, STORE1_EBP, STORE1_EBX, STORE1_ECX, STORE1_EDI, STORE1_EDX, STORE1_ES, STORE1_ESI, STORE1_ESP, STORE1_FS, STORE1_GS, STORE1_MEM_BYTE, STORE1_MEM_DWORD, STORE1_MEM_WORD, STORE1_SI, STORE1_SP, STORE1_SS, STOSB_A16, STOSB_A32, STOSD_A16, STOSD_A32, STOSW_A16, STOSW_A32, STR, SUB, SUB_O16_FLAGS, SUB_O32_FLAGS, SUB_O8_FLAGS, SYSENTER, SYSEXIT, UNDEFINED, VERR, VERW, WRMSR, XOR
 
Constructor Summary
protected BytecodeFragments()
           
 
Method Summary
static java.lang.Object field(java.lang.Class cls, java.lang.String name)
           
static java.lang.Object field(java.lang.String name)
           
static java.lang.Object integer(int value)
           
static java.lang.Object longint(long value)
           
static java.lang.Object method(java.lang.Class cls, java.lang.String name)
           
static java.lang.Object method(java.lang.Class cls, java.lang.String name, java.lang.Class arg)
           
static java.lang.Object method(java.lang.Class cls, java.lang.String name, java.lang.Class[] args)
           
static java.lang.Object method(java.lang.Class cls, java.lang.String name, java.lang.Class arg0, java.lang.Class arg1)
           
static java.lang.Object method(java.lang.Class cls, java.lang.String name, java.lang.Class arg0, java.lang.Class arg1, java.lang.Class arg2)
           
static java.lang.Object method(java.lang.String name)
           
static java.lang.Object method(java.lang.String name, java.lang.Class arg)
           
static java.lang.Object method(java.lang.String name, java.lang.Class[] args)
           
static java.lang.Object method(java.lang.String name, java.lang.Class arg0, java.lang.Class arg1)
           
static java.lang.Object[] popCode(int element)
           
static java.lang.Object[] pushCode(int element)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IMMEDIATE

public static final java.lang.Object IMMEDIATE

X86LENGTH

public static final java.lang.Object X86LENGTH
Constructor Detail

BytecodeFragments

protected BytecodeFragments()
Method Detail

pushCode

public static java.lang.Object[] pushCode(int element)
Parameters:
element -
Returns:
-

popCode

public static java.lang.Object[] popCode(int element)
Parameters:
element -
Returns:
-

field

public static java.lang.Object field(java.lang.String name)
Parameters:
name -
Returns:
-

field

public static java.lang.Object field(java.lang.Class cls,
                                     java.lang.String name)
Parameters:
cls -
name -
Returns:
-

method

public static java.lang.Object method(java.lang.String name)
Parameters:
name -
Returns:
-

method

public static java.lang.Object method(java.lang.String name,
                                      java.lang.Class arg)
Parameters:
name -
arg -
Returns:
-

method

public static java.lang.Object method(java.lang.String name,
                                      java.lang.Class arg0,
                                      java.lang.Class arg1)
Parameters:
name -
arg0 -
arg1 -
Returns:
-

method

public static java.lang.Object method(java.lang.String name,
                                      java.lang.Class[] args)
Parameters:
name -
args -
Returns:
-

method

public static java.lang.Object method(java.lang.Class cls,
                                      java.lang.String name)
Parameters:
cls -
name -
Returns:
-

method

public static java.lang.Object method(java.lang.Class cls,
                                      java.lang.String name,
                                      java.lang.Class arg)
Parameters:
cls -
name -
arg -
Returns:
-

method

public static java.lang.Object method(java.lang.Class cls,
                                      java.lang.String name,
                                      java.lang.Class arg0,
                                      java.lang.Class arg1)
Parameters:
cls -
name -
arg0 -
arg1 -
Returns:
-

method

public static java.lang.Object method(java.lang.Class cls,
                                      java.lang.String name,
                                      java.lang.Class arg0,
                                      java.lang.Class arg1,
                                      java.lang.Class arg2)
Parameters:
cls -
name -
arg0 -
arg1 -
arg2 -
Returns:
-

method

public static java.lang.Object method(java.lang.Class cls,
                                      java.lang.String name,
                                      java.lang.Class[] args)
Parameters:
cls -
name -
args -
Returns:
-

integer

public static java.lang.Object integer(int value)
Parameters:
value -
Returns:
-

longint

public static java.lang.Object longint(long value)
Parameters:
value -
Returns:
-