[aarch64-port-dev ] RFR: JDK8u-only: Fix MacroAssembler::mov() over-strict assert

Roman Kennke rkennke at redhat.com
Wed Dec 6 14:47:07 UTC 2017


Am 06.12.2017 um 14:23 schrieb Andrew Haley:
> On 06/12/17 13:19, Roman Kennke wrote:
>> Am 06.12.2017 um 14:16 schrieb Andrew Haley:
>>> On 06/12/17 12:46, Roman Kennke wrote:
>>>> Am 05.12.2017 um 15:00 schrieb Andrew Dinn:
>>>>> Hi Roman,
>>>>>
>>>>> On 05/12/17 12:31, Roman Kennke wrote:
>>>>> <snip>
>>>>>> An alternative could be to keep the assert in place, but use a better
>>>>>> dead value, e.g. badHeapOop from globalDefinitions.hpp . In this case I
>>>>>> would bring 9 and 10 in sync too.
>>>>>>
>>>>>> What do you think?
>>>>> I think it is a good idea to keep the assert. So, badheapOop it is . . .
>>>>
>>>> Ok. That makes the fix simpler:
>>>> http://cr.openjdk.java.net/~rkennke/aarch64-jdk8u-movoops/webrev.01/
>>>>
>>>> Ok? I'd push it into aarch64-port/jdk8u and let
>>>> aarch64-port/jdk8u-shenandoah pick it up through regular merge-flow.
>>>>
>>>> Do you think it's worth to also put it upstream? We don't have this
>>>> problem there because the assert is not present in upstream. I'd have to
>>>> put back both the assert and the badHeapOop change. ?
>>>
>>> Please don't.  I tidied this stuff up for 9, so it shouldn't be a
>>> problem there.
>>>
>>
>> It is not a problem in jdk9 and jdk10.
>>
>> So... I'll push it to aarch64-port/jdk8u only, is that ok?
> 
> The patch is fine, but I can see no bug report.
> 

I created a bug report:
https://bugs.openjdk.java.net/browse/JDK-8193133

One possible fix is to remove the assert and change the code to what 
make it exactly the same as jdk9 and 10:

http://cr.openjdk.java.net/~rkennke/aarch64-jdk8u-movoops/webrev.00/


The other way to fix it is to use a truly impossible heap value instead 
of 0xDEADDEAD and keep the assert:

http://cr.openjdk.java.net/~rkennke/aarch64-jdk8u-movoops/webrev.01/

Let me know which fix you prefer.

Thanks,
Roman


More information about the aarch64-port-dev mailing list