Mercurial > hg > graal-compiler
comparison src/cpu/ppc/vm/frame_ppc.cpp @ 14445:67fa91961822
8029940: PPC64 (part 122): C2 compiler port
Reviewed-by: kvn
author | goetz |
---|---|
date | Wed, 11 Dec 2013 00:06:11 +0100 |
parents | 018b357638aa |
children | 58cf34613a72 |
comparison
equal
deleted
inserted
replaced
14444:492e67693373 | 14445:67fa91961822 |
---|---|
174 BasicType frame::interpreter_frame_result(oop* oop_result, jvalue* value_result) { | 174 BasicType frame::interpreter_frame_result(oop* oop_result, jvalue* value_result) { |
175 assert(is_interpreted_frame(), "interpreted frame expected"); | 175 assert(is_interpreted_frame(), "interpreted frame expected"); |
176 Method* method = interpreter_frame_method(); | 176 Method* method = interpreter_frame_method(); |
177 BasicType type = method->result_type(); | 177 BasicType type = method->result_type(); |
178 | 178 |
179 #ifdef CC_INTERP | |
180 if (method->is_native()) { | 179 if (method->is_native()) { |
181 // Prior to calling into the runtime to notify the method exit the possible | 180 // Prior to calling into the runtime to notify the method exit the possible |
182 // result value is saved into the interpreter frame. | 181 // result value is saved into the interpreter frame. |
182 #ifdef CC_INTERP | |
183 interpreterState istate = get_interpreterState(); | 183 interpreterState istate = get_interpreterState(); |
184 address lresult = (address)istate + in_bytes(BytecodeInterpreter::native_lresult_offset()); | 184 address lresult = (address)istate + in_bytes(BytecodeInterpreter::native_lresult_offset()); |
185 address fresult = (address)istate + in_bytes(BytecodeInterpreter::native_fresult_offset()); | 185 address fresult = (address)istate + in_bytes(BytecodeInterpreter::native_fresult_offset()); |
186 #endif | |
186 | 187 |
187 switch (method->result_type()) { | 188 switch (method->result_type()) { |
188 case T_OBJECT: | 189 case T_OBJECT: |
189 case T_ARRAY: { | 190 case T_ARRAY: { |
190 oop* obj_p = *(oop**)lresult; | 191 oop* obj_p = *(oop**)lresult; |
224 case T_DOUBLE : value_result->d = *(jdouble*)tos_addr; break; | 225 case T_DOUBLE : value_result->d = *(jdouble*)tos_addr; break; |
225 case T_VOID : /* Nothing to do */ break; | 226 case T_VOID : /* Nothing to do */ break; |
226 default : ShouldNotReachHere(); | 227 default : ShouldNotReachHere(); |
227 } | 228 } |
228 } | 229 } |
229 #else | |
230 Unimplemented(); | |
231 #endif | |
232 return type; | 230 return type; |
233 } | 231 } |
234 | 232 |
235 #ifndef PRODUCT | 233 #ifndef PRODUCT |
236 | 234 |