src/cpu/x86/vm/macroAssembler_x86.cpp

changeset 8877
f04097176542
parent 8572
e828a0e2a4bc
child 8997
f8a45a60bc6b
     1.1 --- a/src/cpu/x86/vm/macroAssembler_x86.cpp	Mon Jun 19 22:49:52 2017 +0000
     1.2 +++ b/src/cpu/x86/vm/macroAssembler_x86.cpp	Mon Jun 26 02:04:40 2017 -0700
     1.3 @@ -748,8 +748,7 @@
     1.4    }
     1.5  }
     1.6  
     1.7 -void MacroAssembler::reset_last_Java_frame(bool clear_fp,
     1.8 -                                           bool clear_pc) {
     1.9 +void MacroAssembler::reset_last_Java_frame(bool clear_fp) {
    1.10    // we must set sp to zero to clear frame
    1.11    movptr(Address(r15_thread, JavaThread::last_Java_sp_offset()), NULL_WORD);
    1.12    // must clear fp, so that compiled frames are not confused; it is
    1.13 @@ -758,9 +757,8 @@
    1.14      movptr(Address(r15_thread, JavaThread::last_Java_fp_offset()), NULL_WORD);
    1.15    }
    1.16  
    1.17 -  if (clear_pc) {
    1.18 -    movptr(Address(r15_thread, JavaThread::last_Java_pc_offset()), NULL_WORD);
    1.19 -  }
    1.20 +  // Always clear the pc because it could have been set by make_walkable()
    1.21 +  movptr(Address(r15_thread, JavaThread::last_Java_pc_offset()), NULL_WORD);
    1.22  }
    1.23  
    1.24  void MacroAssembler::set_last_Java_frame(Register last_java_sp,
    1.25 @@ -2561,7 +2559,7 @@
    1.26    }
    1.27    // reset last Java frame
    1.28    // Only interpreter should have to clear fp
    1.29 -  reset_last_Java_frame(java_thread, true, false);
    1.30 +  reset_last_Java_frame(java_thread, true);
    1.31  
    1.32  #ifndef CC_INTERP
    1.33     // C++ interp handles this in the interpreter
    1.34 @@ -3808,7 +3806,7 @@
    1.35    pusha();
    1.36  }
    1.37  
    1.38 -void MacroAssembler::reset_last_Java_frame(Register java_thread, bool clear_fp, bool clear_pc) {
    1.39 +void MacroAssembler::reset_last_Java_frame(Register java_thread, bool clear_fp) {
    1.40    // determine java_thread register
    1.41    if (!java_thread->is_valid()) {
    1.42      java_thread = rdi;
    1.43 @@ -3820,8 +3818,8 @@
    1.44      movptr(Address(java_thread, JavaThread::last_Java_fp_offset()), NULL_WORD);
    1.45    }
    1.46  
    1.47 -  if (clear_pc)
    1.48 -    movptr(Address(java_thread, JavaThread::last_Java_pc_offset()), NULL_WORD);
    1.49 +  // Always clear the pc because it could have been set by make_walkable()
    1.50 +  movptr(Address(java_thread, JavaThread::last_Java_pc_offset()), NULL_WORD);
    1.51  
    1.52  }
    1.53  

mercurial