diff options
author | Jack Carter <jcarter@mips.com> | 2012-10-04 04:03:53 +0000 |
---|---|---|
committer | Jack Carter <jcarter@mips.com> | 2012-10-04 04:03:53 +0000 |
commit | 9d577c861414c28967d77c2a1edf64b68efdeaee (patch) | |
tree | a63152b36a6d8437c3ba11914e687e1183dda3fe /test/MC/Mips | |
parent | 34c6b7e925566cfa71e3087f70c6e4453f51cd25 (diff) | |
download | llvm-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.s | 14 |
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 |