comparison graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java @ 13234:7e237378923d

made the frameContext of a CompilationResultBuilder always non-null and added FrameContext.hasFrame() to determine if a frame is actually generated
author Doug Simon <doug.simon@oracle.com>
date Tue, 03 Dec 2013 18:02:11 +0100
parents 325b4e4efb60
children 5d2bc83e9d22
comparison
equal deleted inserted replaced
13233:8ea51438445c 13234:7e237378923d
113 113
114 HotSpotFrameContext(boolean isStub) { 114 HotSpotFrameContext(boolean isStub) {
115 this.isStub = isStub; 115 this.isStub = isStub;
116 } 116 }
117 117
118 public boolean hasFrame() {
119 return true;
120 }
121
118 @Override 122 @Override
119 public void enter(CompilationResultBuilder crb) { 123 public void enter(CompilationResultBuilder crb) {
120 final int frameSize = crb.frameMap.totalFrameSize(); 124 final int frameSize = crb.frameMap.totalFrameSize();
121 125
122 SPARCMacroAssembler masm = (SPARCMacroAssembler) crb.asm; 126 SPARCMacroAssembler masm = (SPARCMacroAssembler) crb.asm;
205 // Emit code for the LIR 209 // Emit code for the LIR
206 lirGen.lir.emitCode(crb); 210 lirGen.lir.emitCode(crb);
207 211
208 HotSpotFrameContext frameContext = (HotSpotFrameContext) crb.frameContext; 212 HotSpotFrameContext frameContext = (HotSpotFrameContext) crb.frameContext;
209 HotSpotForeignCallsProvider foreignCalls = getProviders().getForeignCalls(); 213 HotSpotForeignCallsProvider foreignCalls = getProviders().getForeignCalls();
210 if (frameContext != null && !frameContext.isStub) { 214 if (!frameContext.isStub) {
211 crb.recordMark(Marks.MARK_EXCEPTION_HANDLER_ENTRY); 215 crb.recordMark(Marks.MARK_EXCEPTION_HANDLER_ENTRY);
212 SPARCCall.directCall(crb, masm, foreignCalls.lookupForeignCall(EXCEPTION_HANDLER), null, false, null); 216 SPARCCall.directCall(crb, masm, foreignCalls.lookupForeignCall(EXCEPTION_HANDLER), null, false, null);
213 crb.recordMark(Marks.MARK_DEOPT_HANDLER_ENTRY); 217 crb.recordMark(Marks.MARK_DEOPT_HANDLER_ENTRY);
214 SPARCCall.directCall(crb, masm, foreignCalls.lookupForeignCall(DEOPT_HANDLER), null, false, null); 218 SPARCCall.directCall(crb, masm, foreignCalls.lookupForeignCall(DEOPT_HANDLER), null, false, null);
215 } else { 219 } else {