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
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -5212,15 +5212,15 @@
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 @@
// 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 @@
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);
}
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -779,7 +779,7 @@
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();
--- a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -78,10 +78,10 @@
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 @@
// 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 @@
// 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 @@
// 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 @@
// 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);
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -133,7 +133,7 @@
+ 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 @@
}
// 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 @@
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);
--- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp Wed Dec 24 13:06:09 2008 -0800
@@ -120,7 +120,7 @@
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
--- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -54,7 +54,7 @@
__ 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());
}
--- a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -129,11 +129,11 @@
// 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);
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -1793,7 +1793,7 @@
// 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 @@
// 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 @@
__ 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 @@
__ 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 @@
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 @@
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 @@
// 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()));
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -472,7 +472,7 @@
// 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 @@
__ 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 @@
__ 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 @@
__ 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);
--- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -110,7 +110,7 @@
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_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 @@
// 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 @@
// 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 @@
// 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 @@
// 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 @@
__ 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 @@
// 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
--- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp Wed Dec 24 13:06:09 2008 -0800
@@ -137,7 +137,7 @@
// 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);
--- a/hotspot/src/cpu/x86/vm/x86_32.ad Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/cpu/x86/vm/x86_32.ad Wed Dec 24 13:06:09 2008 -0800
@@ -3371,7 +3371,7 @@
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 @@
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 @@
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 @@
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 @@
// 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();
--- a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp Wed Dec 24 13:06:09 2008 -0800
@@ -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
--- a/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp Tue Dec 23 06:16:53 2008 -0800
+++ b/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp Wed Dec 24 13:06:09 2008 -0800
@@ -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