[aarch64-port-dev ] [8u] RFR: Revert differences against upstream 8u

Aleksey Shipilev shade at redhat.com
Thu Feb 18 18:30:20 UTC 2021


On 2/18/21 7:23 PM, Andrew Hughes wrote:
> Thanks for doing this. I'm surprised (and rather scared) by how many there
> are. Most seem to be whitespace, thankfully. Do you have any idea how old
> the differences are? I'm wondering if there are issues with our current merge
> process, or whether these date back as long as the Windows one we spoke about
> yesterday.

The overwhelming majority of changes are from Shenandoah dropping read-barriers support and thus 
"reverting" to old code where read barriers used to be. Not everything was reverted to exactly 
upstream state.

There are a few non-whitespace changes left out from this webrev, those would need to be untangled 
separately. This webrev reverts the obvious ones that do not require deep testing.

> One change does stand out:
> 
> diff --git a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
> --- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
> +++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
> @@ -1720,7 +1720,7 @@
>         __ biased_locking_enter(lock_reg, obj_reg, swap_reg, tmp, false, lock_done, &slow_path_lock);
>       }
>   
> -    // Load (object->mark() | 1) into swap_reg r0
> +    // Load (object->mark() | 1) into swap_reg %r0
>       __ ldr(rscratch1, Address(obj_reg, 0));
>       __ orr(swap_reg, rscratch1, 1);
> 
> The removal of the '%' is the more recent change, done by Andrew Haley
> when adding AArch64 Shenandoah support.  Is it not upstream that is
> behind here? That's why I left this when merging 8u292-b01.

Note this is a comment line. Upstream does have "%":
 
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/3d2970e26c36/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp#l1723

I think Andrew just mistyped in the old changeset:

changeset:   8867:af37ee789a9c
user:        aph
date:        Thu May 05 14:14:21 2016 +0000
summary:     AArch64 support for Shenandoah.

diff -r 1ad0df87706c -r af37ee789a9c src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
--- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp      Tue May 03 14:10:12 2016 +0100
+++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp      Thu May 05 14:14:21 2016 +0000
@@ -1821,11 +1821,13 @@
      // Load the oop from the handle
      __ ldr(obj_reg, Address(oop_handle_reg, 0));

+    oopDesc::bs()->interpreter_write_barrier(masm, obj_reg);
+
      if (UseBiasedLocking) {
        __ biased_locking_enter(lock_reg, obj_reg, swap_reg, tmp, false, lock_done, &slow_path_lock);
      }

-    // Load (object->mark() | 1) into swap_reg %r0
+    // Load (object->mark() | 1) into swap_reg r0
      __ ldr(rscratch1, Address(obj_reg, 0));
      __ orr(swap_reg, rscratch1, 1);

@@ -1989,6 +1991,8 @@

      Label done;

+    __ shenandoah_store_check(obj_reg);
+
      if (UseBiasedLocking) {
        __ biased_locking_exit(obj_reg, old_hdr, done);
      }

> Rest looks good.

I am pushing this to aarch64-port/jdk8u-shenandoah, OK?

-- 
Thanks,
-Aleksey



More information about the aarch64-port-dev mailing list