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