diff options
Diffstat (limited to 'test/MC/Sparc')
-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 |