Mercurial > hg > truffle
comparison src/cpu/sparc/vm/templateTable_sparc.cpp @ 1681:126ea7725993
6953477: Increase portability and flexibility of building Hotspot
Summary: A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail.
Reviewed-by: phh, never, coleenp, dholmes
author | bobv |
---|---|
date | Tue, 03 Aug 2010 08:13:38 -0400 |
parents | 136b78722a08 |
children | d5d065957597 |
comparison
equal
deleted
inserted
replaced
1680:a64438a2b7e8 | 1681:126ea7725993 |
---|---|
3234 Register Rscratch = O4; | 3234 Register Rscratch = O4; |
3235 | 3235 |
3236 __ get_2_byte_integer_at_bcp(1, Rscratch, Roffset, InterpreterMacroAssembler::Unsigned); | 3236 __ get_2_byte_integer_at_bcp(1, Rscratch, Roffset, InterpreterMacroAssembler::Unsigned); |
3237 __ get_cpool_and_tags(Rscratch, G3_scratch); | 3237 __ get_cpool_and_tags(Rscratch, G3_scratch); |
3238 // make sure the class we're about to instantiate has been resolved | 3238 // make sure the class we're about to instantiate has been resolved |
3239 // This is done before loading instanceKlass to be consistent with the order | |
3240 // how Constant Pool is updated (see constantPoolOopDesc::klass_at_put) | |
3239 __ add(G3_scratch, typeArrayOopDesc::header_size(T_BYTE) * wordSize, G3_scratch); | 3241 __ add(G3_scratch, typeArrayOopDesc::header_size(T_BYTE) * wordSize, G3_scratch); |
3240 __ ldub(G3_scratch, Roffset, G3_scratch); | 3242 __ ldub(G3_scratch, Roffset, G3_scratch); |
3241 __ cmp(G3_scratch, JVM_CONSTANT_Class); | 3243 __ cmp(G3_scratch, JVM_CONSTANT_Class); |
3242 __ br(Assembler::notEqual, false, Assembler::pn, slow_case); | 3244 __ br(Assembler::notEqual, false, Assembler::pn, slow_case); |
3243 __ delayed()->sll(Roffset, LogBytesPerWord, Roffset); | 3245 __ delayed()->sll(Roffset, LogBytesPerWord, Roffset); |
3244 | 3246 // get instanceKlass |
3245 //__ sll(Roffset, LogBytesPerWord, Roffset); // executed in delay slot | 3247 //__ sll(Roffset, LogBytesPerWord, Roffset); // executed in delay slot |
3246 __ add(Roffset, sizeof(constantPoolOopDesc), Roffset); | 3248 __ add(Roffset, sizeof(constantPoolOopDesc), Roffset); |
3247 __ ld_ptr(Rscratch, Roffset, RinstanceKlass); | 3249 __ ld_ptr(Rscratch, Roffset, RinstanceKlass); |
3248 | 3250 |
3249 // make sure klass is fully initialized: | 3251 // make sure klass is fully initialized: |