[aarch64-port-dev ] AArch64: vectorization fails RSA crypto tests

Andrew Haley aph at redhat.com
Mon Jun 15 16:21:10 UTC 2015


java.math.BigInteger::add([I[I)[I gets miscompiled.  There is a

	ldr	q16, [x17,x10,lsl #4]

which should be a

	ldr	q16, [x17,x10]

Andrew.


diff -r 6217fd2c767b src/cpu/aarch64/vm/assembler_aarch64.hpp
--- a/src/cpu/aarch64/vm/assembler_aarch64.hpp  Fri Jun 12 16:09:45 2015 +0100
+++ b/src/cpu/aarch64/vm/assembler_aarch64.hpp  Mon Jun 15 17:16:58 2015 +0100
@@ -491,6 +491,11 @@
         i->rf(_index, 16);
         i->f(_ext.option(), 15, 13);
         unsigned size = i->get(31, 30);
+        if (i->get(26, 26) && i->get(23, 23)) {
+          // SIMD Q Type - Size = 128 bits
+          assert(size == 0, "bad size");
+          size = 0b100;
+        }
         if (size == 0) // It's a byte
           i->f(_ext.shift() >= 0, 12);
         else {


More information about the aarch64-port-dev mailing list