comparison src/cpu/ppc/vm/frame_ppc.cpp @ 14726:92aa6797d639

Backed out merge changeset: b51e29501f30 Backed out merge revision to its first parent (8f483e200405)
author Doug Simon <doug.simon@oracle.com>
date Mon, 24 Mar 2014 21:30:43 +0100
parents 58cf34613a72
children
comparison
equal deleted inserted replaced
14719:0bdd0d157040 14726:92aa6797d639
1 /* 1 /*
2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
3 * Copyright 2012, 2014 SAP AG. All rights reserved. 3 * Copyright 2012, 2013 SAP AG. All rights reserved.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * 5 *
6 * This code is free software; you can redistribute it and/or modify it 6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as 7 * under the terms of the GNU General Public License version 2 only, as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
40 #ifdef COMPILER1 40 #ifdef COMPILER1
41 #include "c1/c1_Runtime1.hpp" 41 #include "c1/c1_Runtime1.hpp"
42 #include "runtime/vframeArray.hpp" 42 #include "runtime/vframeArray.hpp"
43 #endif 43 #endif
44 44
45 #ifndef CC_INTERP
46 #error "CC_INTERP must be defined on PPC64"
47 #endif
48
45 #ifdef ASSERT 49 #ifdef ASSERT
46 void RegisterMap::check_location_valid() { 50 void RegisterMap::check_location_valid() {
47 } 51 }
48 #endif // ASSERT 52 #endif // ASSERT
49 53
83 return fr; 87 return fr;
84 } 88 }
85 89
86 frame frame::sender_for_interpreter_frame(RegisterMap *map) const { 90 frame frame::sender_for_interpreter_frame(RegisterMap *map) const {
87 // Pass callers initial_caller_sp as unextended_sp. 91 // Pass callers initial_caller_sp as unextended_sp.
88 return frame(sender_sp(), sender_pc(), 92 return frame(sender_sp(), sender_pc(), (intptr_t*)((parent_ijava_frame_abi *)callers_abi())->initial_caller_sp);
89 CC_INTERP_ONLY((intptr_t*)((parent_ijava_frame_abi *)callers_abi())->initial_caller_sp)
90 NOT_CC_INTERP((intptr_t*)get_ijava_state()->sender_sp)
91 );
92 } 93 }
93 94
94 frame frame::sender_for_compiled_frame(RegisterMap *map) const { 95 frame frame::sender_for_compiled_frame(RegisterMap *map) const {
95 assert(map != NULL, "map must be set"); 96 assert(map != NULL, "map must be set");
96 97
180 // result value is saved into the interpreter frame. 181 // result value is saved into the interpreter frame.
181 #ifdef CC_INTERP 182 #ifdef CC_INTERP
182 interpreterState istate = get_interpreterState(); 183 interpreterState istate = get_interpreterState();
183 address lresult = (address)istate + in_bytes(BytecodeInterpreter::native_lresult_offset()); 184 address lresult = (address)istate + in_bytes(BytecodeInterpreter::native_lresult_offset());
184 address fresult = (address)istate + in_bytes(BytecodeInterpreter::native_fresult_offset()); 185 address fresult = (address)istate + in_bytes(BytecodeInterpreter::native_fresult_offset());
185 #else
186 address lresult = (address)&(get_ijava_state()->lresult);
187 address fresult = (address)&(get_ijava_state()->fresult);
188 #endif 186 #endif
189 187
190 switch (method->result_type()) { 188 switch (method->result_type()) {
191 case T_OBJECT: 189 case T_OBJECT:
192 case T_ARRAY: { 190 case T_ARRAY: {
259 values.describe(frame_no, (intptr_t*)&(istate->_last_Java_sp), " last_Java_sp"); 257 values.describe(frame_no, (intptr_t*)&(istate->_last_Java_sp), " last_Java_sp");
260 values.describe(frame_no, (intptr_t*)&(istate->_self_link), " self_link"); 258 values.describe(frame_no, (intptr_t*)&(istate->_self_link), " self_link");
261 values.describe(frame_no, (intptr_t*)&(istate->_native_fresult), " native_fresult"); 259 values.describe(frame_no, (intptr_t*)&(istate->_native_fresult), " native_fresult");
262 values.describe(frame_no, (intptr_t*)&(istate->_native_lresult), " native_lresult"); 260 values.describe(frame_no, (intptr_t*)&(istate->_native_lresult), " native_lresult");
263 #else 261 #else
264 #define DESCRIBE_ADDRESS(name) \ 262 Unimplemented();
265 values.describe(frame_no, (intptr_t*)&(get_ijava_state()->name), #name);
266
267 DESCRIBE_ADDRESS(method);
268 DESCRIBE_ADDRESS(locals);
269 DESCRIBE_ADDRESS(monitors);
270 DESCRIBE_ADDRESS(cpoolCache);
271 DESCRIBE_ADDRESS(bcp);
272 DESCRIBE_ADDRESS(esp);
273 DESCRIBE_ADDRESS(mdx);
274 DESCRIBE_ADDRESS(top_frame_sp);
275 DESCRIBE_ADDRESS(sender_sp);
276 DESCRIBE_ADDRESS(oop_tmp);
277 DESCRIBE_ADDRESS(lresult);
278 DESCRIBE_ADDRESS(fresult);
279 #endif 263 #endif
280 } 264 }
281 } 265 }
282 #endif 266 #endif
283 267