RFR: C1 fixes to matrix barriers
Andrew Haley
aph at redhat.com
Fri Mar 24 08:20:37 UTC 2017
On 23/03/17 20:03, Roman Kennke wrote:
> 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
> first.
What is this for?
+#ifdef AARCH64
+ // Aarch64 cannot (yet) move a constant 1 ...
+ LIR_Opr one = new_register(T_INT);
+ __ move(LIR_OprFact::intConst(1), one);
+#else
+ LIR_Opr one = LIR_OprFact::intConst(1);
+#endif
+ __ move(one, matrix_elem_addr);
Surely a register move works everywhere.
Andrew.
More information about the shenandoah-dev
mailing list