[aarch64-port-dev ] RFR: 8131362: aarch64: C2 does not handle large stack offsets
Andrew Haley
aph at redhat.com
Fri Jul 17 09:43:24 UTC 2015
On 17/07/15 10:29, Andrew Haley wrote:
> On 17/07/15 10:12, Edward Nevill wrote:
>> On Fri, 2015-07-17 at 10:01 +0100, Andrew Haley wrote:
>>> On 17/07/15 09:52, Edward Nevill wrote:
>>>>>> Should it be +8 instead of +4? Or these offsets are not in bytes?:
>>>>>>
>>>>>> + unspill(rscratch1, true, src_offset);
>>>>>> + spill(rscratch1, true, dst_offset);
>>>>>> + unspill(rscratch1, true, src_offset+4);
>>>>>> + spill(rscratch1, true, dst_offset+4);
>>>> Ouch! Good catch.
>>>>
>>>> New webrev.
>>>>
>>>> http://cr.openjdk.java.net/~enevill/8131362/webrev.03/
>>>
>>> I'm a bit more concerned that this did not fail in testing. I guess
>>> there were no tests at all for stack-stack spills.
>>
>> Correct. And it would have to be a 128 bit vector stack-stack spill with
>> an offset >= 512. How would you even provoke such a thing.
>
> With a highly-vectorizable test case with a zillion temporaries, I guess.
Thinking some more: I think I'd add some special code to test it all
once, then delete the special code. If that's what it takes, there
isn't much choice.
Andrew.
More information about the aarch64-port-dev
mailing list