mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-17 17:20:07 +02:00
146 lines
6.9 KiB
Plaintext
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
|
|
|