Print this page
rev 1082 : [mq]: indy.compiler.patch

Split Close
Expand all
Collapse all
          --- old/src/cpu/x86/vm/frame_x86.inline.hpp
          +++ new/src/cpu/x86/vm/frame_x86.inline.hpp
↓ open down ↓ 217 lines elided ↑ open up ↑
 218  218  
 219  219  // Method
 220  220  
 221  221  inline methodOop* frame::interpreter_frame_method_addr() const {
 222  222    return (methodOop*)addr_at(interpreter_frame_method_offset);
 223  223  }
 224  224  
 225  225  // top of expression stack
 226  226  inline intptr_t* frame::interpreter_frame_tos_address() const {
 227  227    intptr_t* last_sp = interpreter_frame_last_sp();
 228      -  if (last_sp == NULL ) {
      228 +  if (last_sp == NULL) {
 229  229      return sp();
 230  230    } else {
 231      -    // sp() may have been extended by an adapter
 232      -    assert(last_sp < fp() && last_sp >= sp(), "bad tos");
      231 +    // sp() may have been extended or shrunk by an adapter.  At least
      232 +    // check that we don't fall behind the legal region.
      233 +    assert(last_sp < (intptr_t*) interpreter_frame_monitor_begin(), "bad tos");
 233  234      return last_sp;
 234  235    }
 235  236  }
 236  237  
 237  238  #endif /* CC_INTERP */
 238  239  
 239  240  inline int frame::pd_oop_map_offset_adjustment() const {
 240  241    return 0;
 241  242  }
 242  243  
↓ open down ↓ 51 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX