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 CodeBuffer
Deprecated.private final Logger
Deprecated.private int
Deprecated.Deprecated.(package private) int
Deprecated.Size of possible trampolines.private final CPU
Deprecated.private final CpuInfo
Deprecated.static final CPU
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.private static final int[]
Deprecated.static final CPU
Deprecated.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) void
Deprecated.(package private) void
_emitMod
(int m, int o, int r) Deprecated.Emit MODR/M byte.(package private) void
Deprecated.(package private) void
_emitModR
(int opReg, int r) Deprecated.Emit Register / Register - calls _emitMod(3, opReg, r)(package private) void
Deprecated.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) void
Deprecated.(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) void
Deprecated.(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.void
align
(long m) Deprecated.final int
codeSize()
Deprecated.Gets the required size of memory required to store all the generated codefinal byte
getByteAt
(int pos) Deprecated.final int
getDWordAt
(int pos) Deprecated.final int
getInt32At
(int pos) Deprecated.final long
getQWordAt
(int pos) Deprecated.final short
getWordAt
(int pos) Deprecated.private static final int
intValue
(boolean b) Deprecated.(package private) boolean
is64()
Deprecated.final int
offset()
Deprecated.void
relocCode
(ByteBuffer buffer, long address) Deprecated.final void
setByteAt
(int pos, byte x) Deprecated.final void
setDWordAt
(int pos, int x) Deprecated.final void
setInt32At
(int pos, long x) Deprecated.final void
setQWordAt
(int pos, long x) Deprecated.final void
setVarAt
(int pos, long i, boolean isUnsigned, int size) Deprecated.final void
setWordAt
(int pos, short x) Deprecated.(package private) int
Deprecated.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, xorps
Methods 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:
is64
in 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:
_emitX86
in 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.
-