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: