RFR: C1 fixes to matrix barriers

Roman Kennke rkennke at redhat.com
Thu Mar 23 20:03:13 UTC 2017

This fixes a bunch of issues with the matrix barriers in c1:

- it needs longConst() for stride, otherwise the register sizes do not
match in the mult
- AArch64 macro assembler can't work with 64bit immediates in some math
ops, I changed it to explicitely load into regs first. X86 moves it to a
reg anyway.
- AAarch64 can't store a constant 1! I #ifdef'd it to load into register

Notice that this doesn't make matrix barriers generally work on aarch64,
we totally lack the assembler/interpreter impl of the matrix barriers on

I also added some partial-gc test invocations to GCOld and GCBasher
(which first showed the above bugs).



More information about the shenandoah-dev mailing list