Mercurial > hg > truffle
comparison src/cpu/ppc/vm/nativeInst_ppc.cpp @ 14433:018b357638aa
8028514: PPC64: Fix C++ Interpreter after '7195622: CheckUnhandledOops has limited usefulness now'
Summary: fix CPP-interpreter after CheckUnhandledOops was re-enabled in the fastdebug build
Reviewed-by: kvn, dholmes, lfoltan
author | simonis |
---|---|
date | Tue, 19 Nov 2013 11:53:58 -0800 |
parents | ec28f9c041ff |
children | 67fa91961822 |
comparison
equal
deleted
inserted
replaced
14432:935bf3340572 | 14433:018b357638aa |
---|---|
186 | 186 |
187 if (MacroAssembler::is_load_const_at(addr)) { | 187 if (MacroAssembler::is_load_const_at(addr)) { |
188 return MacroAssembler::get_const(addr); | 188 return MacroAssembler::get_const(addr); |
189 } else if (MacroAssembler::is_set_narrow_oop(addr, cb->content_begin())) { | 189 } else if (MacroAssembler::is_set_narrow_oop(addr, cb->content_begin())) { |
190 narrowOop no = (narrowOop)MacroAssembler::get_narrow_oop(addr, cb->content_begin()); | 190 narrowOop no = (narrowOop)MacroAssembler::get_narrow_oop(addr, cb->content_begin()); |
191 return (intptr_t)oopDesc::decode_heap_oop(no); | 191 return cast_from_oop<intptr_t>(oopDesc::decode_heap_oop(no)); |
192 } else { | 192 } else { |
193 assert(MacroAssembler::is_load_const_from_method_toc_at(addr), "must be load_const_from_pool"); | 193 assert(MacroAssembler::is_load_const_from_method_toc_at(addr), "must be load_const_from_pool"); |
194 | 194 |
195 address ctable = cb->content_begin(); | 195 address ctable = cb->content_begin(); |
196 int offset = MacroAssembler::get_offset_of_load_const_from_method_toc_at(addr); | 196 int offset = MacroAssembler::get_offset_of_load_const_from_method_toc_at(addr); |
256 while (iter.next()) { | 256 while (iter.next()) { |
257 if (iter.type() == relocInfo::oop_type) { | 257 if (iter.type() == relocInfo::oop_type) { |
258 oop_Relocation *r = iter.oop_reloc(); | 258 oop_Relocation *r = iter.oop_reloc(); |
259 if (oop_addr == NULL) { | 259 if (oop_addr == NULL) { |
260 oop_addr = r->oop_addr(); | 260 oop_addr = r->oop_addr(); |
261 *oop_addr = (oop)data; | 261 *oop_addr = cast_to_oop(data); |
262 } else { | 262 } else { |
263 assert(oop_addr == r->oop_addr(), "must be only one set-oop here") ; | 263 assert(oop_addr == r->oop_addr(), "must be only one set-oop here") ; |
264 } | 264 } |
265 } | 265 } |
266 if (iter.type() == relocInfo::metadata_type) { | 266 if (iter.type() == relocInfo::metadata_type) { |