summaryrefslogtreecommitdiff
path: root/test/MC/Mips
diff options
context:
space:
mode:
authorJack Carter <jcarter@mips.com>2012-10-04 04:03:53 +0000
committerJack Carter <jcarter@mips.com>2012-10-04 04:03:53 +0000
commit9d577c861414c28967d77c2a1edf64b68efdeaee (patch)
treea63152b36a6d8437c3ba11914e687e1183dda3fe /test/MC/Mips
parent34c6b7e925566cfa71e3087f70c6e4453f51cd25 (diff)
downloadllvm-9d577c861414c28967d77c2a1edf64b68efdeaee.tar.gz
llvm-9d577c861414c28967d77c2a1edf64b68efdeaee.tar.bz2
llvm-9d577c861414c28967d77c2a1edf64b68efdeaee.tar.xz
Implement methods that enable expansion of load immediate
macro instruction (li) in the assembler. We have identified three possible expansions depending on the size of immediate operand: 1) for 0 ≤ j ≤ 65535. li d,j => ori d,$zero,j 2) for −32768 ≤ j < 0. li d,j => addiu d,$zero,j 3) for any other value of j that is representable as a 32-bit integer. li d,j => lui d,hi16(j) ori d,d,lo16(j) All of the above have been implemented in ths patch. Contributer: Vladimir Medic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165199 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Mips')
-rw-r--r--test/MC/Mips/mips-expansions.s14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/MC/Mips/mips-expansions.s b/test/MC/Mips/mips-expansions.s
new file mode 100644
index 0000000000..b87bfbdc5b
--- /dev/null
+++ b/test/MC/Mips/mips-expansions.s
@@ -0,0 +1,14 @@
+# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s
+# Check that the assembler can handle the documented syntax
+# for macro instructions
+# CHECK: .section __TEXT,__text,regular,pure_instructions
+#------------------------------------------------------------------------------
+# Load immediate instructions
+#------------------------------------------------------------------------------
+# CHECK: ori $5, $zero, 123 # encoding: [0x7b,0x00,0x05,0x34]
+# CHECK: addiu $6, $zero, -2345 # encoding: [0xd7,0xf6,0x06,0x24]
+# CHECK: lui $7, 1 # encoding: [0x01,0x00,0x07,0x3c]
+# CHECK: ori $7, $7, 2 # encoding: [0x02,0x00,0xe7,0x34]
+ li $5,123
+ li $6,-2345
+ li $7,65538