joeq.Assembler.x86
Class x86Assembler
java.lang.Object
joeq.Assembler.x86.x86Assembler
- All Implemented Interfaces:
- x86Constants
public class x86Assembler
- extends Object
- implements x86Constants
x86Assembler
- Version:
- $Id: x86Assembler.java,v 1.18 2004/09/30 03:37:06 joewhaley Exp $
- Author:
- John Whaley
Field Summary |
static boolean |
TRACE
|
Fields inherited from interface joeq.Assembler.x86.x86Constants |
AL, AX, BOUNDS_EX_NUM, CACHE_LINE_SIZE, CJUMP_NEAR, CJUMP_SHORT, COMPLEX, EAX, EBP, EBX, ECX, EDI, EDX, ESI, ESP, JUMP_NEAR, JUMP_SHORT, MOD_DISP32, MOD_DISP8, MOD_EA, MOD_REG, NP, PU, PV, RA, RM_SIB, SCALE_1, SCALE_2, SCALE_4, SCALE_8, SEIMM8, SHIFT_ONCE, UV |
Constructor Summary |
x86Assembler(int num_targets,
int est_size,
int offset,
int alignment)
|
Method Summary |
boolean |
containsTarget(Object target)
|
void |
emit1_Imm16(x86 x,
char imm)
|
void |
emit1_Imm32(x86 x,
int imm)
|
void |
emit1_Imm8(x86 x,
byte imm)
|
void |
emit1(x86 x)
|
void |
emit2_FPReg(x86 x,
int r)
|
void |
emit2_Mem_Imm(x86 x,
int off,
int base,
int imm)
|
void |
emit2_Mem(x86 x,
int imm)
|
void |
emit2_Mem(x86 x,
int off,
int base)
|
void |
emit2_Mem(x86 x,
int base,
int ind,
int scale,
int off)
|
void |
emit2_Reg_Mem(x86 x,
int r1,
int addr)
|
void |
emit2_Reg_Mem(x86 x,
int r1,
int off,
int base)
|
void |
emit2_Reg_Mem(x86 x,
int r1,
int base,
int ind,
int scale,
int off)
|
void |
emit2_Reg_Reg(x86 x,
int r1,
int r2)
|
void |
emit2_Reg(x86 x,
int r1)
|
void |
emit2_SHIFT_Mem_Imm8(x86 x,
int off,
int base,
byte imm)
|
void |
emit2_SHIFT_Reg_Imm8(x86 x,
int r1,
byte imm)
|
void |
emit2(x86 x)
|
void |
emit3_Reg_Mem(x86 x,
int r1,
int addr)
|
void |
emit3_Reg_Mem(x86 x,
int r1,
int off,
int base)
|
void |
emit3_Reg_Mem(x86 x,
int r1,
int base,
int ind,
int mult,
int off)
|
void |
emit3_Reg_Reg(x86 x,
int r1,
int r2)
|
void |
emitARITH_Mem_Imm(x86 x,
int off,
int base,
int imm)
|
void |
emitARITH_Reg_Imm(x86 x,
int r1,
int imm)
|
void |
emitARITH_Reg_Mem(x86 x,
int r1,
int off,
int base)
|
void |
emitARITH_Reg_Reg(x86 x,
int r1,
int r2)
|
void |
emitCALL_Back(x86 x,
Object target)
|
void |
emitCALL_Forw(x86 x,
Object target)
|
void |
emitCALL_rel32(x86 x,
int address)
|
void |
emitCJUMP_Back(x86 x,
Object target)
|
void |
emitCJUMP_Forw_Short(x86 x,
Object target)
|
void |
emitCJUMP_Forw(x86 x,
Object target)
|
void |
emitCJUMP_Short(x86 x,
byte offset)
|
void |
emitDATA(int data)
|
void |
emitJUMP_Back(x86 x,
Object target)
|
void |
emitJUMP_Forw_Short(x86 x,
Object target)
|
void |
emitJUMP_Forw(x86 x,
Object target)
|
void |
emitJUMP_Short(x86 x,
byte offset)
|
void |
emitprefix(byte prefix)
|
void |
emitPUSH_i(int imm)
|
void |
emitSHLD_r_r_rc(int r1,
int r2)
|
void |
emitShort_Reg_Imm(x86 x,
int r1,
int imm)
|
void |
emitShort_Reg(x86 x,
int r1)
|
void |
emitSHRD_r_r_rc(int r1,
int r2)
|
void |
endDynamicPatch()
|
static boolean |
fits_signed(int val,
int bits)
|
static boolean |
fits(int val,
int bits)
|
int |
getBranchTarget(Object target)
|
Map |
getBranchTargetMap()
|
CodeAllocator.x86CodeBuffer |
getCodeBuffer()
|
CodeAddress |
getCurrentAddress()
|
int |
getCurrentOffset()
|
CodeAddress |
getStartAddress()
|
void |
patch1(int offset,
byte value)
|
void |
patch4_endian(int offset,
int value)
|
void |
recordAbsoluteReference(int patchsize,
Object target)
|
void |
recordBranchTarget(Object target)
|
void |
recordForwardBranch(int patchsize,
Object target)
|
void |
resolveForwardBranches(Object target)
|
void |
setEntrypoint()
|
void |
skip(int nbytes)
|
void |
startDynamicPatch(int size)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TRACE
public static boolean TRACE
x86Assembler
public x86Assembler(int num_targets,
int est_size,
int offset,
int alignment)
getCodeBuffer
public CodeAllocator.x86CodeBuffer getCodeBuffer()
getCurrentOffset
public int getCurrentOffset()
getCurrentAddress
public CodeAddress getCurrentAddress()
getStartAddress
public CodeAddress getStartAddress()
patch1
public void patch1(int offset,
byte value)
patch4_endian
public void patch4_endian(int offset,
int value)
containsTarget
public boolean containsTarget(Object target)
recordBranchTarget
public void recordBranchTarget(Object target)
getBranchTarget
public int getBranchTarget(Object target)
getBranchTargetMap
public Map getBranchTargetMap()
recordForwardBranch
public void recordForwardBranch(int patchsize,
Object target)
recordAbsoluteReference
public void recordAbsoluteReference(int patchsize,
Object target)
resolveForwardBranches
public void resolveForwardBranches(Object target)
startDynamicPatch
public void startDynamicPatch(int size)
endDynamicPatch
public void endDynamicPatch()
emitprefix
public void emitprefix(byte prefix)
emitPUSH_i
public void emitPUSH_i(int imm)
emit2_SHIFT_Mem_Imm8
public void emit2_SHIFT_Mem_Imm8(x86 x,
int off,
int base,
byte imm)
emit2_SHIFT_Reg_Imm8
public void emit2_SHIFT_Reg_Imm8(x86 x,
int r1,
byte imm)
emitSHLD_r_r_rc
public void emitSHLD_r_r_rc(int r1,
int r2)
emitSHRD_r_r_rc
public void emitSHRD_r_r_rc(int r1,
int r2)
emitShort_Reg
public void emitShort_Reg(x86 x,
int r1)
emitShort_Reg_Imm
public void emitShort_Reg_Imm(x86 x,
int r1,
int imm)
emit1
public void emit1(x86 x)
emit1_Imm8
public void emit1_Imm8(x86 x,
byte imm)
emit1_Imm16
public void emit1_Imm16(x86 x,
char imm)
emit1_Imm32
public void emit1_Imm32(x86 x,
int imm)
emit2
public void emit2(x86 x)
emit2_FPReg
public void emit2_FPReg(x86 x,
int r)
emit2_Mem
public void emit2_Mem(x86 x,
int imm)
emit2_Mem
public void emit2_Mem(x86 x,
int off,
int base)
emit2_Mem
public void emit2_Mem(x86 x,
int base,
int ind,
int scale,
int off)
emit2_Mem_Imm
public void emit2_Mem_Imm(x86 x,
int off,
int base,
int imm)
emit2_Reg
public void emit2_Reg(x86 x,
int r1)
emit2_Reg_Mem
public void emit2_Reg_Mem(x86 x,
int r1,
int addr)
emit2_Reg_Mem
public void emit2_Reg_Mem(x86 x,
int r1,
int off,
int base)
emit2_Reg_Mem
public void emit2_Reg_Mem(x86 x,
int r1,
int base,
int ind,
int scale,
int off)
emit2_Reg_Reg
public void emit2_Reg_Reg(x86 x,
int r1,
int r2)
emit3_Reg_Reg
public void emit3_Reg_Reg(x86 x,
int r1,
int r2)
emit3_Reg_Mem
public void emit3_Reg_Mem(x86 x,
int r1,
int addr)
emit3_Reg_Mem
public void emit3_Reg_Mem(x86 x,
int r1,
int off,
int base)
emit3_Reg_Mem
public void emit3_Reg_Mem(x86 x,
int r1,
int base,
int ind,
int mult,
int off)
emitARITH_Mem_Imm
public void emitARITH_Mem_Imm(x86 x,
int off,
int base,
int imm)
emitARITH_Reg_Imm
public void emitARITH_Reg_Imm(x86 x,
int r1,
int imm)
emitARITH_Reg_Reg
public void emitARITH_Reg_Reg(x86 x,
int r1,
int r2)
emitARITH_Reg_Mem
public void emitARITH_Reg_Mem(x86 x,
int r1,
int off,
int base)
emitCJUMP_Back
public void emitCJUMP_Back(x86 x,
Object target)
emitCJUMP_Short
public void emitCJUMP_Short(x86 x,
byte offset)
emitCJUMP_Forw_Short
public void emitCJUMP_Forw_Short(x86 x,
Object target)
emitCJUMP_Forw
public void emitCJUMP_Forw(x86 x,
Object target)
emitJUMP_Back
public void emitJUMP_Back(x86 x,
Object target)
emitJUMP_Short
public void emitJUMP_Short(x86 x,
byte offset)
emitJUMP_Forw_Short
public void emitJUMP_Forw_Short(x86 x,
Object target)
emitJUMP_Forw
public void emitJUMP_Forw(x86 x,
Object target)
emitCALL_rel32
public void emitCALL_rel32(x86 x,
int address)
emitCALL_Back
public void emitCALL_Back(x86 x,
Object target)
emitCALL_Forw
public void emitCALL_Forw(x86 x,
Object target)
emitDATA
public void emitDATA(int data)
skip
public void skip(int nbytes)
setEntrypoint
public void setEntrypoint()
fits
public static boolean fits(int val,
int bits)
fits_signed
public static boolean fits_signed(int val,
int bits)
Copyright © 2001-2005 John Whaley. All Rights Reserved.