summaryrefslogtreecommitdiff
path: root/test/MC/Mips
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2014-03-24 16:48:01 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2014-03-24 16:48:01 +0000
commit8ce101ed106b8da645eba8b98ee736cd19cd3543 (patch)
treea6c9bd6b38ae4468ae9432e44b26d88d3243ebf0 /test/MC/Mips
parent2685aa8713c7d17c43a84bdd3a699f2bfaae5914 (diff)
downloadllvm-8ce101ed106b8da645eba8b98ee736cd19cd3543.tar.gz
llvm-8ce101ed106b8da645eba8b98ee736cd19cd3543.tar.bz2
llvm-8ce101ed106b8da645eba8b98ee736cd19cd3543.tar.xz
[mips] Add error message when trying to use $at in '.set noat' mode.
Summary: Patch by David Chisnall His work was sponsored by: DARPA, AFRL Differential Revision: http://llvm-reviews.chandlerc.com/D3158 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204621 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Mips')
-rw-r--r--test/MC/Mips/mips-noat.s27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/MC/Mips/mips-noat.s b/test/MC/Mips/mips-noat.s
new file mode 100644
index 0000000000..152a1ee406
--- /dev/null
+++ b/test/MC/Mips/mips-noat.s
@@ -0,0 +1,27 @@
+# RUN: not llvm-mc %s -triple=mips-unknown-linux 2>%t0 | FileCheck %s
+# RUN: FileCheck -check-prefix=ERROR %s < %t0
+
+# We start with $at enabled
+# CHECK-LABEL: test1:
+# CHECK: lui $1, 1
+# CHECK: addu $1, $1, $2
+# CHECK: lw $2, 0($1)
+test1:
+ lw $2, 65536($2)
+
+# Check that using $at when .set noat is in effect is an error.
+# FIXME: It would be better if the error pointed at the mnemonic instead of the newline
+# ERROR: mips-noat.s:[[@LINE+5]]:1: error: Pseudo instruction requires $at, which is not available
+# ERROR-NOT: error
+test2:
+ .set noat
+ lw $2, 65536($2)
+
+# Can we switch it back on successfully?
+# CHECK-LABEL: test3:
+# CHECK: lui $1, 1
+# CHECK: addu $1, $1, $2
+# CHECK: lw $2, 0($1)
+test3:
+ .set at
+ lw $2, 65536($2)