hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
changeset 10008 d84de97ad847
parent 9333 36b8f9661154
child 10252 0981ce1c3eef
equal deleted inserted replaced
10007:43d4a6542551 10008:d84de97ad847
   264   __ get_2_byte_integer_at_bcp(1, G3_scratch, Otos_i, InterpreterMacroAssembler::Signed);
   264   __ get_2_byte_integer_at_bcp(1, G3_scratch, Otos_i, InterpreterMacroAssembler::Signed);
   265 }
   265 }
   266 
   266 
   267 void TemplateTable::ldc(bool wide) {
   267 void TemplateTable::ldc(bool wide) {
   268   transition(vtos, vtos);
   268   transition(vtos, vtos);
   269   Label call_ldc, notInt, notString, notClass, exit;
   269   Label call_ldc, notInt, isString, notString, notClass, exit;
   270 
   270 
   271   if (wide) {
   271   if (wide) {
   272     __ get_2_byte_integer_at_bcp(1, G3_scratch, O1, InterpreterMacroAssembler::Unsigned);
   272     __ get_2_byte_integer_at_bcp(1, G3_scratch, O1, InterpreterMacroAssembler::Unsigned);
   273   } else {
   273   } else {
   274     __ ldub(Lbcp, 1, O1);
   274     __ ldub(Lbcp, 1, O1);
   315   __ ba(false, exit);
   315   __ ba(false, exit);
   316   __ delayed()->nop();
   316   __ delayed()->nop();
   317 
   317 
   318   __ bind(notInt);
   318   __ bind(notInt);
   319  // __ cmp(O2, JVM_CONSTANT_String);
   319  // __ cmp(O2, JVM_CONSTANT_String);
       
   320   __ brx(Assembler::equal, true, Assembler::pt, isString);
       
   321   __ delayed()->cmp(O2, JVM_CONSTANT_Object);
   320   __ brx(Assembler::notEqual, true, Assembler::pt, notString);
   322   __ brx(Assembler::notEqual, true, Assembler::pt, notString);
   321   __ delayed()->ldf(FloatRegisterImpl::S, O0, O1, Ftos_f);
   323   __ delayed()->ldf(FloatRegisterImpl::S, O0, O1, Ftos_f);
       
   324   __ bind(isString);
   322   __ ld_ptr(O0, O1, Otos_i);
   325   __ ld_ptr(O0, O1, Otos_i);
   323   __ verify_oop(Otos_i);
   326   __ verify_oop(Otos_i);
   324   __ push(atos);
   327   __ push(atos);
   325   __ ba(false, exit);
   328   __ ba(false, exit);
   326   __ delayed()->nop();
   329   __ delayed()->nop();