Files
haikuports/dev-lang/openjdk/patches/openjdk16-16.0.2.7.patchset
2023-03-26 18:37:15 +10:00

146 lines
6.9 KiB
Plaintext

From 3597d47444352a5b5d69844c9a8bddbee466f0c6 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 26 Mar 2023 15:35:18 +1000
Subject: Fix build for x86 arch
diff --git a/src/hotspot/cpu/x86/interp_masm_x86.cpp b/src/hotspot/cpu/x86/interp_masm_x86.cpp
index 19c7f49..969f3b8 100644
--- a/src/hotspot/cpu/x86/interp_masm_x86.cpp
+++ b/src/hotspot/cpu/x86/interp_masm_x86.cpp
@@ -1338,7 +1338,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);
diff --git a/src/hotspot/cpu/x86/interp_masm_x86.hpp b/src/hotspot/cpu/x86/interp_masm_x86.hpp
index 288b1bd..0473feb 100644
--- a/src/hotspot/cpu/x86/interp_masm_x86.hpp
+++ b/src/hotspot/cpu/x86/interp_masm_x86.hpp
@@ -182,7 +182,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);
NOT_LP64(empty_FPU_stack());
}
diff --git a/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp b/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
index 5c1056e..856ea80 100644
--- a/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
+++ b/src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp
@@ -1813,7 +1813,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
}
// Load immediate 1 into swap_reg %rax,
- __ movptr(swap_reg, 1);
+ __ movptr(swap_reg, (intptr_t)1);
// Load (object->mark() | 1) into swap_reg %rax,
__ orptr(swap_reg, Address(obj_reg, oopDesc::mark_offset_in_bytes()));
@@ -2044,7 +2044,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
if (!is_critical_native) {
// reset handle block
__ movptr(rcx, Address(thread, JavaThread::active_handles_offset()));
- __ movl(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), NULL_WORD);
+ __ movl(Address(rcx, JNIHandleBlock::top_offset_in_bytes()), (int32_t)NULL_WORD);
// Any exception pending?
__ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD);
diff --git a/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp b/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
index 681db40..5ba79bc 100644
--- a/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
+++ b/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
@@ -2765,7 +2765,7 @@ class StubGenerator: public StubCodeGenerator {
__ jcc(Assembler::equal, L_key256_top);
//key128 begins here
- __ movptr(pos, 0); // init pos before L_multiBlock_loopTop
+ __ movptr(pos, (intptr_t)0); // init pos before L_multiBlock_loopTop
#define CTR_DoFour(opc, src_reg) \
__ opc(xmm_result0, src_reg); \
@@ -2931,11 +2931,11 @@ class StubGenerator: public StubCodeGenerator {
__ ret(0);
__ BIND (L_key192_top);
- __ movptr(pos, 0); // init pos before L_multiBlock_loopTop
+ __ movptr(pos, (intptr_t)0); // init pos before L_multiBlock_loopTop
__ jmp(L_multiBlock_loopTop[1]); //key192
__ BIND (L_key256_top);
- __ movptr(pos, 0); // init pos before L_multiBlock_loopTop
+ __ movptr(pos, (intptr_t)0); // init pos before L_multiBlock_loopTop
__ jmp(L_multiBlock_loopTop[2]); //key192
return start;
diff --git a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
index 2025f41..2067b24 100644
--- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
+++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp
@@ -204,7 +204,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 esp 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();
@@ -252,7 +252,7 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, i
#endif // _LP64
// 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);
__ restore_bcp();
__ restore_locals();
const Register thread = NOT_LP64(rcx) LP64_ONLY(r15_thread);
@@ -1497,7 +1497,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
Interpreter::_rethrow_exception_entry = __ pc();
// 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(); // r13/rsi points to call/send
@@ -1643,7 +1643,7 @@ void TemplateInterpreterGenerator::generate_throw_exception() {
// 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();
diff --git a/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp b/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp
index 105eaf3..b00cf2b 100644
--- a/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp
+++ b/src/hotspot/os_cpu/haiku_x86/os_haiku_x86.cpp
@@ -214,16 +214,6 @@ bool PosixSignals::pd_hotspot_signal_handler(int sig, siginfo_t* info,
return true;
}
-#ifndef AMD64
- // Halt if SI_KERNEL before more crashes get misdiagnosed as Java bugs
- // This can happen in any running code (currently more frequently in
- // interpreter code but has been seen in compiled code)
- if (sig == SIGSEGV && info->si_addr == 0 && info->si_code == SI_KERNEL) {
- fatal("An irrecoverable SI_KERNEL SIGSEGV has occurred due "
- "to unstable signal handling in this distribution.");
- }
-#endif // AMD64
-
// Handle ALL stack overflow variations here
if (sig == SIGSEGV) {
address addr = (address) info->si_addr;
--
2.37.3