Package com.kenai.jnr.x86asm
Class Assembler
java.lang.Object
com.kenai.jnr.x86asm.SerializerCore
com.kenai.jnr.x86asm.SerializerIntrinsics
com.kenai.jnr.x86asm.Serializer
com.kenai.jnr.x86asm.Assembler
Deprecated.
Low level code generation.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CodeBufferDeprecated.private final LoggerDeprecated.private intDeprecated.Deprecated.(package private) intDeprecated.Size of possible trampolines.private final CPUDeprecated.private final CpuInfoDeprecated.static final CPUDeprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.private static final int[]Deprecated.static final CPUDeprecated.Fields inherited from class com.kenai.jnr.x86asm.SerializerCore
_cmovcctable, _jcctable, _none, _setcctable -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) final void_emitByte(int x) Deprecated.Emit Byte to internal buffer.(package private) LinkData_emitDisplacement(Label label, long inlinedDisplacement, int size) Deprecated.(package private) final void_emitDWord(int x) Deprecated.Emit DWord (4 bytes) to internal buffer.(package private) void_emitFpu(int opCode) Deprecated.(package private) void_emitFpuMEM(int opCode, int opReg, Mem mem) Deprecated.(package private) void_emitFpuSTI(int opCode, int sti) Deprecated.(package private) void_emitImmediate(Immediate imm, int size) Deprecated.(package private) final void_emitInt32(int x) Deprecated.Emit Int32 (4 bytes) to internal buffer.(package private) void_emitJmpOrCallReloc(InstructionGroup instruction, long target) Deprecated.(package private) voidDeprecated.(package private) void_emitMod(int m, int o, int r) Deprecated.Emit MODR/M byte.(package private) voidDeprecated.(package private) void_emitModR(int opReg, int r) Deprecated.Emit Register / Register - calls _emitMod(3, opReg, r)(package private) voidDeprecated.Emit Register / Register - calls _emitMod(3, opReg, r.code())(package private) void_emitModRM(int opReg, Operand op, int immSize) Deprecated.(package private) final void_emitOpCode(int opCode) Deprecated.(package private) final void_emitQWord(long x) Deprecated.Emit QWord (8 bytes) to internal buffer.(package private) void_emitRexR(boolean w, int opReg, int regCode) Deprecated.(package private) void_emitRexR(int w, int opReg, int regCode) Deprecated.Emit REX prefix (64 bit mode only).(package private) void_emitRexRM(boolean w, int opReg, Operand rm) Deprecated.(package private) void_emitRexRM(int w, int opReg, Operand rm) Deprecated.Emit REX prefix (64 bit mode only).(package private) voidDeprecated.(package private) void_emitSib(int s, int i, int b) Deprecated.Emit SIB byte.(package private) final void_emitSysInt(long x) Deprecated.Emit system signed integer (4 or 8 bytes) to internal buffer.(package private) final void_emitWord(int x) Deprecated.Emit Word (2 bytes) to internal buffer.(package private) voidDeprecated.(package private) void_emitX86Inl(int opCode, boolean i16bit, boolean rexw, int reg) Deprecated.(package private) void_emitX86Inl(int opCode, boolean i16bit, int rexw, int reg) Deprecated.(package private) void_emitX86RM(int opCode, boolean i16bit, boolean rexw, int o, Operand op, int immSize) Deprecated.(package private) void_emitX86RM(int opCode, boolean i16bit, int rexw, int o, Operand op, int immSize) Deprecated.voidalign(long m) Deprecated.final intcodeSize()Deprecated.Gets the required size of memory required to store all the generated codefinal bytegetByteAt(int pos) Deprecated.final intgetDWordAt(int pos) Deprecated.final intgetInt32At(int pos) Deprecated.final longgetQWordAt(int pos) Deprecated.final shortgetWordAt(int pos) Deprecated.private static final intintValue(boolean b) Deprecated.(package private) booleanis64()Deprecated.final intoffset()Deprecated.voidrelocCode(ByteBuffer buffer, long address) Deprecated.final voidsetByteAt(int pos, byte x) Deprecated.final voidsetDWordAt(int pos, int x) Deprecated.final voidsetInt32At(int pos, long x) Deprecated.final voidsetQWordAt(int pos, long x) Deprecated.final voidsetVarAt(int pos, long i, boolean isUnsigned, int size) Deprecated.final voidsetWordAt(int pos, short x) Deprecated.(package private) intDeprecated.Return size of all possible trampolines needed to successfuly generate relative jumps to absolute addresses.Methods inherited from class com.kenai.jnr.x86asm.SerializerIntrinsics
adc, adc, adc, adc, adc, add, add, add, add, add, addpd, addpd, addps, addps, addsd, addsd, addss, addss, addsubpd, addsubpd, addsubps, addsubps, amd_prefetch, amd_prefetchw, and_, and_, and_, and_, and_, andnpd, andnpd, andnps, andnps, andpd, andpd, andps, andps, blendpd, blendpd, blendps, blendps, blendvpd, blendvpd, blendvps, blendvps, bsf, bsf, bsr, bsr, bswap, bt, bt, bt, bt, btc, btc, btc, btc, btr, btr, btr, btr, bts, bts, bts, bts, call, call, call, call, call, cbw, cdqe, clc, cld, clflush, cmc, cmov, cmov, cmova, cmova, cmovae, cmovae, cmovb, cmovb, cmovbe, cmovbe, cmovc, cmovc, cmove, cmove, cmovg, cmovg, cmovge, cmovge, cmovl, cmovl, cmovle, cmovle, cmovna, cmovna, cmovnae, cmovnae, cmovnb, cmovnb, cmovnbe, cmovnbe, cmovnc, cmovnc, cmovne, cmovne, cmovng, cmovng, cmovnge, cmovnge, cmovnl, cmovnl, cmovnle, cmovnle, cmovno, cmovno, cmovnp, cmovnp, cmovns, cmovns, cmovnz, cmovnz, cmovo, cmovo, cmovp, cmovp, cmovpe, cmovpe, cmovpo, cmovpo, cmovs, cmovs, cmovz, cmovz, cmp, cmp, cmp, cmp, cmp, cmppd, cmppd, cmpps, cmpps, cmpsd, cmpsd, cmpss, cmpss, cmpxchg, cmpxchg, cmpxchg16b, cmpxchg8b, comisd, comisd, comiss, comiss, cpuid, crc32, crc32, cvtdq2pd, cvtdq2pd, cvtdq2ps, cvtdq2ps, cvtpd2dq, cvtpd2dq, cvtpd2pi, cvtpd2pi, cvtpd2ps, cvtpd2ps, cvtpi2pd, cvtpi2pd, cvtpi2ps, cvtpi2ps, cvtps2dq, cvtps2dq, cvtps2pd, cvtps2pd, cvtps2pi, cvtps2pi, cvtsd2si, cvtsd2si, cvtsd2ss, cvtsd2ss, cvtsi2sd, cvtsi2sd, cvtsi2ss, cvtsi2ss, cvtss2sd, cvtss2sd, cvtss2si, cvtss2si, cvttpd2dq, cvttpd2dq, cvttpd2pi, cvttpd2pi, cvttps2dq, cvttps2dq, cvttps2pi, cvttps2pi, cvttsd2si, cvttsd2si, cvttss2si, cvttss2si, cwde, daa, das, dec, dec, div, div, divpd, divpd, divps, divps, divsd, divsd, divss, divss, dppd, dppd, dpps, dpps, emms, enter, extractps, extractps, f2xm1, fabs, fadd, fadd, faddp, faddp, fbld, fbstp, fchs, fclex, fcmovb, fcmovbe, fcmove, fcmovnb, fcmovnbe, fcmovne, fcmovnu, fcmovu, fcom, fcom, fcom, fcomi, fcomip, fcomp, fcomp, fcomp, fcompp, fcos, fdecstp, fdiv, fdiv, fdivp, fdivp, fdivr, fdivr, fdivrp, fdivrp, femms, ffree, fiadd, ficom, ficomp, fidiv, fidivr, fild, fimul, fincstp, finit, fist, fistp, fisttp, fisub, fisubr, fld, fld, fld1, fldcw, fldenv, fldl2e, fldl2t, fldlg2, fldln2, fldpi, fldz, fmul, fmul, fmulp, fmulp, fnclex, fninit, fnop, fnsave, fnstcw, fnstenv, fnstsw, fnstsw, fpatan, fprem, fprem1, fptan, frndint, frstor, fsave, fscale, fsin, fsincos, fsqrt, fst, fst, fstcw, fstenv, fstp, fstp, fstsw, fstsw, fsub, fsub, fsubp, fsubp, fsubr, fsubr, fsubrp, fsubrp, ftst, fucom, fucom, fucomi, fucomip, fucomip, fucomp, fucomp, fucompp, fwait, fxam, fxch, fxch, fxrstor, fxsave, fxtract, fyl2x, fyl2xp1, haddpd, haddpd, haddps, haddps, hsubpd, hsubpd, hsubps, hsubps, idiv, idiv, imul, imul, imul, imul, imul, imul, imul, inc, inc, int3, j, j_short, ja, ja_short, jae, jae_short, jb, jb_short, jbe, jbe_short, jc, jc_short, je, je_short, jg, jg_short, jge, jge_short, jl, jl_short, jle, jle_short, jmp, jmp, jmp, jmp, jmp, jmp_short, jna, jna_short, jnae, jnae_short, jnb, jnb_short, jnbe, jnbe_short, jnc, jnc_short, jne, jne_short, jng, jng_short, jnge, jnge_short, jnl, jnl_short, jnle, jnle_short, jno, jno_short, jnp, jnp_short, jns, jns_short, jnz, jnz_short, jo, jo_short, jp, jp_short, jpe, jpe_short, jpo, jpo_short, js, js_short, jz, jz_short, lddqu, ldmxcsr, lea, leave, lfence, lock, maskmovdqu, maskmovq, maxpd, maxpd, maxps, maxps, maxsd, maxsd, maxss, maxss, mfence, minpd, minpd, minps, minps, minsd, minsd, minss, minss, monitor, mov, mov, mov, mov, mov, mov_ptr, mov_ptr, movapd, movapd, movapd, movaps, movaps, movaps, movbe, movbe, movd, movd, movd, movd, movd, movd, movd, movd, movddup, movddup, movdq2q, movdqa, movdqa, movdqa, movdqu, movdqu, movdqu, movhlps, movhpd, movhpd, movhps, movhps, movlhps, movlpd, movlpd, movlps, movlps, movmskpd, movmskps, movntdq, movntdqa, movnti, movntpd, movntps, movntq, movq, movq, movq, movq, movq, movq, movq, movq, movq, movq, movq2dq, movsd, movsd, movsd, movshdup, movshdup, movsldup, movsldup, movss, movss, movss, movsx, movsx, movsxd, movsxd, movupd, movupd, movups, movups, movups, movzx, movzx, mpsadbw, mpsadbw, mul, mul, mulpd, mulpd, mulps, mulps, mulsd, mulsd, mulss, mulss, mwait, neg, neg, nop, not_, not_, or_, or_, or_, or_, or_, orpd, orpd, orps, orps, pabsb, pabsb, pabsb, pabsb, pabsd, pabsd, pabsd, pabsd, pabsw, pabsw, pabsw, pabsw, packssdw, packssdw, packsswb, packsswb, packusdw, packusdw, packuswb, packuswb, packuswb, packuswb, paddb, paddb, paddb, paddb, paddd, paddd, paddd, paddd, paddq, paddq, paddq, paddq, paddsb, paddsb, paddsb, paddsb, paddsw, paddsw, paddsw, paddsw, paddusb, paddusb, paddusb, paddusb, paddusw, paddusw, paddusw, paddusw, paddw, paddw, paddw, paddw, palignr, palignr, palignr, palignr, pand, pand, pand, pand, pandn, pandn, pandn, pandn, pause, pavgb, pavgb, pavgb, pavgb, pavgw, pavgw, pavgw, pavgw, pblendvb, pblendvb, pblendw, pblendw, pcmpeqb, pcmpeqb, pcmpeqb, pcmpeqb, pcmpeqd, pcmpeqd, pcmpeqd, pcmpeqd, pcmpeqq, pcmpeqq, pcmpeqw, pcmpeqw, pcmpeqw, pcmpeqw, pcmpestri, pcmpestri, pcmpestrm, pcmpestrm, pcmpgtb, pcmpgtb, pcmpgtb, pcmpgtb, pcmpgtd, pcmpgtd, pcmpgtd, pcmpgtd, pcmpgtq, pcmpgtq, pcmpgtw, pcmpgtw, pcmpgtw, pcmpgtw, pcmpistri, pcmpistri, pcmpistrm, pcmpistrm, pextrb, pextrb, pextrd, pextrd, pextrq, pextrq, pextrw, pextrw, pextrw, pf2id, pf2id, pf2iw, pf2iw, pfacc, pfacc, pfadd, pfadd, pfcmpeq, pfcmpeq, pfcmpge, pfcmpge, pfcmpgt, pfcmpgt, pfmax, pfmax, pfmin, pfmin, pfmul, pfmul, pfnacc, pfnacc, pfpnacc, pfpnaxx, pfrcp, pfrcp, pfrcpit1, pfrcpit1, pfrcpit2, pfrcpit2, pfrsqit1, pfrsqit1, pfrsqrt, pfrsqrt, pfsub, pfsub, pfsubr, pfsubr, phaddd, phaddd, phaddd, phaddd, phaddsw, phaddsw, phaddsw, phaddsw, phaddw, phaddw, phaddw, phaddw, phminposuw, phminposuw, phsubd, phsubd, phsubd, phsubd, phsubsw, phsubsw, phsubsw, phsubsw, phsubw, phsubw, phsubw, phsubw, pi2fd, pi2fd, pi2fw, pi2fw, pinsrb, pinsrb, pinsrd, pinsrd, pinsrq, pinsrq, pinsrw, pinsrw, pinsrw, pinsrw, pmaddubsw, pmaddubsw, pmaddubsw, pmaddubsw, pmaddwd, pmaddwd, pmaddwd, pmaddwd, pmaxsb, pmaxsb, pmaxsd, pmaxsd, pmaxsw, pmaxsw, pmaxsw, pmaxsw, pmaxub, pmaxub, pmaxub, pmaxub, pmaxud, pmaxud, pmaxuw, pmaxuw, pminsb, pminsb, pminsd, pminsd, pminsw, pminsw, pminsw, pminsw, pminub, pminub, pminub, pminub, pminud, pminud, pminuw, pminuw, pmovmskb, pmovmskb, pmovsxbd, pmovsxbd, pmovsxbq, pmovsxbq, pmovsxbw, pmovsxbw, pmovsxdq, pmovsxdq, pmovsxwd, pmovsxwd, pmovsxwq, pmovsxwq, pmovzxbd, pmovzxbd, pmovzxbq, pmovzxbq, pmovzxbw, pmovzxbw, pmovzxdq, pmovzxdq, pmovzxwd, pmovzxwd, pmovzxwq, pmovzxwq, pmuldq, pmuldq, pmulhrsw, pmulhrsw, pmulhrsw, pmulhrsw, pmulhuw, pmulhuw, pmulhuw, pmulhuw, pmulhw, pmulhw, pmulhw, pmulhw, pmulld, pmulld, pmullw, pmullw, pmullw, pmullw, pmuludq, pmuludq, pmuludq, pmuludq, pop, pop, popad, popcnt, popcnt, popf, popfd, popfq, por, por, por, por, prefetch, psadbw, psadbw, psadbw, psadbw, pshufb, pshufb, pshufb, pshufb, pshufd, pshufd, pshufhw, pshufhw, pshuflw, pshuflw, pshufw, pshufw, psignb, psignb, psignb, psignb, psignd, psignd, psignd, psignd, psignw, psignw, psignw, psignw, pslld, pslld, pslld, pslld, pslld, pslld, pslldq, psllq, psllq, psllq, psllq, psllq, psllq, psllw, psllw, psllw, psllw, psllw, psllw, psrad, psrad, psrad, psrad, psrad, psrad, psraw, psraw, psraw, psraw, psraw, psraw, psrld, psrld, psrld, psrld, psrld, psrld, psrldq, psrlq, psrlq, psrlq, psrlq, psrlq, psrlq, psrlw, psrlw, psrlw, psrlw, psrlw, psrlw, psubb, psubb, psubb, psubb, psubd, psubd, psubd, psubd, psubq, psubq, psubq, psubq, psubsb, psubsb, psubsb, psubsb, psubsw, psubsw, psubsw, psubsw, psubusb, psubusb, psubusb, psubusb, psubusw, psubusw, psubusw, psubusw, psubw, psubw, psubw, psubw, pswapd, pswapd, ptest, ptest, punpckhbw, punpckhbw, punpckhbw, punpckhbw, punpckhdq, punpckhdq, punpckhdq, punpckhdq, punpckhqdq, punpckhqdq, punpckhwd, punpckhwd, punpckhwd, punpckhwd, punpcklbw, punpcklbw, punpcklbw, punpcklbw, punpckldq, punpckldq, punpckldq, punpckldq, punpcklqdq, punpcklqdq, punpcklwd, punpcklwd, punpcklwd, punpcklwd, push, push, push, pushad, pushf, pushfd, pushfq, pxor, pxor, pxor, pxor, rcl, rcl, rcl, rcl, rcpps, rcpps, rcpss, rcpss, rcr, rcr, rcr, rcr, rdtsc, rdtscp, ret, ret, rol, rol, rol, rol, ror, ror, ror, ror, roundpd, roundpd, roundps, roundps, roundsd, roundsd, roundss, roundss, rsqrtps, rsqrtps, rsqrtss, rsqrtss, sahf, sal, sal, sal, sal, sar, sar, sar, sar, sbb, sbb, sbb, sbb, sbb, set, set, seta, seta, setae, setae, setb, setb, setbe, setbe, setc, setc, sete, sete, setg, setg, setge, setge, setl, setl, setle, setle, setna, setna, setnae, setnae, setnb, setnb, setnbe, setnbe, setnc, setnc, setne, setne, setng, setng, setnge, setnge, setnl, setnl, setnle, setnle, setno, setno, setnp, setnp, setns, setns, setnz, setnz, seto, seto, setp, setp, setpe, setpe, setpo, setpo, sets, sets, setz, setz, sfence, shl, shl, shl, shl, shld, shld, shld, shld, shr, shr, shr, shr, shrd, shrd, shrd, shrd, shufps, shufps, sqrtpd, sqrtpd, sqrtps, sqrtps, sqrtsd, sqrtsd, sqrtss, sqrtss, stc, std, stmxcsr, sub, sub, sub, sub, sub, subpd, subpd, subps, subps, subsd, subsd, subss, subss, test, test, test, test, ucomisd, ucomisd, ucomiss, ucomiss, ud2, unpckhpd, unpckhpd, unpckhps, unpckhps, unpcklpd, unpcklpd, unpcklps, unpcklps, xadd, xadd, xchg, xchg, xchg, xor_, xor_, xor_, xor_, xor_, xorpd, xorpd, xorps, xorpsMethods inherited from class com.kenai.jnr.x86asm.SerializerCore
_emitJcc, _emitJcc, conditionToCMovCC, conditionToJCC, conditionToSetCC, emitX86, emitX86, emitX86, emitX86
-
Field Details
-
_buffer
Deprecated. -
_relocData
Deprecated. -
cpuInfo
Deprecated. -
_properties
private int _propertiesDeprecated. -
_trampolineSize
int _trampolineSizeDeprecated.Size of possible trampolines. -
_logger
Deprecated. -
cpu
Deprecated. -
I386
Deprecated. -
X86_64
Deprecated. -
nop1
private static final int[] nop1Deprecated. -
nop2
private static final int[] nop2Deprecated. -
nop3
private static final int[] nop3Deprecated. -
nop4
private static final int[] nop4Deprecated. -
nop5
private static final int[] nop5Deprecated. -
nop6
private static final int[] nop6Deprecated. -
nop7
private static final int[] nop7Deprecated. -
nop8
private static final int[] nop8Deprecated. -
nop9
private static final int[] nop9Deprecated. -
nop10
private static final int[] nop10Deprecated. -
nop11
private static final int[] nop11Deprecated.
-
-
Constructor Details
-
Assembler
Deprecated.
-
-
Method Details
-
is64
boolean is64()Deprecated.- Specified by:
is64in classSerializerCore
-
intValue
private static final int intValue(boolean b) Deprecated. -
offset
public final int offset()Deprecated. -
codeSize
public final int codeSize()Deprecated.Gets the required size of memory required to store all the generated code -
trampolineSize
int trampolineSize()Deprecated.Return size of all possible trampolines needed to successfuly generate relative jumps to absolute addresses. This value is only non-zero if jmp of call instructions were used with immediate operand (this means jump or call absolute address directly). Currently only _emitJmpOrCallReloc() method can increase trampoline size value. -
getByteAt
public final byte getByteAt(int pos) Deprecated. -
getWordAt
public final short getWordAt(int pos) Deprecated. -
getDWordAt
public final int getDWordAt(int pos) Deprecated. -
getQWordAt
public final long getQWordAt(int pos) Deprecated. -
setByteAt
public final void setByteAt(int pos, byte x) Deprecated. -
setWordAt
public final void setWordAt(int pos, short x) Deprecated. -
setDWordAt
public final void setDWordAt(int pos, int x) Deprecated. -
setQWordAt
public final void setQWordAt(int pos, long x) Deprecated. -
getInt32At
public final int getInt32At(int pos) Deprecated. -
setInt32At
public final void setInt32At(int pos, long x) Deprecated. -
setVarAt
public final void setVarAt(int pos, long i, boolean isUnsigned, int size) Deprecated. -
_emitByte
final void _emitByte(int x) Deprecated.Emit Byte to internal buffer. -
_emitWord
final void _emitWord(int x) Deprecated.Emit Word (2 bytes) to internal buffer. -
_emitDWord
final void _emitDWord(int x) Deprecated.Emit DWord (4 bytes) to internal buffer. -
_emitQWord
final void _emitQWord(long x) Deprecated.Emit QWord (8 bytes) to internal buffer. -
_emitInt32
final void _emitInt32(int x) Deprecated.Emit Int32 (4 bytes) to internal buffer. -
_emitSysInt
final void _emitSysInt(long x) Deprecated.Emit system signed integer (4 or 8 bytes) to internal buffer. -
_emitOpCode
final void _emitOpCode(int opCode) Deprecated. -
_emitSegmentPrefix
Deprecated. -
_emitImmediate
Deprecated. -
_emitRexR
void _emitRexR(int w, int opReg, int regCode) Deprecated.Emit REX prefix (64 bit mode only). -
_emitRexR
void _emitRexR(boolean w, int opReg, int regCode) Deprecated. -
_emitRexRM
Deprecated.Emit REX prefix (64 bit mode only). -
_emitRexRM
Deprecated. -
_emitModM
Deprecated. -
_emitX86Inl
void _emitX86Inl(int opCode, boolean i16bit, boolean rexw, int reg) Deprecated. -
_emitX86Inl
void _emitX86Inl(int opCode, boolean i16bit, int rexw, int reg) Deprecated. -
_emitModRM
Deprecated. -
_emitMod
void _emitMod(int m, int o, int r) Deprecated.Emit MODR/M byte. -
_emitSib
void _emitSib(int s, int i, int b) Deprecated.Emit SIB byte. -
_emitModR
void _emitModR(int opReg, int r) Deprecated.Emit Register / Register - calls _emitMod(3, opReg, r) -
_emitModR
Deprecated.Emit Register / Register - calls _emitMod(3, opReg, r.code()) -
_emitX86RM
Deprecated. -
_emitX86RM
Deprecated. -
_emitX86
Deprecated.- Specified by:
_emitX86in classSerializerCore
-
_emitFpu
void _emitFpu(int opCode) Deprecated. -
_emitFpuSTI
void _emitFpuSTI(int opCode, int sti) Deprecated. -
_emitFpuMEM
Deprecated. -
_emitMmu
Deprecated. -
_emitDisplacement
Deprecated. -
_emitJmpOrCallReloc
Deprecated. -
relocCode
Deprecated. -
align
public void align(long m) Deprecated.
-