public class AMD64Assembler extends AMD64BaseAssembler
Modifier and Type | Class and Description |
---|---|
static class |
AMD64Assembler.AMD64BinaryArithmetic
Arithmetic operation with operand order of RM, MR or MI.
|
static class |
AMD64Assembler.AMD64ImmOp
Base class for AMD64 opcodes with immediate operands.
|
static class |
AMD64Assembler.AMD64MIOp
Opcodes with operand order of MI.
|
static class |
AMD64Assembler.AMD64MOp
Opcodes with operand order of M.
|
static class |
AMD64Assembler.AMD64MROp
Opcode with operand order of MR.
|
static class |
AMD64Assembler.AMD64Op
Base class for AMD64 opcodes.
|
static class |
AMD64Assembler.AMD64RMIOp
Opcodes with operand order of RMI.
|
static class |
AMD64Assembler.AMD64RMOp
Opcode with operand order of RM.
|
static class |
AMD64Assembler.AMD64RROp
Opcode with operand order of either RM or MR for 2 address forms.
|
static class |
AMD64Assembler.AMD64Shift
Shift operation with operand order of M1, MC or MI.
|
static interface |
AMD64Assembler.CodePatchShifter |
static class |
AMD64Assembler.ConditionFlag
The x86 condition codes used for conditional jumps/moves.
|
static class |
AMD64Assembler.Options |
static class |
AMD64Assembler.SSEOp |
static class |
AMD64Assembler.VexFloatCompareOp
VEX-encoded comparison operation with an operand order of RVMI.
|
static class |
AMD64Assembler.VexGatherOp
VEX-encoded vector gather instructions with an operand order of RMV.
|
static class |
AMD64Assembler.VexGeneralPurposeRMOp |
static class |
AMD64Assembler.VexGeneralPurposeRMVOp |
static class |
AMD64Assembler.VexGeneralPurposeRVMOp |
static class |
AMD64Assembler.VexMaskMoveOp |
static class |
AMD64Assembler.VexMoveOp
VEX-encoded move instructions.
|
static class |
AMD64Assembler.VexMRIOp
VEX-encoded instructions with an operand order of MRI.
|
static class |
AMD64Assembler.VexOp
Base class for VEX-encoded instructions.
|
static class |
AMD64Assembler.VexRMIOp
VEX-encoded instructions with an operand order of RMI.
|
static class |
AMD64Assembler.VexRMOp
VEX-encoded instructions with an operand order of RM.
|
static interface |
AMD64Assembler.VexRRIOp |
static class |
AMD64Assembler.VexRROp
VEX-encoded instructions with an operand order of RM, but the M operand must be a register.
|
static class |
AMD64Assembler.VexRVMIOp
VEX-encoded instructions with an operand order of RVMI.
|
static class |
AMD64Assembler.VexRVMOp
VEX-encoded instructions with an operand order of RVM.
|
static class |
AMD64Assembler.VexRVMROp
VEX-encoded instructions with an operand order of RVMR.
|
static class |
AMD64Assembler.VexShiftOp
VEX-encoded shift instructions with an operand order of either RVM or VMI.
|
AMD64BaseAssembler.AddressDisplacementAnnotation, AMD64BaseAssembler.EVEXComparisonPredicate, AMD64BaseAssembler.EVEXPrefixConfig, AMD64BaseAssembler.EVEXTuple, AMD64BaseAssembler.OperandDataAnnotation, AMD64BaseAssembler.OperandSize, AMD64BaseAssembler.VEXPrefixConfig
Assembler.CodeAnnotation, Assembler.InstructionCounter, Assembler.LabelHint
Modifier and Type | Field and Description |
---|---|
protected AMD64Assembler.CodePatchShifter |
codePatchShifter |
static int |
JCC_ERRATUM_MITIGATION_BOUNDARY |
static int |
MODRM_IN_BYTES |
static int |
OPCODE_IN_BYTES |
protected static int |
P_0F |
protected static int |
P_0F38 |
protected static int |
P_0F3A |
DEFAULT_DISP8_SCALE
codePatchingAnnotationConsumer, target
Constructor and Description |
---|
AMD64Assembler(jdk.vm.ci.code.TargetDescription target)
Constructs an assembler for the AMD64 architecture.
|
AMD64Assembler(jdk.vm.ci.code.TargetDescription target,
OptionValues optionValues) |
AMD64Assembler(jdk.vm.ci.code.TargetDescription target,
OptionValues optionValues,
boolean hasIntelJccErratum) |
Modifier and Type | Method and Description |
---|---|
void |
addl(AMD64Address dst,
int imm32) |
void |
addl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
addl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
addpd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
addpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
addq(AMD64Address dst,
int imm32) |
void |
addq(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
addq(jdk.vm.ci.code.Register dst,
int imm32) |
void |
addq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
protected static int |
addressInBytes(AMD64Address addr)
This method should be synchronized with
AMD64BaseAssembler.emitOperandHelper(Register, AMD64Address, int) }. |
void |
addsd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
addsd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
align(int modulus) |
void |
andl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
andl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
andpd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
andpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
andq(jdk.vm.ci.code.Register dst,
int imm32) |
void |
bsfq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
bsrl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
bsrq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
bswapl(jdk.vm.ci.code.Register reg) |
void |
bswapq(jdk.vm.ci.code.Register reg) |
void |
btrq(jdk.vm.ci.code.Register src,
int imm8) |
void |
call()
Emits a direct call instruction.
|
void |
call(jdk.vm.ci.code.Register src) |
void |
cdql() |
void |
cdqq() |
void |
cmovl(AMD64Assembler.ConditionFlag cc,
jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
cmovl(AMD64Assembler.ConditionFlag cc,
jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cmovq(AMD64Assembler.ConditionFlag cc,
jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
cmovq(AMD64Assembler.ConditionFlag cc,
jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cmpb(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cmpl(AMD64Address dst,
int imm32) |
void |
cmpl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
cmpl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
cmpl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cmpq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
cmpq(jdk.vm.ci.code.Register dst,
int imm32) |
void |
cmpq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cmpw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cmpxchgb(jdk.vm.ci.code.Register reg,
AMD64Address adr)
The 8-bit cmpxchg compares the value at adr with the contents of X86.rax, and stores reg into
adr if so; otherwise, the value at adr is loaded into X86.rax,.
|
void |
cmpxchgl(jdk.vm.ci.code.Register reg,
AMD64Address adr)
The 32-bit cmpxchg compares the value at adr with the contents of X86.rax, and stores reg
into adr if so; otherwise, the value at adr is loaded into X86.rax,.
|
void |
cmpxchgq(jdk.vm.ci.code.Register reg,
AMD64Address adr) |
void |
cmpxchgw(jdk.vm.ci.code.Register reg,
AMD64Address adr)
The 16-bit cmpxchg compares the value at adr with the contents of X86.rax, and stores reg
into adr if so; otherwise, the value at adr is loaded into X86.rax,.
|
void |
cvtdq2pd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cvtsi2sdl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cvtsi2sdq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cvttpd2dq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cvttsd2sil(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
cvttsd2siq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
decl(AMD64Address dst) |
void |
decl(jdk.vm.ci.code.Register dst) |
void |
decq(AMD64Address dst) |
void |
decq(jdk.vm.ci.code.Register dst) |
void |
divsd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
ensureUniquePC()
Emits a NOP instruction to advance the current PC.
|
protected boolean |
ensureWithinBoundary(int opStart) |
void |
evmovdqu16(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
evmovdqu16(AMD64Address dst,
jdk.vm.ci.code.Register mask,
jdk.vm.ci.code.Register src) |
void |
evmovdqu16(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
evmovdqu16(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register mask,
AMD64Address src) |
void |
evmovdqu64(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
evmovdqu64(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
evpbroadcastw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
evpcmpeqb(jdk.vm.ci.code.Register kdst,
jdk.vm.ci.code.Register nds,
AMD64Address src) |
void |
evpcmpuw(jdk.vm.ci.code.Register kdst,
jdk.vm.ci.code.Register nds,
jdk.vm.ci.code.Register src,
int vcc) |
void |
evpcmpuw(jdk.vm.ci.code.Register kdst,
jdk.vm.ci.code.Register mask,
jdk.vm.ci.code.Register nds,
jdk.vm.ci.code.Register src,
int vcc) |
void |
evpmovwb(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
evpmovwb(AMD64Address dst,
jdk.vm.ci.code.Register mask,
jdk.vm.ci.code.Register src) |
void |
evpmovzxbw(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
evpmovzxbw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register mask,
AMD64Address src) |
void |
fcos() |
void |
ffree(int i) |
void |
fincstp() |
void |
fldd(AMD64Address src) |
void |
fldlg2() |
void |
fldln2() |
void |
flds(AMD64Address src) |
void |
fnstswAX() |
void |
fprem() |
void |
fptan() |
void |
fsin() |
void |
fstp(int i) |
void |
fstpd(AMD64Address src) |
void |
fstps(AMD64Address src) |
void |
fwait() |
void |
fxch(int i) |
void |
fyl2x() |
AMD64Address |
getPlaceholder(int instructionStartPosition)
Returns a target specific placeholder address that can be used for code patching.
|
protected static int |
getPrefixInBytes(AMD64BaseAssembler.OperandSize size,
AMD64Address src) |
protected static int |
getPrefixInBytes(AMD64BaseAssembler.OperandSize size,
jdk.vm.ci.code.Register dst,
boolean dstIsByte) |
protected static int |
getPrefixInBytes(AMD64BaseAssembler.OperandSize size,
jdk.vm.ci.code.Register dst,
boolean dstIsByte,
AMD64Address src) |
protected static int |
getPrefixInBytes(AMD64BaseAssembler.OperandSize size,
jdk.vm.ci.code.Register dst,
boolean dstIsByte,
jdk.vm.ci.code.Register src,
boolean srcIsByte) |
void |
hlt() |
void |
illegal()
Emits an instruction which is considered to be illegal.
|
void |
imull(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src,
int value) |
void |
imulq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
incl(AMD64Address dst) |
void |
incl(jdk.vm.ci.code.Register dst) |
void |
incq(AMD64Address dst) |
void |
incq(jdk.vm.ci.code.Register dst) |
void |
int3() |
void |
jcc(AMD64Assembler.ConditionFlag cc,
int jumpTarget,
boolean forceDisp32) |
void |
jcc(AMD64Assembler.ConditionFlag cc,
Label l) |
void |
jcc(AMD64Assembler.ConditionFlag cc,
Label branchTarget,
boolean isShortJmp) |
void |
jccb(AMD64Assembler.ConditionFlag cc,
Label l) |
void |
jmp(AMD64Address adr) |
int |
jmp(int jumpTarget,
boolean forceDisp32)
Emit a jmp instruction given a known target address.
|
void |
jmp(Label l) |
void |
jmp(jdk.vm.ci.code.Register entry) |
void |
jmpb(Label l) |
protected void |
jmpWithoutAlignment(jdk.vm.ci.code.Register entry) |
void |
kmovd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
kmovq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
kortestd(jdk.vm.ci.code.Register src1,
jdk.vm.ci.code.Register src2) |
void |
kortestq(jdk.vm.ci.code.Register src1,
jdk.vm.ci.code.Register src2) |
void |
ktestd(jdk.vm.ci.code.Register src1,
jdk.vm.ci.code.Register src2) |
void |
lead(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
leaq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
leave() |
void |
lfence() |
void |
lock() |
AMD64Address |
makeAddress(jdk.vm.ci.code.Register base,
int displacement)
This is used by the CompilationResultBuilder to convert a
StackSlot to an
AbstractAddress . |
protected boolean |
mayCrossBoundary(int opStart,
int opEnd) |
void |
membar(int barriers) |
void |
movapd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movaps(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movb(AMD64Address dst,
int imm8) |
void |
movb(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movb(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movddup(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movdl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movdl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movdq(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movdq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movdq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movdqu(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movdqu(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movdqu(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movl(AMD64Address dst,
int imm32) |
void |
movl(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movl(jdk.vm.ci.code.Register dst,
AMD64Address src,
boolean wide) |
void |
movl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
movl(jdk.vm.ci.code.Register dst,
int imm32,
boolean annotateImm) |
void |
movl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movlhps(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movlpd(jdk.vm.ci.code.Register dst,
AMD64Address src)
New CPUs require use of movsd and movss to avoid partial register stall when loading from
memory.
|
void |
movq(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movq(jdk.vm.ci.code.Register dst,
AMD64Address src,
boolean force4BytesDisplacement) |
void |
movq(jdk.vm.ci.code.Register dst,
long imm64) |
void |
movq(jdk.vm.ci.code.Register dst,
long imm64,
boolean annotateImm) |
void |
movq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movsbl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movsbl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movsbq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movsbq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movsd(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movsd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movsd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movslq(AMD64Address dst,
int imm32) |
void |
movslq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movslq(jdk.vm.ci.code.Register dst,
int imm32) |
void |
movslq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movss(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movss(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movss(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movswl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movswq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movw(AMD64Address dst,
int imm16) |
void |
movw(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
movw(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movzbl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movzbl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movzbq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movzbq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
movzwl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
movzwq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
mulpd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
mulpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
mulsd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
mulsd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
mulss(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
negl(jdk.vm.ci.code.Register dst) |
void |
negq(jdk.vm.ci.code.Register dst) |
void |
nop() |
void |
nop(int count) |
void |
notl(jdk.vm.ci.code.Register dst) |
void |
notq(jdk.vm.ci.code.Register dst) |
void |
nullCheck(AMD64Address address) |
void |
orl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
orl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
orq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
packuswb(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
paddd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
paddq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pand(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
protected void |
patchJumpTarget(int branch,
int branchTarget) |
void |
pause() |
void |
pcmpeqb(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pcmpeqd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pcmpeqw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pcmpestri(jdk.vm.ci.code.Register dst,
AMD64Address src,
int imm8) |
void |
pcmpestri(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src,
int imm8) |
void |
pextrw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src,
int imm8) |
void |
pinsrw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src,
int imm8) |
void |
pmovmskb(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pmovsxbd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovsxbq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovsxbw(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovsxdq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovsxwd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovsxwq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovzxbd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovzxbq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovzxbw(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovzxbw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pmovzxdq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovzxwd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pmovzxwq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
pop(jdk.vm.ci.code.Register dst) |
void |
popfq() |
void |
por(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
prefetchnta(AMD64Address src) |
void |
prefetcht0(AMD64Address src) |
void |
prefetcht1(AMD64Address src) |
void |
prefetcht2(AMD64Address src) |
void |
prefetchw(AMD64Address src) |
void |
pshufb(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
pshufd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src,
int imm8) |
void |
pshuflw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src,
int imm8) |
void |
pslld(jdk.vm.ci.code.Register dst,
int imm8) |
void |
psllq(jdk.vm.ci.code.Register dst,
int imm8) |
void |
psllq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register shift) |
void |
psrad(jdk.vm.ci.code.Register dst,
int imm8) |
void |
psrld(jdk.vm.ci.code.Register dst,
int imm8) |
void |
psrldq(jdk.vm.ci.code.Register dst,
int imm8) |
void |
psrlq(jdk.vm.ci.code.Register dst,
int imm8) |
void |
psubd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
ptest(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
punpcklbw(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
push(jdk.vm.ci.code.Register src) |
void |
pushfq() |
void |
pxor(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
rcpps(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
rdtsc() |
void |
rdtscp() |
void |
repStosb() |
void |
repStosq() |
void |
ret(int imm16) |
void |
sarl(jdk.vm.ci.code.Register dst,
int imm8) |
void |
sarq(jdk.vm.ci.code.Register dst,
int imm8) |
void |
sbbq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
setb(AMD64Assembler.ConditionFlag cc,
jdk.vm.ci.code.Register dst) |
void |
setCodePatchShifter(AMD64Assembler.CodePatchShifter codePatchShifter) |
void |
shll(jdk.vm.ci.code.Register dst) |
void |
shll(jdk.vm.ci.code.Register dst,
int imm8) |
void |
shlq(jdk.vm.ci.code.Register dst) |
void |
shlq(jdk.vm.ci.code.Register dst,
int imm8) |
void |
shlxl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src1,
jdk.vm.ci.code.Register src2) |
void |
shrl(jdk.vm.ci.code.Register dst) |
void |
shrl(jdk.vm.ci.code.Register dst,
int imm8) |
void |
shrq(jdk.vm.ci.code.Register dst) |
void |
shrq(jdk.vm.ci.code.Register dst,
int imm8) |
void |
subl(AMD64Address dst,
int imm32) |
void |
subl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
subl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
subpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
subq(AMD64Address dst,
int imm32) |
void |
subq(jdk.vm.ci.code.Register dst,
int imm32) |
void |
subq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
subqWide(jdk.vm.ci.code.Register dst,
int imm32) |
void |
subsd(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
subsd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
protected void |
testAndAlign(int bytesToEmit) |
void |
testl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
testl(jdk.vm.ci.code.Register dst,
int imm32) |
void |
testl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
testq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
unpckhpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
unpcklpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
vmovdqu(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
vmovdqu(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
vpmovzxbw(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
vptest(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
vpxor(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register nds,
AMD64Address src) |
void |
vpxor(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register nds,
jdk.vm.ci.code.Register src) |
void |
vzeroupper() |
void |
xaddb(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
xaddl(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
xaddq(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
xaddw(AMD64Address dst,
jdk.vm.ci.code.Register src) |
void |
xchgb(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
xchgl(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
xchgq(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
xchgw(jdk.vm.ci.code.Register dst,
AMD64Address src) |
void |
xorl(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
xorpd(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
xorps(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
void |
xorq(jdk.vm.ci.code.Register dst,
jdk.vm.ci.code.Register src) |
annotatePatchingImmediate, emitModRM, emitModRM, emitOperandHelper, emitOperandHelper, emitOperandHelper, emitOperandHelper, emitVEX, encode, evexPrefix, evexPrefix, getLFlag, getRXB, getRXB, inRC, isAVX512Register, needsRex, needsRex, prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefixb, prefixq, prefixq, prefixq, prefixq, rexw, simdPrefix, simdPrefix, simdPrefix, simdPrefix, supports, vexPrefix, vexPrefix
bind, close, copy, createLabelName, emitByte, emitByte, emitInt, emitInt, emitLong, emitLong, emitShort, emitShort, emitString, emitString, emitString0, getByte, getInstructionCounter, getInt, getShort, nameOf, position, requestLabelHint, reset, setCodePatchingAnnotationConsumer
protected AMD64Assembler.CodePatchShifter codePatchShifter
protected static final int P_0F
protected static final int P_0F38
protected static final int P_0F3A
public static final int JCC_ERRATUM_MITIGATION_BOUNDARY
public static final int OPCODE_IN_BYTES
public static final int MODRM_IN_BYTES
public AMD64Assembler(jdk.vm.ci.code.TargetDescription target)
public AMD64Assembler(jdk.vm.ci.code.TargetDescription target, OptionValues optionValues)
public AMD64Assembler(jdk.vm.ci.code.TargetDescription target, OptionValues optionValues, boolean hasIntelJccErratum)
public void setCodePatchShifter(AMD64Assembler.CodePatchShifter codePatchShifter)
public final void addl(AMD64Address dst, int imm32)
public final void addl(jdk.vm.ci.code.Register dst, int imm32)
public final void addl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void addpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void addpd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void addsd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void addsd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void andl(jdk.vm.ci.code.Register dst, int imm32)
public final void andl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void andpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void andpd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void bsfq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void bsrl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void bswapl(jdk.vm.ci.code.Register reg)
public final void cdql()
public final void cmovl(AMD64Assembler.ConditionFlag cc, jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cmovl(AMD64Assembler.ConditionFlag cc, jdk.vm.ci.code.Register dst, AMD64Address src)
public final void cmpb(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cmpw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cmpl(jdk.vm.ci.code.Register dst, int imm32)
public final void cmpl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cmpl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void cmpl(AMD64Address dst, int imm32)
public final void cmpxchgb(jdk.vm.ci.code.Register reg, AMD64Address adr)
public final void cmpxchgw(jdk.vm.ci.code.Register reg, AMD64Address adr)
public final void cmpxchgl(jdk.vm.ci.code.Register reg, AMD64Address adr)
public final void cvtsi2sdl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cvttsd2sil(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void decl(AMD64Address dst)
public final void divsd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void hlt()
public final void imull(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src, int value)
public final void incl(AMD64Address dst)
protected static int getPrefixInBytes(AMD64BaseAssembler.OperandSize size, jdk.vm.ci.code.Register dst, boolean dstIsByte)
protected static int getPrefixInBytes(AMD64BaseAssembler.OperandSize size, AMD64Address src)
protected static int getPrefixInBytes(AMD64BaseAssembler.OperandSize size, jdk.vm.ci.code.Register dst, boolean dstIsByte, jdk.vm.ci.code.Register src, boolean srcIsByte)
protected static int getPrefixInBytes(AMD64BaseAssembler.OperandSize size, jdk.vm.ci.code.Register dst, boolean dstIsByte, AMD64Address src)
protected boolean mayCrossBoundary(int opStart, int opEnd)
protected boolean ensureWithinBoundary(int opStart)
protected final void testAndAlign(int bytesToEmit)
public void jcc(AMD64Assembler.ConditionFlag cc, int jumpTarget, boolean forceDisp32)
public final void jcc(AMD64Assembler.ConditionFlag cc, Label l)
public final void jccb(AMD64Assembler.ConditionFlag cc, Label l)
public final void jcc(AMD64Assembler.ConditionFlag cc, Label branchTarget, boolean isShortJmp)
public final int jmp(int jumpTarget, boolean forceDisp32)
protected final void jmpWithoutAlignment(jdk.vm.ci.code.Register entry)
public final void jmp(jdk.vm.ci.code.Register entry)
public final void jmp(AMD64Address adr)
protected static int addressInBytes(AMD64Address addr)
AMD64BaseAssembler.emitOperandHelper(Register, AMD64Address, int)
}.public final void jmpb(Label l)
public final void lead(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void leaq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void leave()
public final void lock()
public final void movapd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movaps(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movb(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movb(AMD64Address dst, int imm8)
public final void movb(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movl(jdk.vm.ci.code.Register dst, int imm32)
public final void movl(jdk.vm.ci.code.Register dst, int imm32, boolean annotateImm)
public final void movl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movl(jdk.vm.ci.code.Register dst, AMD64Address src, boolean wide)
wide
- use 4 byte encoding for displacements that would normally fit in a bytepublic final void movl(AMD64Address dst, int imm32)
public final void movl(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movlpd(jdk.vm.ci.code.Register dst, AMD64Address src)
AMD64MacroAssembler.movdbl(Register, AMD64Address)
and
AMD64MacroAssembler.movflt(Register, Register)
.public final void movlhps(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movq(jdk.vm.ci.code.Register dst, AMD64Address src, boolean force4BytesDisplacement)
public final void movq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movq(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movsbl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movsbl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movsbq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movsbq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movsd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movsd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movsd(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movss(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movss(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movss(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void mulpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void mulpd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void mulsd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void mulsd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void mulss(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movswl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movswq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movw(AMD64Address dst, int imm16)
public final void movw(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movw(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movzbl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movzbl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movzbq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movzbq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movzwl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movzwq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void negl(jdk.vm.ci.code.Register dst)
public final void notl(jdk.vm.ci.code.Register dst)
public final void notq(jdk.vm.ci.code.Register dst)
public final void ensureUniquePC()
Assembler
ensureUniquePC
in class Assembler
public final void nop()
public void nop(int count)
public final void orl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void orl(jdk.vm.ci.code.Register dst, int imm32)
public final void packuswb(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pop(jdk.vm.ci.code.Register dst)
public void popfq()
public final void ptest(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pcmpeqb(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pcmpeqw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pcmpeqd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pcmpestri(jdk.vm.ci.code.Register dst, AMD64Address src, int imm8)
public final void pcmpestri(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src, int imm8)
public final void pmovmskb(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pmovsxbw(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovsxbd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovsxbq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovsxwd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovsxwq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovsxdq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxbw(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxbd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxbq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxwd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxwq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxdq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void pmovzxbw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void push(jdk.vm.ci.code.Register src)
public void pushfq()
public final void paddd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void paddq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pextrw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src, int imm8)
public final void pinsrw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src, int imm8)
public final void por(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pand(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pxor(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pslld(jdk.vm.ci.code.Register dst, int imm8)
public final void psllq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register shift)
public final void psllq(jdk.vm.ci.code.Register dst, int imm8)
public final void psrad(jdk.vm.ci.code.Register dst, int imm8)
public final void psrld(jdk.vm.ci.code.Register dst, int imm8)
public final void psrlq(jdk.vm.ci.code.Register dst, int imm8)
public final void psrldq(jdk.vm.ci.code.Register dst, int imm8)
public final void pshufb(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void pshuflw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src, int imm8)
public final void pshufd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src, int imm8)
public final void psubd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void punpcklbw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void rcpps(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void ret(int imm16)
public final void sarl(jdk.vm.ci.code.Register dst, int imm8)
public final void shll(jdk.vm.ci.code.Register dst, int imm8)
public final void shll(jdk.vm.ci.code.Register dst)
public final void shlxl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src1, jdk.vm.ci.code.Register src2)
public final void shrl(jdk.vm.ci.code.Register dst, int imm8)
public final void shrl(jdk.vm.ci.code.Register dst)
public final void subl(AMD64Address dst, int imm32)
public final void subl(jdk.vm.ci.code.Register dst, int imm32)
public final void subl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void subpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void subsd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void subsd(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void testl(jdk.vm.ci.code.Register dst, int imm32)
public final void testl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void testl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void unpckhpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void unpcklpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void xorl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void xorq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void xorpd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void xorps(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void decl(jdk.vm.ci.code.Register dst)
public final void incl(jdk.vm.ci.code.Register dst)
public final void addq(jdk.vm.ci.code.Register dst, int imm32)
public final void addq(AMD64Address dst, int imm32)
public final void addq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void addq(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void andq(jdk.vm.ci.code.Register dst, int imm32)
public final void bsrq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void bswapq(jdk.vm.ci.code.Register reg)
public final void cdqq()
public final void repStosb()
public final void repStosq()
public final void cmovq(AMD64Assembler.ConditionFlag cc, jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void setb(AMD64Assembler.ConditionFlag cc, jdk.vm.ci.code.Register dst)
public final void cmovq(AMD64Assembler.ConditionFlag cc, jdk.vm.ci.code.Register dst, AMD64Address src)
public final void cmpq(jdk.vm.ci.code.Register dst, int imm32)
public final void cmpq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cmpq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void cmpxchgq(jdk.vm.ci.code.Register reg, AMD64Address adr)
public final void cvtdq2pd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cvtsi2sdq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cvttsd2siq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void cvttpd2dq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void decq(jdk.vm.ci.code.Register dst)
public final void decq(AMD64Address dst)
public final void imulq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void incq(jdk.vm.ci.code.Register dst)
public final void incq(AMD64Address dst)
public final void movq(jdk.vm.ci.code.Register dst, long imm64)
public final void movq(jdk.vm.ci.code.Register dst, long imm64, boolean annotateImm)
public final void movslq(jdk.vm.ci.code.Register dst, int imm32)
public final void movdq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movdq(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movdq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movdl(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movdl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movddup(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movdqu(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movdqu(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void movdqu(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void movslq(AMD64Address dst, int imm32)
public final void movslq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void movslq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void negq(jdk.vm.ci.code.Register dst)
public final void orq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void shlq(jdk.vm.ci.code.Register dst, int imm8)
public final void shlq(jdk.vm.ci.code.Register dst)
public final void shrq(jdk.vm.ci.code.Register dst, int imm8)
public final void shrq(jdk.vm.ci.code.Register dst)
public final void sarq(jdk.vm.ci.code.Register dst, int imm8)
public final void sbbq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void subq(jdk.vm.ci.code.Register dst, int imm32)
public final void subq(AMD64Address dst, int imm32)
public final void subqWide(jdk.vm.ci.code.Register dst, int imm32)
public final void subq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void testq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void btrq(jdk.vm.ci.code.Register src, int imm8)
public final void xaddb(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void xaddw(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void xaddl(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void xaddq(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void xchgb(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void xchgw(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void xchgl(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void xchgq(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void membar(int barriers)
protected final void patchJumpTarget(int branch, int branchTarget)
patchJumpTarget
in class Assembler
public void nullCheck(AMD64Address address)
public final void call()
public final void call(jdk.vm.ci.code.Register src)
public final void int3()
public final void pause()
public final void fldd(AMD64Address src)
public final void flds(AMD64Address src)
public final void fldln2()
public final void fldlg2()
public final void fyl2x()
public final void fstps(AMD64Address src)
public final void fstpd(AMD64Address src)
public void ffree(int i)
public void fincstp()
public void fxch(int i)
public void fnstswAX()
public void fwait()
public void fprem()
public final void fsin()
public final void fcos()
public final void fptan()
public final void fstp(int i)
public AMD64Address makeAddress(jdk.vm.ci.code.Register base, int displacement)
Assembler
StackSlot
to an
AbstractAddress
.makeAddress
in class Assembler
public AMD64Address getPlaceholder(int instructionStartPosition)
Assembler
getPlaceholder
in class Assembler
instructionStartPosition
- The start of the instruction, i.e., the value that is used as
the key for looking up placeholder patching information.public void prefetchnta(AMD64Address src)
public void prefetcht0(AMD64Address src)
public void prefetcht1(AMD64Address src)
public void prefetcht2(AMD64Address src)
public void prefetchw(AMD64Address src)
public void rdtsc()
public void rdtscp()
public void illegal()
public void lfence()
public final void vptest(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void vpxor(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register nds, jdk.vm.ci.code.Register src)
public final void vpxor(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register nds, AMD64Address src)
public final void vmovdqu(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void vmovdqu(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void vpmovzxbw(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void vzeroupper()
public final void kortestd(jdk.vm.ci.code.Register src1, jdk.vm.ci.code.Register src2)
public final void kortestq(jdk.vm.ci.code.Register src1, jdk.vm.ci.code.Register src2)
public final void kmovd(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void kmovq(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void ktestd(jdk.vm.ci.code.Register src1, jdk.vm.ci.code.Register src2)
public final void evmovdqu64(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void evmovdqu64(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void evpmovzxbw(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void evpcmpeqb(jdk.vm.ci.code.Register kdst, jdk.vm.ci.code.Register nds, AMD64Address src)
public final void evmovdqu16(jdk.vm.ci.code.Register dst, AMD64Address src)
public final void evmovdqu16(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register mask, AMD64Address src)
public final void evmovdqu16(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void evmovdqu16(AMD64Address dst, jdk.vm.ci.code.Register mask, jdk.vm.ci.code.Register src)
public final void evpbroadcastw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register src)
public final void evpcmpuw(jdk.vm.ci.code.Register kdst, jdk.vm.ci.code.Register nds, jdk.vm.ci.code.Register src, int vcc)
public final void evpcmpuw(jdk.vm.ci.code.Register kdst, jdk.vm.ci.code.Register mask, jdk.vm.ci.code.Register nds, jdk.vm.ci.code.Register src, int vcc)
public final void evpmovwb(AMD64Address dst, jdk.vm.ci.code.Register src)
public final void evpmovwb(AMD64Address dst, jdk.vm.ci.code.Register mask, jdk.vm.ci.code.Register src)
public final void evpmovzxbw(jdk.vm.ci.code.Register dst, jdk.vm.ci.code.Register mask, AMD64Address src)