hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
changeset 360 21d113ecbf6a
parent 1 489c9b5090e2
child 670 ddf3e9583f2f
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
   589   //       and if we don't have a null-pointer exception => check for
   589   //       and if we don't have a null-pointer exception => check for
   590   //       these conditions first and use slow path if necessary.
   590   //       these conditions first and use slow path if necessary.
   591   address entry = __ pc();
   591   address entry = __ pc();
   592   Label slow_path;
   592   Label slow_path;
   593 
   593 
   594   if ( UseFastAccessorMethods) {
   594 
       
   595   // XXX: for compressed oops pointer loading and decoding doesn't fit in
       
   596   // delay slot and damages G1
       
   597   if ( UseFastAccessorMethods && !UseCompressedOops ) {
   595     // Check if we need to reach a safepoint and generate full interpreter
   598     // Check if we need to reach a safepoint and generate full interpreter
   596     // frame if so.
   599     // frame if so.
   597     Address sync_state(G3_scratch, SafepointSynchronize::address_of_state());
   600     Address sync_state(G3_scratch, SafepointSynchronize::address_of_state());
   598     __ load_contents(sync_state, G3_scratch);
   601     __ load_contents(sync_state, G3_scratch);
   599     __ cmp(G3_scratch, SafepointSynchronize::_not_synchronized);
   602     __ cmp(G3_scratch, SafepointSynchronize::_not_synchronized);
   951      add(L7_thread_cache, in_bytes(JavaThread::jni_environment_offset()), O0);
   954      add(L7_thread_cache, in_bytes(JavaThread::jni_environment_offset()), O0);
   952 
   955 
   953   // Back from jni method Lmethod in this frame is DEAD, DEAD, DEAD
   956   // Back from jni method Lmethod in this frame is DEAD, DEAD, DEAD
   954 
   957 
   955   __ restore_thread(L7_thread_cache); // restore G2_thread
   958   __ restore_thread(L7_thread_cache); // restore G2_thread
       
   959   __ reinit_heapbase();
   956 
   960 
   957   // must we block?
   961   // must we block?
   958 
   962 
   959   // Block, if necessary, before resuming in _thread_in_Java state.
   963   // Block, if necessary, before resuming in _thread_in_Java state.
   960   // In order for GC to work, don't clear the last_Java_sp until after blocking.
   964   // In order for GC to work, don't clear the last_Java_sp until after blocking.