final class org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp extends org.graalvm.compiler.hotspot.amd64.AMD64HotSpotEpilogueOp
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp
super_class: org.graalvm.compiler.hotspot.amd64.AMD64HotSpotEpilogueOp
{
public static final org.graalvm.compiler.lir.LIRInstructionClass<org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp> TYPE;
descriptor: Lorg/graalvm/compiler/lir/LIRInstructionClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/lir/LIRInstructionClass<Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp;>;
private final org.graalvm.compiler.lir.StandardOp$SaveRegistersOp saveRegisterOp;
descriptor: Lorg/graalvm/compiler/lir/StandardOp$SaveRegistersOp;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp;
invokestatic org.graalvm.compiler.lir.LIRInstructionClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/lir/LIRInstructionClass;
putstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.compiler.lir.StandardOp$SaveRegistersOp);
descriptor: (Lorg/graalvm/compiler/lir/StandardOp$SaveRegistersOp;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
invokespecial org.graalvm.compiler.hotspot.amd64.AMD64HotSpotEpilogueOp.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
1: aload 0
aload 1
putfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp.saveRegisterOp:Lorg/graalvm/compiler/lir/StandardOp$SaveRegistersOp;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp;
0 3 1 saveRegisterOp Lorg/graalvm/compiler/lir/StandardOp$SaveRegistersOp;
MethodParameters:
Name Flags
saveRegisterOp
public void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.frameMap:Lorg/graalvm/compiler/lir/framemap/FrameMap;
astore 3
start local 3 1: aload 3
invokevirtual org.graalvm.compiler.lir.framemap.FrameMap.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
astore 4
start local 4 2: aload 0
getfield org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp.saveRegisterOp:Lorg/graalvm/compiler/lir/StandardOp$SaveRegistersOp;
aload 3
invokevirtual org.graalvm.compiler.lir.StandardOp$SaveRegistersOp.getMap:(Lorg/graalvm/compiler/lir/framemap/FrameMap;)Ljdk/vm/ci/code/RegisterSaveLayout;
astore 5
start local 5 3: aload 4
invokeinterface jdk.vm.ci.code.RegisterConfig.getFrameRegister:()Ljdk/vm/ci/code/Register;
astore 6
start local 6 4: aload 3
invokevirtual org.graalvm.compiler.lir.framemap.FrameMap.getTarget:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
istore 7
start local 7 5: aload 4
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.code.RegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
astore 8
start local 8 6: aload 2
aload 8
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 6
aload 5
aload 8
invokevirtual jdk.vm.ci.code.RegisterSaveLayout.registerToSlot:(Ljdk/vm/ci/code/Register;)I
iload 7
imul
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movptr:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
7: aload 2
getstatic jdk.vm.ci.amd64.AMD64.rdx:Ljdk/vm/ci/code/Register;
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 6
aload 5
getstatic jdk.vm.ci.amd64.AMD64.rdx:Ljdk/vm/ci/code/Register;
invokevirtual jdk.vm.ci.code.RegisterSaveLayout.registerToSlot:(Ljdk/vm/ci/code/Register;)I
iload 7
imul
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movptr:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
8: aload 4
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.code.RegisterConfig.getReturnRegister:(Ljdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/code/Register;
astore 9
start local 9 9: aload 2
aload 9
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 6
aload 5
aload 9
invokevirtual jdk.vm.ci.code.RegisterSaveLayout.registerToSlot:(Ljdk/vm/ci/code/Register;)I
iload 7
imul
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movdbl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
10: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.hotspot.amd64.AMD64HotSpotLeaveCurrentStackFrameOp.leaveFrameAndRestoreRbp:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;)V
11: aload 2
aload 6
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getReturnAddressSize:()I
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.addq:(Ljdk/vm/ci/code/Register;I)V
12: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/hotspot/amd64/AMD64HotSpotLeaveCurrentStackFrameOp;
0 13 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 13 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
1 13 3 frameMap Lorg/graalvm/compiler/lir/framemap/FrameMap;
2 13 4 registerConfig Ljdk/vm/ci/code/RegisterConfig;
3 13 5 registerSaveLayout Ljdk/vm/ci/code/RegisterSaveLayout;
4 13 6 stackPointer Ljdk/vm/ci/code/Register;
5 13 7 stackSlotSize I
6 13 8 integerResultRegister Ljdk/vm/ci/code/Register;
9 13 9 floatResultRegister Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
crb
masm
}
SourceFile: "AMD64HotSpotLeaveCurrentStackFrameOp.java"
InnerClasses:
public abstract SaveRegistersOp = org.graalvm.compiler.lir.StandardOp$SaveRegistersOp of org.graalvm.compiler.lir.StandardOp
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.Opcode(value = "LEAVE_CURRENT_STACK_FRAME")