summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC
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
commit30a5982e7560234e563856961fb0d6d6967801c7 (patch)
tree223a41f285314d1567c3cb8705ff928f4920ea9a /llvm/test/MC
parentfc6de0f2cb75e6e3dcc5ff38f166b873ed88e470 (diff)
downloadbcm5719-llvm-30a5982e7560234e563856961fb0d6d6967801c7.tar.gz
bcm5719-llvm-30a5982e7560234e563856961fb0d6d6967801c7.zip
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 llvm-svn: 165199
Diffstat (limited to 'llvm/test/MC')
-rw-r--r--llvm/test/MC/Mips/mips-expansions.s14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/MC/Mips/mips-expansions.s b/llvm/test/MC/Mips/mips-expansions.s
new file mode 100644
index 00000000000..b87bfbdc5b2
--- /dev/null
+++ b/llvm/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
OpenPOWER on IntegriCloud