src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java

Print this page




 209         }
 210 
 211     }
 212 
 213     @Override
 214     protected Assembler createAssembler(FrameMap frameMap) {
 215         return new AArch64MacroAssembler(getTarget());
 216     }
 217 
 218     @Override
 219     public CompilationResultBuilder newCompilationResultBuilder(LIRGenerationResult lirGenRen, FrameMap frameMap, CompilationResult compilationResult, CompilationResultBuilderFactory factory) {
 220         HotSpotLIRGenerationResult gen = (HotSpotLIRGenerationResult) lirGenRen;
 221         LIR lir = gen.getLIR();
 222         assert gen.getDeoptimizationRescueSlot() == null || frameMap.frameNeedsAllocating() : "method that can deoptimize must have a frame";
 223 
 224         Stub stub = gen.getStub();
 225         Assembler masm = createAssembler(frameMap);
 226         HotSpotFrameContext frameContext = new HotSpotFrameContext(stub != null);
 227 
 228         DataBuilder dataBuilder = new HotSpotDataBuilder(getCodeCache().getTarget());
 229         CompilationResultBuilder crb = factory.createBuilder(getCodeCache(), getForeignCalls(), frameMap, masm, dataBuilder, frameContext, lir.getOptions(), compilationResult);
 230         crb.setTotalFrameSize(frameMap.totalFrameSize());
 231         crb.setMaxInterpreterFrameSize(gen.getMaxInterpreterFrameSize());
 232         StackSlot deoptimizationRescueSlot = gen.getDeoptimizationRescueSlot();
 233         if (deoptimizationRescueSlot != null && stub == null) {
 234             crb.compilationResult.setCustomStackAreaOffset(deoptimizationRescueSlot);
 235         }
 236 
 237         if (stub != null) {
 238             EconomicSet<Register> destroyedCallerRegisters = gatherDestroyedCallerRegisters(lir);
 239             updateStub(stub, destroyedCallerRegisters, gen.getCalleeSaveInfo(), frameMap);
 240         }
 241         return crb;
 242     }
 243 
 244     @Override
 245     public void emitCode(CompilationResultBuilder crb, LIR lir, ResolvedJavaMethod installedCodeOwner) {
 246         AArch64MacroAssembler masm = (AArch64MacroAssembler) crb.asm;
 247         FrameMap frameMap = crb.frameMap;
 248         RegisterConfig regConfig = frameMap.getRegisterConfig();
 249         Label verifiedStub = new Label();




 209         }
 210 
 211     }
 212 
 213     @Override
 214     protected Assembler createAssembler(FrameMap frameMap) {
 215         return new AArch64MacroAssembler(getTarget());
 216     }
 217 
 218     @Override
 219     public CompilationResultBuilder newCompilationResultBuilder(LIRGenerationResult lirGenRen, FrameMap frameMap, CompilationResult compilationResult, CompilationResultBuilderFactory factory) {
 220         HotSpotLIRGenerationResult gen = (HotSpotLIRGenerationResult) lirGenRen;
 221         LIR lir = gen.getLIR();
 222         assert gen.getDeoptimizationRescueSlot() == null || frameMap.frameNeedsAllocating() : "method that can deoptimize must have a frame";
 223 
 224         Stub stub = gen.getStub();
 225         Assembler masm = createAssembler(frameMap);
 226         HotSpotFrameContext frameContext = new HotSpotFrameContext(stub != null);
 227 
 228         DataBuilder dataBuilder = new HotSpotDataBuilder(getCodeCache().getTarget());
 229         CompilationResultBuilder crb = factory.createBuilder(getCodeCache(), getForeignCalls(), frameMap, masm, dataBuilder, frameContext, lir.getOptions(), lir.getDebug(), compilationResult);
 230         crb.setTotalFrameSize(frameMap.totalFrameSize());
 231         crb.setMaxInterpreterFrameSize(gen.getMaxInterpreterFrameSize());
 232         StackSlot deoptimizationRescueSlot = gen.getDeoptimizationRescueSlot();
 233         if (deoptimizationRescueSlot != null && stub == null) {
 234             crb.compilationResult.setCustomStackAreaOffset(deoptimizationRescueSlot);
 235         }
 236 
 237         if (stub != null) {
 238             EconomicSet<Register> destroyedCallerRegisters = gatherDestroyedCallerRegisters(lir);
 239             updateStub(stub, destroyedCallerRegisters, gen.getCalleeSaveInfo(), frameMap);
 240         }
 241         return crb;
 242     }
 243 
 244     @Override
 245     public void emitCode(CompilationResultBuilder crb, LIR lir, ResolvedJavaMethod installedCodeOwner) {
 246         AArch64MacroAssembler masm = (AArch64MacroAssembler) crb.asm;
 247         FrameMap frameMap = crb.frameMap;
 248         RegisterConfig regConfig = frameMap.getRegisterConfig();
 249         Label verifiedStub = new Label();


src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File