From e3790cb78ccb7d5ee45823ff3354b4926f405ced Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Fri, 18 Oct 2024 19:24:21 +0200 Subject: [PATCH] Simpler AArch64 code --- src/hotspot/cpu/aarch64/aarch64.ad | 4 ++-- src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp | 4 ++-- src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp | 13 +++++-------- src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp | 4 ++-- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/hotspot/cpu/aarch64/aarch64.ad b/src/hotspot/cpu/aarch64/aarch64.ad index aae15e7f08966..6acd1653afca2 100644 --- a/src/hotspot/cpu/aarch64/aarch64.ad +++ b/src/hotspot/cpu/aarch64/aarch64.ad @@ -16030,8 +16030,8 @@ instruct safePoint(rFlagsReg cr) "ldrw zr, [rscratch1]\t# Safepoint: poll for GC" %} ins_encode %{ - __ get_polling_page(rscratch1, relocInfo::poll_type); - __ read_polling_page(rscratch1, relocInfo::poll_type); + __ get_polling_page(rscratch1); + __ read_polling_page(rscratch1); %} ins_pipe(pipe_serial); // ins_pipe(iload_reg_mem); %} diff --git a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp index 1385366d8793b..8472319bb008d 100644 --- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp @@ -490,10 +490,10 @@ void LIR_Assembler::return_op(LIR_Opr result, C1SafepointPollStub* code_stub) { int LIR_Assembler::safepoint_poll(LIR_Opr tmp, CodeEmitInfo* info) { guarantee(info != nullptr, "Shouldn't be null"); - __ get_polling_page(rscratch1, relocInfo::poll_type); + __ get_polling_page(rscratch1); add_debug_info_for_branch(info); // This isn't just debug info: // it's the oop map - __ read_polling_page(rscratch1, relocInfo::poll_type); + __ read_polling_page(rscratch1); return __ offset(); } diff --git a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp index 9835fb5aca159..4b8c5d49b3564 100644 --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp @@ -5386,22 +5386,19 @@ void MacroAssembler::bang_stack_size(Register size, Register tmp) { } // Move the address of the polling page into dest. -void MacroAssembler::get_polling_page(Register dest, relocInfo::relocType rtype) { +void MacroAssembler::get_polling_page(Register dest) { ldr(dest, Address(rthread, JavaThread::polling_page_offset())); } // Read the polling page. The address of the polling page must -// already be in r. -address MacroAssembler::read_polling_page(Register r, relocInfo::relocType rtype) { - address mark; +// already be in addr. +void MacroAssembler::read_polling_page(Register addr) { { InstructionMark im(this); - code_section()->relocate(inst_mark(), rtype); - ldrw(zr, Address(r, 0)); - mark = inst_mark(); + code_section()->relocate(inst_mark(), relocInfo::poll_type); + ldrw(zr, Address(addr, 0)); } verify_cross_modify_fence_not_required(); - return mark; } void MacroAssembler::adrp(Register reg1, const Address &dest, uint64_t &byte_offset) { diff --git a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp index e49f0c49ef66f..c70aefcbc9eef 100644 --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp @@ -1425,8 +1425,8 @@ class MacroAssembler: public Assembler { } } - address read_polling_page(Register r, relocInfo::relocType rtype); - void get_polling_page(Register dest, relocInfo::relocType rtype); + void read_polling_page(Register addr); + void get_polling_page(Register dest); // CRC32 code for java.util.zip.CRC32::updateBytes() intrinsic. void update_byte_crc32(Register crc, Register val, Register table);