[aarch64-port-dev ] RFR: Add support for G1GC
Andrew Haley
aph at redhat.com
Mon Mar 24 18:33:30 UTC 2014
On 03/24/2014 04:48 PM, Edward Nevill wrote:
> I have made the following changes.
>
> - Use adrp(... cardtable, offset) instead of mov.
>
> In order for this to work I had to add a new relocation to pd_patch_instruction to patch the sequence
>
> adrp Rx, cardtable, offset
> add Ry, Ry, Rx
> ldrb Rz, Address(Ry, offset)
>
> - Save R18 and rework the register usage
>
> I have reworked the register usage in C1 so we do not need to save R0/R1 in the common case and only need to save registers at all around a call to g1_wb_post or g1_wb_pre.
>
> - Utilise the fact that dirty_card_val() == 0
>
> Optimise by using cmpzw and cbz where appropriate in both c1 and template interpreter
>
> assert added to check that dirty_card_val() is in fact 0.
>
> - Merged several instruction pairs to use 1 instruction instead of 2.
>
> Revised patch below.
OK, thanks.
Andrew.
More information about the aarch64-port-dev
mailing list