[OpenMP][AArch64] Fix compile with LLVM trunk.
authorEli Friedman <efriedma@quicinc.com>
Tue, 14 May 2019 21:44:54 +0000 (21:44 +0000)
committerEli Friedman <efriedma@quicinc.com>
Tue, 14 May 2019 21:44:54 +0000 (21:44 +0000)
The code is currently using the ambiguous instruction
"sub sp, sp, w9, lsl #4". The ARM reference manual says this isn't
valid, and it's not clear whether it's supposed to mean uxtw or uxtx.

It doesn't matter which instruction we use here, since the high
bits of the operand are zero anyway, so I arbitrarily choose uxtw, to
preserve the register name.

See https://reviews.llvm.org/D60840 for the LLVM patch.

Differential Revision: https://reviews.llvm.org/D61770

llvm-svn: 360711

openmp/runtime/src/z_Linux_asm.S

index 119786427ee05d11f7b68dc1f6c98059ad32d113..39bf42710c748aa2c4aaae7bb97d2d205fc79ea4 100644 (file)
@@ -1243,7 +1243,7 @@ __tid = 8
 
        orr     w9, wzr, #1
        add     w9, w9, w3, lsr #1
-       sub     sp, sp, w9, lsl #4
+       sub     sp, sp, w9, uxtw #4
        mov     x11, sp
 
        mov     x8, x0