summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2014-04-21 21:45:57 +0000
committerJim Grosbach <grosbach@apple.com>2014-04-21 21:45:57 +0000
commit91c655736e8a48ac4c464a1c95f29d6147370e57 (patch)
tree25151b659c3001b6a08d228e6c1ffa5c21bd8f66 /test
parent8a412da0eaf2b694091471a8420e8d47a84816ac (diff)
downloadllvm-91c655736e8a48ac4c464a1c95f29d6147370e57.tar.gz
llvm-91c655736e8a48ac4c464a1c95f29d6147370e57.tar.bz2
llvm-91c655736e8a48ac4c464a1c95f29d6147370e57.tar.xz
ARM64: Improve diagnostics for malformed reg+reg addressing mode.
Make sure only general purpose registers are valid for offset regs and that 32-bit regs are only valid for sxtw and uxtw extends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206799 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/MC/ARM64/diags.s12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/MC/ARM64/diags.s b/test/MC/ARM64/diags.s
index e82147e6c2..424d9547fe 100644
--- a/test/MC/ARM64/diags.s
+++ b/test/MC/ARM64/diags.s
@@ -74,6 +74,18 @@ foo:
; CHECK-ERRORS: ^
+; Check that register offset addressing modes only accept 32-bit offset
+; registers when using uxtw/sxtw extends. Everything else requires a 64-bit
+; register.
+ str d1, [x3, w3, sxtx #3]
+ ldr s1, [x3, d3, sxtx #2]
+
+; CHECK-ERRORS: 32-bit general purpose offset register requires sxtw or uxtw extend
+; CHECK-ERRORS: str d1, [x3, w3, sxtx #3]
+; CHECK-ERRORS: ^
+; CHECK-ERRORS: error: 64-bit general purpose offset register expected
+; CHECK-ERRORS: ldr s1, [x3, d3, sxtx #2]
+; CHECK-ERRORS: ^
; Shift immediates range checking.
sqrshrn b4, h9, #10