mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 14:24:46 +02:00
6787106: Hotspot 32 bit build fails on platforms having different definitions for intptr_t & int32_t
Avoid casting between int32_t and intptr_t specifically for MasmAssembler::movptr in 32 bit platforms. Reviewed-by: jrose, kvn
This commit is contained in:
parent
d80f5c0265
commit
1362b9fd1d
14 changed files with 61 additions and 57 deletions
|
@ -5212,15 +5212,15 @@ void MacroAssembler::pushptr(AddressLiteral src) {
|
|||
void MacroAssembler::reset_last_Java_frame(bool clear_fp,
|
||||
bool clear_pc) {
|
||||
// we must set sp to zero to clear frame
|
||||
movptr(Address(r15_thread, JavaThread::last_Java_sp_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(r15_thread, JavaThread::last_Java_sp_offset()), NULL_WORD);
|
||||
// must clear fp, so that compiled frames are not confused; it is
|
||||
// possible that we need it only for debugging
|
||||
if (clear_fp) {
|
||||
movptr(Address(r15_thread, JavaThread::last_Java_fp_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(r15_thread, JavaThread::last_Java_fp_offset()), NULL_WORD);
|
||||
}
|
||||
|
||||
if (clear_pc) {
|
||||
movptr(Address(r15_thread, JavaThread::last_Java_pc_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(r15_thread, JavaThread::last_Java_pc_offset()), NULL_WORD);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5670,7 +5670,7 @@ void MacroAssembler::call_VM_base(Register oop_result,
|
|||
// get oop result if there is one and reset the value in the thread
|
||||
if (oop_result->is_valid()) {
|
||||
movptr(oop_result, Address(java_thread, JavaThread::vm_result_offset()));
|
||||
movptr(Address(java_thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(java_thread, JavaThread::vm_result_offset()), NULL_WORD);
|
||||
verify_oop(oop_result, "broken oop in call_VM_base");
|
||||
}
|
||||
}
|
||||
|
@ -6426,13 +6426,13 @@ void MacroAssembler::reset_last_Java_frame(Register java_thread, bool clear_fp,
|
|||
get_thread(java_thread);
|
||||
}
|
||||
// we must set sp to zero to clear frame
|
||||
movptr(Address(java_thread, JavaThread::last_Java_sp_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(java_thread, JavaThread::last_Java_sp_offset()), NULL_WORD);
|
||||
if (clear_fp) {
|
||||
movptr(Address(java_thread, JavaThread::last_Java_fp_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(java_thread, JavaThread::last_Java_fp_offset()), NULL_WORD);
|
||||
}
|
||||
|
||||
if (clear_pc)
|
||||
movptr(Address(java_thread, JavaThread::last_Java_pc_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(java_thread, JavaThread::last_Java_pc_offset()), NULL_WORD);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -779,7 +779,7 @@ void LIR_Assembler::const2mem(LIR_Opr src, LIR_Opr dest, BasicType type, CodeEmi
|
|||
case T_OBJECT: // fall through
|
||||
case T_ARRAY:
|
||||
if (c->as_jobject() == NULL) {
|
||||
__ movptr(as_Address(addr), (int32_t)NULL_WORD);
|
||||
__ movptr(as_Address(addr), NULL_WORD);
|
||||
} else {
|
||||
if (is_literal_address(addr)) {
|
||||
ShouldNotReachHere();
|
||||
|
|
|
@ -78,10 +78,10 @@ int StubAssembler::call_RT(Register oop_result1, Register oop_result2, address e
|
|||
movptr(rax, Address(thread, Thread::pending_exception_offset()));
|
||||
// make sure that the vm_results are cleared
|
||||
if (oop_result1->is_valid()) {
|
||||
movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
|
||||
}
|
||||
if (oop_result2->is_valid()) {
|
||||
movptr(Address(thread, JavaThread::vm_result_2_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD);
|
||||
}
|
||||
if (frame_size() == no_frame_size) {
|
||||
leave();
|
||||
|
@ -96,12 +96,12 @@ int StubAssembler::call_RT(Register oop_result1, Register oop_result2, address e
|
|||
// get oop results if there are any and reset the values in the thread
|
||||
if (oop_result1->is_valid()) {
|
||||
movptr(oop_result1, Address(thread, JavaThread::vm_result_offset()));
|
||||
movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
|
||||
verify_oop(oop_result1);
|
||||
}
|
||||
if (oop_result2->is_valid()) {
|
||||
movptr(oop_result2, Address(thread, JavaThread::vm_result_2_offset()));
|
||||
movptr(Address(thread, JavaThread::vm_result_2_offset()), (int32_t)NULL_WORD);
|
||||
movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD);
|
||||
verify_oop(oop_result2);
|
||||
}
|
||||
return call_offset;
|
||||
|
@ -728,8 +728,8 @@ void Runtime1::generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_map
|
|||
|
||||
// clear exception fields in JavaThread because they are no longer needed
|
||||
// (fields must be cleared because they are processed by GC otherwise)
|
||||
__ movptr(Address(thread, JavaThread::exception_oop_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::exception_pc_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::exception_oop_offset()), NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::exception_pc_offset()), NULL_WORD);
|
||||
|
||||
// pop the stub frame off
|
||||
__ leave();
|
||||
|
@ -878,7 +878,7 @@ OopMapSet* Runtime1::generate_patching(StubAssembler* sasm, address target) {
|
|||
|
||||
// load and clear pending exception
|
||||
__ movptr(rax, Address(thread, Thread::pending_exception_offset()));
|
||||
__ movptr(Address(thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD);
|
||||
|
||||
// check that there is really a valid exception
|
||||
__ verify_not_null_oop(rax);
|
||||
|
@ -971,14 +971,14 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
|||
// load pending exception oop into rax,
|
||||
__ movptr(exception_oop, Address(thread, Thread::pending_exception_offset()));
|
||||
// clear pending exception
|
||||
__ movptr(Address(thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, Thread::pending_exception_offset()), NULL_WORD);
|
||||
|
||||
// load issuing PC (the return address for this stub) into rdx
|
||||
__ movptr(exception_pc, Address(rbp, 1*BytesPerWord));
|
||||
|
||||
// make sure that the vm_results are cleared (may be unnecessary)
|
||||
__ movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::vm_result_2_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::vm_result_2_offset()), NULL_WORD);
|
||||
|
||||
// verify that that there is really a valid exception in rax,
|
||||
__ verify_not_null_oop(exception_oop);
|
||||
|
|
|
@ -133,7 +133,7 @@ void InterpreterMacroAssembler::load_earlyret_value(TosState state) {
|
|||
+ in_ByteSize(wordSize));
|
||||
switch (state) {
|
||||
case atos: movptr(rax, oop_addr);
|
||||
movptr(oop_addr, (int32_t)NULL_WORD);
|
||||
movptr(oop_addr, NULL_WORD);
|
||||
verify_oop(rax, state); break;
|
||||
case ltos:
|
||||
movl(rdx, val_addr1); // fall through
|
||||
|
@ -148,7 +148,7 @@ void InterpreterMacroAssembler::load_earlyret_value(TosState state) {
|
|||
}
|
||||
// Clean up tos value in the thread object
|
||||
movl(tos_addr, (int32_t) ilgl);
|
||||
movptr(val_addr, (int32_t)NULL_WORD);
|
||||
movptr(val_addr, NULL_WORD);
|
||||
NOT_LP64(movl(val_addr1, (int32_t)NULL_WORD));
|
||||
}
|
||||
|
||||
|
@ -944,7 +944,7 @@ void InterpreterMacroAssembler::unlock_object(Register lock_reg) {
|
|||
movptr(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset_in_bytes ()));
|
||||
|
||||
// Free entry
|
||||
movptr(Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()), (int32_t)NULL_WORD);
|
||||
movptr(Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()), NULL_WORD);
|
||||
|
||||
if (UseBiasedLocking) {
|
||||
biased_locking_exit(obj_reg, header_reg, done);
|
||||
|
|
|
@ -120,7 +120,7 @@ class InterpreterMacroAssembler: public MacroAssembler {
|
|||
void empty_expression_stack() {
|
||||
movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize));
|
||||
// NULL last_sp until next java call
|
||||
movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
|
||||
movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
}
|
||||
|
||||
// Tagged stack helpers for swap and dup
|
||||
|
|
|
@ -54,7 +54,7 @@ void InterpreterRuntime::SignatureHandlerGenerator::box(int from_offset, int to_
|
|||
__ cmpptr(Address(from(), Interpreter::local_offset_in_bytes(from_offset)), (int32_t)NULL_WORD); // do not use temp() to avoid AGI
|
||||
Label L;
|
||||
__ jcc(Assembler::notZero, L);
|
||||
__ movptr(temp(), ((int32_t)NULL_WORD));
|
||||
__ movptr(temp(), NULL_WORD);
|
||||
__ bind(L);
|
||||
__ movptr(Address(to(), to_offset * wordSize), temp());
|
||||
}
|
||||
|
|
|
@ -129,11 +129,11 @@ void OptoRuntime::generate_exception_blob() {
|
|||
// Get the exception pc in case we are deoptimized
|
||||
__ movptr(rdx, Address(rcx, JavaThread::exception_pc_offset()));
|
||||
#ifdef ASSERT
|
||||
__ movptr(Address(rcx, JavaThread::exception_handler_pc_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_pc_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_handler_pc_offset()), NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_pc_offset()), NULL_WORD);
|
||||
#endif
|
||||
// Clear the exception oop so GC no longer processes it as a root.
|
||||
__ movptr(Address(rcx, JavaThread::exception_oop_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_oop_offset()), NULL_WORD);
|
||||
|
||||
__ pop(rcx);
|
||||
|
||||
|
|
|
@ -1793,7 +1793,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
|
|||
// reset handle block
|
||||
__ movptr(rcx, Address(thread, JavaThread::active_handles_offset()));
|
||||
|
||||
__ movptr(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD);
|
||||
|
||||
// Any exception pending?
|
||||
__ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD);
|
||||
|
@ -1865,7 +1865,7 @@ nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
|
|||
// Save pending exception around call to VM (which contains an EXCEPTION_MARK)
|
||||
|
||||
__ pushptr(Address(thread, in_bytes(Thread::pending_exception_offset())));
|
||||
__ movptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, in_bytes(Thread::pending_exception_offset())), NULL_WORD);
|
||||
|
||||
|
||||
// should be a peal
|
||||
|
@ -2431,7 +2431,7 @@ void SharedRuntime::generate_deopt_blob() {
|
|||
__ get_thread(rdi);
|
||||
__ movptr(rdx, Address(rdi, JavaThread::exception_pc_offset()));
|
||||
__ movptr(Address(rbp, wordSize), rdx);
|
||||
__ movptr(Address(rdi, JavaThread::exception_pc_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rdi, JavaThread::exception_pc_offset()), NULL_WORD);
|
||||
|
||||
#ifdef ASSERT
|
||||
// verify that there is really an exception oop in JavaThread
|
||||
|
@ -2489,8 +2489,8 @@ void SharedRuntime::generate_deopt_blob() {
|
|||
__ jcc(Assembler::notEqual, noException);
|
||||
__ movptr(rax, Address(rcx, JavaThread::exception_oop_offset()));
|
||||
__ movptr(rdx, Address(rcx, JavaThread::exception_pc_offset()));
|
||||
__ movptr(Address(rcx, JavaThread::exception_oop_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_pc_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_oop_offset()), NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::exception_pc_offset()), NULL_WORD);
|
||||
|
||||
__ verify_oop(rax);
|
||||
|
||||
|
@ -2582,7 +2582,7 @@ void SharedRuntime::generate_deopt_blob() {
|
|||
rbx); // Make it walkable
|
||||
#else /* CC_INTERP */
|
||||
// This value is corrected by layout_activation_impl
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD );
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_sender_sp_offset * wordSize), rbx); // Make it walkable
|
||||
#endif /* CC_INTERP */
|
||||
__ movptr(sp_temp, rsp); // pass to next frame
|
||||
|
@ -2802,7 +2802,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
|
|||
rbx); // Make it walkable
|
||||
#else /* CC_INTERP */
|
||||
// This value is corrected by layout_activation_impl
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD );
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD );
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_sender_sp_offset * wordSize), rbx); // Make it walkable
|
||||
#endif /* CC_INTERP */
|
||||
__ movptr(sp_temp, rsp); // pass to next frame
|
||||
|
@ -3020,7 +3020,7 @@ static RuntimeStub* generate_resolve_blob(address destination, const char* name)
|
|||
// exception pending => remove activation and forward to exception handler
|
||||
|
||||
__ get_thread(thread);
|
||||
__ movptr(Address(thread, JavaThread::vm_result_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(thread, JavaThread::vm_result_offset()), NULL_WORD);
|
||||
__ movptr(rax, Address(thread, Thread::pending_exception_offset()));
|
||||
__ jump(RuntimeAddress(StubRoutines::forward_exception_entry()));
|
||||
|
||||
|
|
|
@ -472,7 +472,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||
// setup rax & rdx, remove return address & clear pending exception
|
||||
__ pop(rdx);
|
||||
__ movptr(rax, Address(r15_thread, Thread::pending_exception_offset()));
|
||||
__ movptr(Address(r15_thread, Thread::pending_exception_offset()), (int)NULL_WORD);
|
||||
__ movptr(Address(r15_thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD);
|
||||
|
||||
#ifdef ASSERT
|
||||
// make sure exception is set
|
||||
|
@ -954,9 +954,9 @@ class StubGenerator: public StubCodeGenerator {
|
|||
__ jcc(Assembler::zero, exit); // if obj is NULL it is OK
|
||||
// Check if the oop is in the right area of memory
|
||||
__ movptr(c_rarg2, rax);
|
||||
__ movptr(c_rarg3, (int64_t) Universe::verify_oop_mask());
|
||||
__ movptr(c_rarg3, (intptr_t) Universe::verify_oop_mask());
|
||||
__ andptr(c_rarg2, c_rarg3);
|
||||
__ movptr(c_rarg3, (int64_t) Universe::verify_oop_bits());
|
||||
__ movptr(c_rarg3, (intptr_t) Universe::verify_oop_bits());
|
||||
__ cmpptr(c_rarg2, c_rarg3);
|
||||
__ jcc(Assembler::notZero, error);
|
||||
|
||||
|
@ -969,9 +969,9 @@ class StubGenerator: public StubCodeGenerator {
|
|||
__ jcc(Assembler::zero, error); // if klass is NULL it is broken
|
||||
// Check if the klass is in the right area of memory
|
||||
__ mov(c_rarg2, rax);
|
||||
__ movptr(c_rarg3, (int64_t) Universe::verify_klass_mask());
|
||||
__ movptr(c_rarg3, (intptr_t) Universe::verify_klass_mask());
|
||||
__ andptr(c_rarg2, c_rarg3);
|
||||
__ movptr(c_rarg3, (int64_t) Universe::verify_klass_bits());
|
||||
__ movptr(c_rarg3, (intptr_t) Universe::verify_klass_bits());
|
||||
__ cmpptr(c_rarg2, c_rarg3);
|
||||
__ jcc(Assembler::notZero, error);
|
||||
|
||||
|
@ -980,9 +980,9 @@ class StubGenerator: public StubCodeGenerator {
|
|||
__ testptr(rax, rax);
|
||||
__ jcc(Assembler::zero, error); // if klass' klass is NULL it is broken
|
||||
// Check if the klass' klass is in the right area of memory
|
||||
__ movptr(c_rarg3, (int64_t) Universe::verify_klass_mask());
|
||||
__ movptr(c_rarg3, (intptr_t) Universe::verify_klass_mask());
|
||||
__ andptr(rax, c_rarg3);
|
||||
__ movptr(c_rarg3, (int64_t) Universe::verify_klass_bits());
|
||||
__ movptr(c_rarg3, (intptr_t) Universe::verify_klass_bits());
|
||||
__ cmpptr(rax, c_rarg3);
|
||||
__ jcc(Assembler::notZero, error);
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ address TemplateInterpreterGenerator::generate_exception_handler_common(const ch
|
|||
if (message != NULL) {
|
||||
__ lea(rbx, ExternalAddress((address)message));
|
||||
} else {
|
||||
__ movptr(rbx, (int32_t)NULL_WORD);
|
||||
__ movptr(rbx, NULL_WORD);
|
||||
}
|
||||
__ call_VM(rax, CAST_FROM_FN_PTR(address, InterpreterRuntime::create_exception), rax, rbx);
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ address TemplateInterpreterGenerator::generate_exception_handler_common(const ch
|
|||
address TemplateInterpreterGenerator::generate_continuation_for(TosState state) {
|
||||
address entry = __ pc();
|
||||
// NULL last_sp until next java call
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
__ dispatch_next(state);
|
||||
return entry;
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ address TemplateInterpreterGenerator::generate_return_entry_for(TosState state,
|
|||
// Restore stack bottom in case i2c adjusted stack
|
||||
__ movptr(rsp, Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize));
|
||||
// and NULL it as marker that rsp is now tos until next java call
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
|
||||
__ restore_bcp();
|
||||
__ restore_locals();
|
||||
|
@ -211,7 +211,7 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, i
|
|||
|
||||
// The stack is not extended by deopt but we must NULL last_sp as this
|
||||
// entry is like a "return".
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
__ restore_bcp();
|
||||
__ restore_locals();
|
||||
// handle exceptions
|
||||
|
@ -1028,7 +1028,7 @@ address InterpreterGenerator::generate_native_entry(bool synchronized) {
|
|||
|
||||
// reset handle block
|
||||
__ movptr(t, Address(thread, JavaThread::active_handles_offset()));
|
||||
__ movptr(Address(t, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(t, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD);
|
||||
|
||||
// If result was an oop then unbox and save it in the frame
|
||||
{ Label L;
|
||||
|
@ -1488,7 +1488,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
|
|||
|
||||
// Restore sp to interpreter_frame_last_sp even though we are going
|
||||
// to empty the expression stack for the exception processing.
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
// rax,: exception
|
||||
// rdx: return address/pc that threw exception
|
||||
__ restore_bcp(); // rsi points to call/send
|
||||
|
@ -1608,7 +1608,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
|
|||
__ reset_last_Java_frame(rcx, true, true);
|
||||
// Restore the last_sp and null it out
|
||||
__ movptr(rsp, Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize));
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
|
||||
|
||||
__ restore_bcp();
|
||||
__ restore_locals();
|
||||
|
@ -1636,7 +1636,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
|
|||
// restore exception
|
||||
__ get_thread(rcx);
|
||||
__ movptr(rax, Address(rcx, JavaThread::vm_result_offset()));
|
||||
__ movptr(Address(rcx, JavaThread::vm_result_offset()), (int32_t)NULL_WORD);
|
||||
__ movptr(Address(rcx, JavaThread::vm_result_offset()), NULL_WORD);
|
||||
__ verify_oop(rax);
|
||||
|
||||
// Inbetween activations - previous activation type unknown yet
|
||||
|
|
|
@ -137,7 +137,7 @@ static void do_oop_store(InterpreterMacroAssembler* _masm,
|
|||
// Do the actual store
|
||||
// noreg means NULL
|
||||
if (val == noreg) {
|
||||
__ movl(Address(rdx, 0), NULL_WORD);
|
||||
__ movl(Address(rdx, 0), (int32_t)NULL_WORD);
|
||||
// No post barrier for NULL
|
||||
} else {
|
||||
__ movl(Address(rdx, 0), val);
|
||||
|
|
|
@ -3371,7 +3371,7 @@ encode %{
|
|||
masm.movptr(Address(boxReg, 0), 3) ; // results in ST-before-CAS penalty
|
||||
masm.get_thread (scrReg) ;
|
||||
masm.movptr(boxReg, tmpReg); // consider: LEA box, [tmp-2]
|
||||
masm.movptr(tmpReg, 0); // consider: xor vs mov
|
||||
masm.movptr(tmpReg, NULL_WORD); // consider: xor vs mov
|
||||
if (os::is_MP()) { masm.lock(); }
|
||||
masm.cmpxchgptr(scrReg, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2)) ;
|
||||
} else
|
||||
|
@ -3387,7 +3387,7 @@ encode %{
|
|||
|
||||
if ((EmitSync & 64) == 0) {
|
||||
// Optimistic form: consider XORL tmpReg,tmpReg
|
||||
masm.movptr(tmpReg, 0 ) ;
|
||||
masm.movptr(tmpReg, NULL_WORD) ;
|
||||
} else {
|
||||
// Can suffer RTS->RTO upgrades on shared or cold $ lines
|
||||
// Test-And-CAS instead of CAS
|
||||
|
@ -3587,7 +3587,7 @@ encode %{
|
|||
masm.orptr(boxReg, Address (tmpReg, ObjectMonitor::EntryList_offset_in_bytes()-2)) ;
|
||||
masm.orptr(boxReg, Address (tmpReg, ObjectMonitor::cxq_offset_in_bytes()-2)) ;
|
||||
masm.jccb (Assembler::notZero, DONE_LABEL) ;
|
||||
masm.movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), 0) ;
|
||||
masm.movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), NULL_WORD) ;
|
||||
masm.jmpb (DONE_LABEL) ;
|
||||
} else {
|
||||
masm.xorptr(boxReg, Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2)) ;
|
||||
|
@ -3596,7 +3596,7 @@ encode %{
|
|||
masm.movptr(boxReg, Address (tmpReg, ObjectMonitor::EntryList_offset_in_bytes()-2)) ;
|
||||
masm.orptr(boxReg, Address (tmpReg, ObjectMonitor::cxq_offset_in_bytes()-2)) ;
|
||||
masm.jccb (Assembler::notZero, CheckSucc) ;
|
||||
masm.movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), 0) ;
|
||||
masm.movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), NULL_WORD) ;
|
||||
masm.jmpb (DONE_LABEL) ;
|
||||
}
|
||||
|
||||
|
@ -3644,7 +3644,7 @@ encode %{
|
|||
// We currently use (3), although it's likely that switching to (2)
|
||||
// is correct for the future.
|
||||
|
||||
masm.movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), 0) ;
|
||||
masm.movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), NULL_WORD) ;
|
||||
if (os::is_MP()) {
|
||||
if (VM_Version::supports_sse2() && 1 == FenceInstruction) {
|
||||
masm.mfence();
|
||||
|
|
|
@ -116,7 +116,9 @@
|
|||
#ifdef _LP64
|
||||
#define NULL_WORD 0L
|
||||
#else
|
||||
#define NULL_WORD 0
|
||||
// Cast 0 to intptr_t rather than int32_t since they are not the same type
|
||||
// on platforms such as Mac OS X.
|
||||
#define NULL_WORD ((intptr_t)0)
|
||||
#endif
|
||||
#else
|
||||
#define NULL_WORD NULL
|
||||
|
|
|
@ -115,7 +115,9 @@
|
|||
#ifdef _LP64
|
||||
#define NULL_WORD 0L
|
||||
#else
|
||||
#define NULL_WORD 0
|
||||
// Cast 0 to intptr_t rather than int32_t since they are not the same type
|
||||
// on some platforms.
|
||||
#define NULL_WORD ((intptr_t)0)
|
||||
#endif
|
||||
#else
|
||||
#define NULL_WORD NULL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue