src/hotspot/cpu/sparc/templateInterpreterGenerator_sparc.cpp
changeset 49816 a3e79f97e86b
parent 49748 6a880e576856
child 50094 2f79462aab9b
equal deleted inserted replaced
49815:76e3bcb9bee1 49816:a3e79f97e86b
   500     __ btst(JVM_ACC_STATIC, O0);
   500     __ btst(JVM_ACC_STATIC, O0);
   501     __ br( Assembler::zero, true, Assembler::pt, done);
   501     __ br( Assembler::zero, true, Assembler::pt, done);
   502     __ delayed()->ld_ptr(Llocals, Interpreter::local_offset_in_bytes(0), O0); // get receiver for not-static case
   502     __ delayed()->ld_ptr(Llocals, Interpreter::local_offset_in_bytes(0), O0); // get receiver for not-static case
   503 
   503 
   504     // lock the mirror, not the Klass*
   504     // lock the mirror, not the Klass*
   505     __ load_mirror(O0, Lmethod);
   505     __ load_mirror(O0, Lmethod, Lscratch);
   506 
   506 
   507 #ifdef ASSERT
   507 #ifdef ASSERT
   508     __ tst(O0);
   508     __ tst(O0);
   509     __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
   509     __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
   510 #endif // ASSERT
   510 #endif // ASSERT
   808     __ add(Lbcp, in_bytes(ConstMethod::codes_offset()), Lbcp);
   808     __ add(Lbcp, in_bytes(ConstMethod::codes_offset()), Lbcp);
   809   }
   809   }
   810   __ mov( G5_method, Lmethod);                 // set Lmethod
   810   __ mov( G5_method, Lmethod);                 // set Lmethod
   811   // Get mirror and store it in the frame as GC root for this Method*
   811   // Get mirror and store it in the frame as GC root for this Method*
   812   Register mirror = LcpoolCache;
   812   Register mirror = LcpoolCache;
   813   __ load_mirror(mirror, Lmethod);
   813   __ load_mirror(mirror, Lmethod, Lscratch);
   814   __ st_ptr(mirror, FP, (frame::interpreter_frame_mirror_offset * wordSize) + STACK_BIAS);
   814   __ st_ptr(mirror, FP, (frame::interpreter_frame_mirror_offset * wordSize) + STACK_BIAS);
   815   __ get_constant_pool_cache(LcpoolCache);     // set LcpoolCache
   815   __ get_constant_pool_cache(LcpoolCache);     // set LcpoolCache
   816   __ sub(FP, rounded_vm_local_words * BytesPerWord, Lmonitors ); // set Lmonitors
   816   __ sub(FP, rounded_vm_local_words * BytesPerWord, Lmonitors ); // set Lmonitors
   817   __ add(Lmonitors, STACK_BIAS, Lmonitors);    // Account for 64 bit stack bias
   817   __ add(Lmonitors, STACK_BIAS, Lmonitors);    // Account for 64 bit stack bias
   818   __ sub(Lmonitors, BytesPerWord, Lesp);       // set Lesp
   818   __ sub(Lmonitors, BytesPerWord, Lesp);       // set Lesp
  1278     __ btst(JVM_ACC_STATIC, O0);
  1278     __ btst(JVM_ACC_STATIC, O0);
  1279     __ br( Assembler::zero, false, Assembler::pt, not_static);
  1279     __ br( Assembler::zero, false, Assembler::pt, not_static);
  1280     // get native function entry point(O0 is a good temp until the very end)
  1280     // get native function entry point(O0 is a good temp until the very end)
  1281     __ delayed()->ld_ptr(Lmethod, in_bytes(Method::native_function_offset()), O0);
  1281     __ delayed()->ld_ptr(Lmethod, in_bytes(Method::native_function_offset()), O0);
  1282     // for static methods insert the mirror argument
  1282     // for static methods insert the mirror argument
  1283     __ load_mirror(O1, Lmethod);
  1283     __ load_mirror(O1, Lmethod, G3_scratch);
  1284 #ifdef ASSERT
  1284 #ifdef ASSERT
  1285     if (!PrintSignatureHandlers)  // do not dirty the output with this
  1285     if (!PrintSignatureHandlers)  // do not dirty the output with this
  1286     { Label L;
  1286     { Label L;
  1287       __ br_notnull_short(O1, Assembler::pt, L);
  1287       __ br_notnull_short(O1, Assembler::pt, L);
  1288       __ stop("mirror is missing");
  1288       __ stop("mirror is missing");