summaryrefslogtreecommitdiffstats
path: root/test/MC/Mips/cpsetup.s
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2014-03-27 13:52:53 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2014-03-27 13:52:53 +0000
commit743cf745309da49f1540f698f97eecc78126b5a3 (patch)
treec913213535a8e563d27f890ccacae18fbffb122b /test/MC/Mips/cpsetup.s
parent38899fc4dae3ca02777dc27f23ee5b313a68b209 (diff)
[mips] Add support for .cpsetup
Summary: Patch by Robert N. M. Watson His work was sponsored by: DARPA, AFRL Small corrections by myself. CC: theraven, matheusalmeida Differential Revision: http://llvm-reviews.chandlerc.com/D3199 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204924 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Mips/cpsetup.s')
-rw-r--r--test/MC/Mips/cpsetup.s36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/MC/Mips/cpsetup.s b/test/MC/Mips/cpsetup.s
new file mode 100644
index 000000000000..dbdcaab4ae3b
--- /dev/null
+++ b/test/MC/Mips/cpsetup.s
@@ -0,0 +1,36 @@
+# RUN: llvm-mc -triple mips64-unknown-unknown -mattr=-n64,+o32 %s | \
+# RUN: FileCheck -check-prefix=ANY -check-prefix=O32 %s
+# RUN: llvm-mc -triple mips64-unknown-unknown -mattr=-n64,+n32 %s | \
+# RUN: FileCheck -check-prefix=ANY -check-prefix=NXX -check-prefix=N32 %s
+# RUN: llvm-mc -triple mips64-unknown-unknown %s | \
+# RUN: FileCheck -check-prefix=ANY -check-prefix=NXX -check-prefix=N64 %s
+
+# TODO: !PIC -> no output
+
+ .text
+ .option pic2
+t1:
+ .cpsetup $25, 8, __cerror
+
+# ANY-LABEL: t1:
+
+# O32-NOT: __cerror
+
+# NXX: sd $gp, 8($sp)
+# NXX: lui $gp, %hi(%neg(%gp_rel(__cerror)))
+# NXX: addiu $gp, $gp, %lo(%neg(%gp_rel(__cerror)))
+# N32: addu $gp, $gp, $25
+# N64: daddu $gp, $gp, $25
+
+t2:
+# ANY-LABEL: t2:
+
+ .cpsetup $25, $2, __cerror
+
+# O32-NOT: __cerror
+
+# NXX: move $2, $gp
+# NXX: lui $gp, %hi(%neg(%gp_rel(__cerror)))
+# NXX: addiu $gp, $gp, %lo(%neg(%gp_rel(__cerror)))
+# N32: addu $gp, $gp, $25
+# N64: daddu $gp, $gp, $25