comparison src/cpu/x86/vm/c1_Runtime1_x86.cpp @ 512:db4caa99ef11

6787106: Hotspot 32 bit build fails on platforms having different definitions for intptr_t & int32_t Summary: Avoid casting between int32_t and intptr_t specifically for MasmAssembler::movptr in 32 bit platforms. Reviewed-by: jrose, kvn
author xlu
date Wed, 24 Dec 2008 13:06:09 -0800
parents eb28cf662f56
children dc3ad84615cf
comparison
equal deleted inserted replaced
511:dabd8d202164 512:db4caa99ef11
76 jcc(Assembler::equal, L); 76 jcc(Assembler::equal, L);
77 // exception pending => remove activation and forward to exception handler 77 // exception pending => remove activation and forward to exception handler
78 movptr(rax, Address(thread, Thread::pending_exception_offset())); 78 movptr(rax, Address(thread, Thread::pending_exception_offset()));
79 // make sure that the vm_results are cleared 79 // make sure that the vm_results are cleared
80 if (oop_result1->is_valid()) { 80 if (oop_result1->is_valid()) {
81 movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD); 81 movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
82 } 82 }
83 if (oop_result2->is_valid()) { 83 if (oop_result2->is_valid()) {
84 movptr(Address(thread, JavaThread::vm_result_2_offset()), (int32_t)NULL_WORD); 84 movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD);
85 } 85 }
86 if (frame_size() == no_frame_size) { 86 if (frame_size() == no_frame_size) {
87 leave(); 87 leave();
88 jump(RuntimeAddress(StubRoutines::forward_exception_entry())); 88 jump(RuntimeAddress(StubRoutines::forward_exception_entry()));
89 } else if (_stub_id == Runtime1::forward_exception_id) { 89 } else if (_stub_id == Runtime1::forward_exception_id) {
94 bind(L); 94 bind(L);
95 } 95 }
96 // get oop results if there are any and reset the values in the thread 96 // get oop results if there are any and reset the values in the thread
97 if (oop_result1->is_valid()) { 97 if (oop_result1->is_valid()) {
98 movptr(oop_result1, Address(thread, JavaThread::vm_result_offset())); 98 movptr(oop_result1, Address(thread, JavaThread::vm_result_offset()));
99 movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD); 99 movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
100 verify_oop(oop_result1); 100 verify_oop(oop_result1);
101 } 101 }
102 if (oop_result2->is_valid()) { 102 if (oop_result2->is_valid()) {
103 movptr(oop_result2, Address(thread, JavaThread::vm_result_2_offset())); 103 movptr(oop_result2, Address(thread, JavaThread::vm_result_2_offset()));
104 movptr(Address(thread, JavaThread::vm_result_2_offset()), (int32_t)NULL_WORD); 104 movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD);
105 verify_oop(oop_result2); 105 verify_oop(oop_result2);
106 } 106 }
107 return call_offset; 107 return call_offset;
108 } 108 }
109 109
726 // restore exception oop into rax, (convention for unwind code) 726 // restore exception oop into rax, (convention for unwind code)
727 __ movptr(exception_oop, Address(thread, JavaThread::exception_oop_offset())); 727 __ movptr(exception_oop, Address(thread, JavaThread::exception_oop_offset()));
728 728
729 // clear exception fields in JavaThread because they are no longer needed 729 // clear exception fields in JavaThread because they are no longer needed
730 // (fields must be cleared because they are processed by GC otherwise) 730 // (fields must be cleared because they are processed by GC otherwise)
731 __ movptr(Address(thread, JavaThread::exception_oop_offset()), (int32_t)NULL_WORD); 731 __ movptr(Address(thread, JavaThread::exception_oop_offset()), NULL_WORD);
732 __ movptr(Address(thread, JavaThread::exception_pc_offset()), (int32_t)NULL_WORD); 732 __ movptr(Address(thread, JavaThread::exception_pc_offset()), NULL_WORD);
733 733
734 // pop the stub frame off 734 // pop the stub frame off
735 __ leave(); 735 __ leave();
736 736
737 generate_unwind_exception(sasm); 737 generate_unwind_exception(sasm);
876 // the deopt blob expects exceptions in the special fields of 876 // the deopt blob expects exceptions in the special fields of
877 // JavaThread, so copy and clear pending exception. 877 // JavaThread, so copy and clear pending exception.
878 878
879 // load and clear pending exception 879 // load and clear pending exception
880 __ movptr(rax, Address(thread, Thread::pending_exception_offset())); 880 __ movptr(rax, Address(thread, Thread::pending_exception_offset()));
881 __ movptr(Address(thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD); 881 __ movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD);
882 882
883 // check that there is really a valid exception 883 // check that there is really a valid exception
884 __ verify_not_null_oop(rax); 884 __ verify_not_null_oop(rax);
885 885
886 // load throwing pc: this is the return address of the stub 886 // load throwing pc: this is the return address of the stub
969 const Register exception_pc = rdx; 969 const Register exception_pc = rdx;
970 970
971 // load pending exception oop into rax, 971 // load pending exception oop into rax,
972 __ movptr(exception_oop, Address(thread, Thread::pending_exception_offset())); 972 __ movptr(exception_oop, Address(thread, Thread::pending_exception_offset()));
973 // clear pending exception 973 // clear pending exception
974 __ movptr(Address(thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD); 974 __ movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD);
975 975
976 // load issuing PC (the return address for this stub) into rdx 976 // load issuing PC (the return address for this stub) into rdx
977 __ movptr(exception_pc, Address(rbp, 1*BytesPerWord)); 977 __ movptr(exception_pc, Address(rbp, 1*BytesPerWord));
978 978
979 // make sure that the vm_results are cleared (may be unnecessary) 979 // make sure that the vm_results are cleared (may be unnecessary)
980 __ movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD); 980 __ movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
981 __ movptr(Address(thread, JavaThread::vm_result_2_offset()), (int32_t)NULL_WORD); 981 __ movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD);
982 982
983 // verify that that there is really a valid exception in rax, 983 // verify that that there is really a valid exception in rax,
984 __ verify_not_null_oop(exception_oop); 984 __ verify_not_null_oop(exception_oop);
985 985
986 986