Mercurial > hg > truffle
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 { |