diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-01-07 08:00:49 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-01-07 08:00:49 +0000 |
commit | dff38618c62600e912f4d39d9dfe9b547fa4749e (patch) | |
tree | 864975f2670d1954d88f7138eb163a1bb5a90b60 /test | |
parent | 9c15f4c9c98d884ff5427df69f9859a95b75c2fb (diff) | |
download | llvm-dff38618c62600e912f4d39d9dfe9b547fa4749e.tar.gz llvm-dff38618c62600e912f4d39d9dfe9b547fa4749e.tar.bz2 llvm-dff38618c62600e912f4d39d9dfe9b547fa4749e.tar.xz |
[Sparc] Add support for parsing sparc asm modifiers such as %hi, %lo etc.,
Also, correct the offsets for FixupsKindInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198681 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/MC/Sparc/sparc-ctrl-instructions.s | 24 | ||||
-rw-r--r-- | test/MC/Sparc/sparc-relocations.s | 33 |
2 files changed, 50 insertions, 7 deletions
diff --git a/test/MC/Sparc/sparc-ctrl-instructions.s b/test/MC/Sparc/sparc-ctrl-instructions.s index 5a2c5975f6..b6ea1131ca 100644 --- a/test/MC/Sparc/sparc-ctrl-instructions.s +++ b/test/MC/Sparc/sparc-ctrl-instructions.s @@ -1,23 +1,33 @@ ! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s ! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s - ! CHECK: call foo + ! CHECK: call foo ! encoding: [0b01AAAAAA,A,A,A] + ! CHECK: ! fixup A - offset: 0, value: foo, kind: fixup_sparc_call30 call foo - ! CHECK: call %g1+%i2 + ! CHECK: call %g1+%i2 ! encoding: [0x9f,0xc0,0x40,0x1a] call %g1 + %i2 - ! CHECK: call %o1+8 + ! CHECK: call %o1+8 ! encoding: [0x9f,0xc2,0x60,0x08] call %o1 + 8 - ! CHECK: call %g1 + ! CHECK: call %g1 ! encoding: [0x9f,0xc0,0x60,0x00] call %g1 - ! CHECK: jmp %g1+%i2 + ! CHECK: call %g1+%lo(sym) ! encoding: [0x9f,0xc0,0b011000AA,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 + call %g1+%lo(sym) + + ! CHECK: jmp %g1+%i2 ! encoding: [0x81,0xc0,0x40,0x1a] jmp %g1 + %i2 - ! CHECK: jmp %o1+8 + ! CHECK: jmp %o1+8 ! encoding: [0x81,0xc2,0x60,0x08] jmp %o1 + 8 - ! CHECK: jmp %g1 + ! CHECK: jmp %g1 ! encoding: [0x81,0xc0,0x60,0x00] jmp %g1 + + ! CHECK: jmp %g1+%lo(sym) ! encoding: [0x81,0xc0,0b011000AA,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 + jmp %g1+%lo(sym) + diff --git a/test/MC/Sparc/sparc-relocations.s b/test/MC/Sparc/sparc-relocations.s new file mode 100644 index 0000000000..9b1d722baf --- /dev/null +++ b/test/MC/Sparc/sparc-relocations.s @@ -0,0 +1,33 @@ +! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s + + ! CHECK: call foo ! encoding: [0b01AAAAAA,A,A,A] + ! CHECK: ! fixup A - offset: 0, value: foo, kind: fixup_sparc_call30 + call foo + + ! CHECK: or %g1, %lo(sym), %g3 ! encoding: [0x86,0x10,0b011000AA,A] + ! CHECK-NEXT ! fixup A - offset: 0, value: %lo(sym), kind: fixup_sparc_lo10 + or %g1, %lo(sym), %g3 + + ! CHECK: sethi %hi(sym), %l0 ! encoding: [0x21,0b00AAAAAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: %hi(sym), kind: fixup_sparc_hi22 + sethi %hi(sym), %l0 + + ! CHECK: sethi %h44(sym), %l0 ! encoding: [0x21,0b00AAAAAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: %h44(sym), kind: fixup_sparc_h44 + sethi %h44(sym), %l0 + + ! CHECK: or %g1, %m44(sym), %g3 ! encoding: [0x86,0x10,0b011000AA,A] + ! CHECK-NEXT ! fixup A - offset: 0, value: %m44(sym), kind: fixup_sparc_m44 + or %g1, %m44(sym), %g3 + + ! CHECK: or %g1, %l44(sym), %g3 ! encoding: [0x86,0x10,0b0110AAAA,A] + ! CHECK-NEXT ! fixup A - offset: 0, value: %l44(sym), kind: fixup_sparc_l44 + or %g1, %l44(sym), %g3 + + ! CHECK: sethi %hh(sym), %l0 ! encoding: [0x21,0b00AAAAAA,A,A] + ! CHECK-NEXT: ! fixup A - offset: 0, value: %hh(sym), kind: fixup_sparc_hh + sethi %hh(sym), %l0 + + ! CHECK: or %g1, %hm(sym), %g3 ! encoding: [0x86,0x10,0b011000AA,A] + ! CHECK-NEXT ! fixup A - offset: 0, value: %hm(sym), kind: fixup_sparc_hm + or %g1, %hm(sym), %g3 |