RFR: 8337797: Additional ExternalAddress cleanup

Fei Yang fyang at openjdk.org
Tue Aug 6 03:16:39 UTC 2024


On Mon, 5 Aug 2024 18:11:55 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> While working on [JDK-8337519](https://bugs.openjdk.org/browse/JDK-8337519) I noticed few ExternalAddress cases I missed in [JDK-8337396](https://bugs.openjdk.org/browse/JDK-8337396) changes.
> 
> I also added asserts on x86 to catch using ExternalAddress for jumps and calls instructions and caught few additional cases (Windows and arraycopy cases).
> 
> Tested tier1-5,hs-stress,hs-comp

Hi Vladimir, Could you please apply the following riscv-specific addon change?
This achieves the same purpose but much cleaner.


diff --git a/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp b/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp
index 91e3a707efa..f7d702c6310 100644
--- a/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp
+++ b/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp
@@ -173,12 +173,7 @@ address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) {

   {
     __ enter();
-    RuntimeAddress target(slow_case_addr);
-    __ relocate(target.rspec(), [&] {
-      int32_t offset;
-      __ la(t0, target.target(), offset);
-      __ jalr(t0, offset);
-    });
+    __ rt_call(slow_case_addr);
     __ leave();
     __ ret();
   }

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20470#issuecomment-2270301871


More information about the hotspot-dev mailing list