1.1 --- a/src/cpu/x86/vm/stubGenerator_x86_64.cpp Fri Sep 09 13:47:11 2011 -0700 1.2 +++ b/src/cpu/x86/vm/stubGenerator_x86_64.cpp Sat Sep 10 00:11:04 2011 -0700 1.3 @@ -935,6 +935,8 @@ 1.4 __ pusha(); // push registers 1.5 Address next_pc(rsp, RegisterImpl::number_of_registers * BytesPerWord); 1.6 1.7 + // FIXME: this probably needs alignment logic 1.8 + 1.9 __ subptr(rsp, frame::arg_reg_save_area_bytes); 1.10 BLOCK_COMMENT("call handle_unsafe_access"); 1.11 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, handle_unsafe_access))); 1.12 @@ -2934,7 +2936,6 @@ 1.13 // caller saved registers were assumed volatile in the compiler. 1.14 address generate_throw_exception(const char* name, 1.15 address runtime_entry, 1.16 - bool restore_saved_exception_pc, 1.17 Register arg1 = noreg, 1.18 Register arg2 = noreg) { 1.19 // Information about frame layout at time of blocking runtime call. 1.20 @@ -2962,12 +2963,6 @@ 1.21 // which has the ability to fetch the return PC out of 1.22 // thread-local storage and also sets up last_Java_sp slightly 1.23 // differently than the real call_VM 1.24 - if (restore_saved_exception_pc) { 1.25 - __ movptr(rax, 1.26 - Address(r15_thread, 1.27 - in_bytes(JavaThread::saved_exception_pc_offset()))); 1.28 - __ push(rax); 1.29 - } 1.30 1.31 __ enter(); // required for proper stackwalking of RuntimeStub frame 1.32 1.33 @@ -3068,7 +3063,7 @@ 1.34 StubRoutines::_throw_WrongMethodTypeException_entry = 1.35 generate_throw_exception("WrongMethodTypeException throw_exception", 1.36 CAST_FROM_FN_PTR(address, SharedRuntime::throw_WrongMethodTypeException), 1.37 - false, rax, rcx); 1.38 + rax, rcx); 1.39 } 1.40 1.41 void generate_all() { 1.42 @@ -3081,43 +3076,25 @@ 1.43 generate_throw_exception("AbstractMethodError throw_exception", 1.44 CAST_FROM_FN_PTR(address, 1.45 SharedRuntime:: 1.46 - throw_AbstractMethodError), 1.47 - false); 1.48 + throw_AbstractMethodError)); 1.49 1.50 StubRoutines::_throw_IncompatibleClassChangeError_entry = 1.51 generate_throw_exception("IncompatibleClassChangeError throw_exception", 1.52 CAST_FROM_FN_PTR(address, 1.53 SharedRuntime:: 1.54 - throw_IncompatibleClassChangeError), 1.55 - false); 1.56 - 1.57 - StubRoutines::_throw_ArithmeticException_entry = 1.58 - generate_throw_exception("ArithmeticException throw_exception", 1.59 - CAST_FROM_FN_PTR(address, 1.60 - SharedRuntime:: 1.61 - throw_ArithmeticException), 1.62 - true); 1.63 - 1.64 - StubRoutines::_throw_NullPointerException_entry = 1.65 - generate_throw_exception("NullPointerException throw_exception", 1.66 - CAST_FROM_FN_PTR(address, 1.67 - SharedRuntime:: 1.68 - throw_NullPointerException), 1.69 - true); 1.70 + throw_IncompatibleClassChangeError)); 1.71 1.72 StubRoutines::_throw_NullPointerException_at_call_entry = 1.73 generate_throw_exception("NullPointerException at call throw_exception", 1.74 CAST_FROM_FN_PTR(address, 1.75 SharedRuntime:: 1.76 - throw_NullPointerException_at_call), 1.77 - false); 1.78 + throw_NullPointerException_at_call)); 1.79 1.80 StubRoutines::_throw_StackOverflowError_entry = 1.81 generate_throw_exception("StackOverflowError throw_exception", 1.82 CAST_FROM_FN_PTR(address, 1.83 SharedRuntime:: 1.84 - throw_StackOverflowError), 1.85 - false); 1.86 + throw_StackOverflowError)); 1.87 1.88 // entry points that are platform specific 1.89 StubRoutines::x86::_f2i_fixup = generate_f2i_fixup();