[aarch64-port-dev ] jcstress varhandles.DekkerTest fails on aarch64
Zhongwei Yao
zhongwei.yao at linaro.org
Fri Mar 2 11:06:08 UTC 2018
Hi, all,
I find this failure on aarch64 and but have not found the root cause
yet. Because it may have an impact on nearby jdk10 release, I raised a
bug first: https://bugs.openjdk.java.net/browse/JDK-8198950
And my current finding is:
- this only fails with c2, c1 and interpreter are OK.
- the actor1 function in
https://bugs.openjdk.java.net/secure/attachment/75427/DekkerVarTest.java
c2 generated code is different under the good build (jdk10-b20) and
bad build (master):
good:
040 + add R10, R2, #12 # ptr
044 stlrw R12, [R10] # int ! Field: volatile DekkerVarTest$TestData.a
048 + membar_volatile (elided)
048
048
048 + add R10, R2, #16 # ptr
04c ldarw R0, [R10] # int ! Field: volatile DekkerVarTest$TestData.b
050 + membar_acquire (elided) //my comment: it generates "ldar" finally.
050
050 # pop frame 48
bad:
038 B2: # N57 <- B1 Freq: 0.999999
038 + membar_release (elided)
038 + mov R12, #1 # int
03c
03c + add R10, R2, #12 # ptr
040 stlrw R12, [R10] # int ! Field: volatile DekkerVarTest$TestData.a
044 + membar_volatile (elided)
044
044
044 + ldrw R0, [R2, #16] # int ! Field: volatile DekkerVarTest$TestData.b
048 + membar_acquire //my comment: it generates "dmb ishld" finally.
04c
04c + # pop frame 48
--
Best regards,
Zhongwei
More information about the aarch64-port-dev
mailing list