You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.167
Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
parent
e19d552987
commit
b084638f15
20
external/llvm/test/MC/Sparc/leon-instructions.s
vendored
20
external/llvm/test/MC/Sparc/leon-instructions.s
vendored
@ -1,20 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -mcpu=leon3 -show-encoding | FileCheck %s -check-prefix=CHECK_NO_CASA
|
||||
! RUN: llvm-mc %s -arch=sparc -mcpu=ut699 -show-encoding | FileCheck %s -check-prefix=CHECK_NO_CASA
|
||||
! RUN: llvm-mc %s -arch=sparc -mcpu=gr712rc -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparc -mcpu=leon4 -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparc -mcpu=gr740 -show-encoding | FileCheck %s
|
||||
|
||||
|
||||
! CHECK: casa [%i0] 10, %l6, %o2 ! encoding: [0xd5,0xe6,0x01,0x56]
|
||||
casa [%i0] 10, %l6, %o2
|
||||
|
||||
! CHECK: casa [%i0] 5, %l6, %o2 ! encoding: [0xd5,0xe6,0x00,0xb6]
|
||||
casa [%i0] 5, %l6, %o2
|
||||
|
||||
! CHECK: umac %i0, %l6, %o2 ! encoding: [0x95,0xf6,0x00,0x16]
|
||||
! CHECK_NO_CASA: umac %i0, %l6, %o2 ! encoding: [0x95,0xf6,0x00,0x16]
|
||||
umac %i0, %l6, %o2
|
||||
|
||||
! CHECK: smac %i0, %l6, %o2 ! encoding: [0x95,0xfe,0x00,0x16]
|
||||
! CHECK_NO_CASA: smac %i0, %l6, %o2 ! encoding: [0x95,0xfe,0x00,0x16]
|
||||
smac %i0, %l6, %o2
|
3
external/llvm/test/MC/Sparc/lit.local.cfg
vendored
3
external/llvm/test/MC/Sparc/lit.local.cfg
vendored
@ -1,3 +0,0 @@
|
||||
if not 'Sparc' in config.root.targets:
|
||||
config.unsupported = True
|
||||
|
134
external/llvm/test/MC/Sparc/sparc-alu-instructions.s
vendored
134
external/llvm/test/MC/Sparc/sparc-alu-instructions.s
vendored
@ -1,134 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: add %g0, %g0, %g0 ! encoding: [0x80,0x00,0x00,0x00]
|
||||
add %g0, %g0, %g0
|
||||
! CHECK: add %g1, %g2, %g3 ! encoding: [0x86,0x00,0x40,0x02]
|
||||
add %g1, %g2, %g3
|
||||
! CHECK: add %o0, %o1, %l0 ! encoding: [0xa0,0x02,0x00,0x09]
|
||||
add %r8, %r9, %l0
|
||||
! CHECK: add %o0, 10, %l0 ! encoding: [0xa0,0x02,0x20,0x0a]
|
||||
add %o0, 10, %l0
|
||||
|
||||
! CHECK: addcc %g1, %g2, %g3 ! encoding: [0x86,0x80,0x40,0x02]
|
||||
addcc %g1, %g2, %g3
|
||||
|
||||
! CHECK: addxcc %g1, %g2, %g3 ! encoding: [0x86,0xc0,0x40,0x02]
|
||||
addxcc %g1, %g2, %g3
|
||||
|
||||
! CHECK: udiv %g1, %g2, %g3 ! encoding: [0x86,0x70,0x40,0x02]
|
||||
udiv %g1, %g2, %g3
|
||||
|
||||
! CHECK: sdiv %g1, %g2, %g3 ! encoding: [0x86,0x78,0x40,0x02]
|
||||
sdiv %g1, %g2, %g3
|
||||
|
||||
! CHECK: and %g1, %g2, %g3 ! encoding: [0x86,0x08,0x40,0x02]
|
||||
and %g1, %g2, %g3
|
||||
! CHECK: andn %g1, %g2, %g3 ! encoding: [0x86,0x28,0x40,0x02]
|
||||
andn %g1, %g2, %g3
|
||||
! CHECK: or %g1, %g2, %g3 ! encoding: [0x86,0x10,0x40,0x02]
|
||||
or %g1, %g2, %g3
|
||||
! CHECK: orn %g1, %g2, %g3 ! encoding: [0x86,0x30,0x40,0x02]
|
||||
orn %g1, %g2, %g3
|
||||
! CHECK: xor %g1, %g2, %g3 ! encoding: [0x86,0x18,0x40,0x02]
|
||||
xor %g1, %g2, %g3
|
||||
! CHECK: xnor %g1, %g2, %g3 ! encoding: [0x86,0x38,0x40,0x02]
|
||||
xnor %g1, %g2, %g3
|
||||
|
||||
! CHECK: umul %g1, %g2, %g3 ! encoding: [0x86,0x50,0x40,0x02]
|
||||
umul %g1, %g2, %g3
|
||||
|
||||
! CHECK: smul %g1, %g2, %g3 ! encoding: [0x86,0x58,0x40,0x02]
|
||||
smul %g1, %g2, %g3
|
||||
|
||||
! CHECK: nop ! encoding: [0x01,0x00,0x00,0x00]
|
||||
nop
|
||||
|
||||
! CHECK: sethi 10, %l0 ! encoding: [0x21,0x00,0x00,0x0a]
|
||||
sethi 10, %l0
|
||||
|
||||
! CHECK: sll %g1, %g2, %g3 ! encoding: [0x87,0x28,0x40,0x02]
|
||||
sll %g1, %g2, %g3
|
||||
! CHECK: sll %g1, 31, %g3 ! encoding: [0x87,0x28,0x60,0x1f]
|
||||
sll %g1, 31, %g3
|
||||
|
||||
! CHECK: srl %g1, %g2, %g3 ! encoding: [0x87,0x30,0x40,0x02]
|
||||
srl %g1, %g2, %g3
|
||||
! CHECK: srl %g1, 31, %g3 ! encoding: [0x87,0x30,0x60,0x1f]
|
||||
srl %g1, 31, %g3
|
||||
|
||||
! CHECK: sra %g1, %g2, %g3 ! encoding: [0x87,0x38,0x40,0x02]
|
||||
sra %g1, %g2, %g3
|
||||
! CHECK: sra %g1, 31, %g3 ! encoding: [0x87,0x38,0x60,0x1f]
|
||||
sra %g1, 31, %g3
|
||||
|
||||
! CHECK: sub %g1, %g2, %g3 ! encoding: [0x86,0x20,0x40,0x02]
|
||||
sub %g1, %g2, %g3
|
||||
! CHECK: subcc %g1, %g2, %g3 ! encoding: [0x86,0xa0,0x40,0x02]
|
||||
subcc %g1, %g2, %g3
|
||||
|
||||
! CHECK: subxcc %g1, %g2, %g3 ! encoding: [0x86,0xe0,0x40,0x02]
|
||||
subxcc %g1, %g2, %g3
|
||||
|
||||
! CHECK: mov %g1, %g3 ! encoding: [0x86,0x10,0x00,0x01]
|
||||
mov %g1, %g3
|
||||
|
||||
! CHECK: mov 255, %g3 ! encoding: [0x86,0x10,0x20,0xff]
|
||||
mov 0xff, %g3
|
||||
|
||||
! CHECK: restore %g0, %g0, %g1 ! encoding: [0x83,0xe8,0x00,0x00]
|
||||
restore %g0, %g0, %g1
|
||||
|
||||
! CHECK: addx %g2, %g1, %g3 ! encoding: [0x86,0x40,0x80,0x01]
|
||||
addx %g2, %g1, %g3
|
||||
|
||||
! CHECK: subx %g2, %g1, %g3 ! encoding: [0x86,0x60,0x80,0x01]
|
||||
subx %g2, %g1, %g3
|
||||
|
||||
! CHECK: umulcc %g2, %g1, %g3 ! encoding: [0x86,0xd0,0x80,0x01]
|
||||
umulcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: smulcc %g2, %g1, %g3 ! encoding: [0x86,0xd8,0x80,0x01]
|
||||
smulcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: mulscc %g2, %g1, %g3 ! encoding: [0x87,0x20,0x80,0x01]
|
||||
mulscc %g2, %g1, %g3
|
||||
|
||||
! CHECK: mulscc %g2, 254, %g3 ! encoding: [0x87,0x20,0xa0,0xfe]
|
||||
mulscc %g2, 254, %g3
|
||||
|
||||
! CHECK: udivcc %g2, %g1, %g3 ! encoding: [0x86,0xf0,0x80,0x01]
|
||||
udivcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: sdivcc %g2, %g1, %g3 ! encoding: [0x86,0xf8,0x80,0x01]
|
||||
sdivcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: andcc %g2, %g1, %g3 ! encoding: [0x86,0x88,0x80,0x01]
|
||||
andcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: andncc %g2, %g1, %g3 ! encoding: [0x86,0xa8,0x80,0x01]
|
||||
andncc %g2, %g1, %g3
|
||||
|
||||
! CHECK: orcc %g2, %g1, %g3 ! encoding: [0x86,0x90,0x80,0x01]
|
||||
orcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: orncc %g2, %g1, %g3 ! encoding: [0x86,0xb0,0x80,0x01]
|
||||
orncc %g2, %g1, %g3
|
||||
|
||||
! CHECK: xorcc %g2, %g1, %g3 ! encoding: [0x86,0x98,0x80,0x01]
|
||||
xorcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: xnorcc %g2, %g1, %g3 ! encoding: [0x86,0xb8,0x80,0x01]
|
||||
xnorcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: taddcc %g2, %g1, %g3 ! encoding: [0x87,0x00,0x80,0x01]
|
||||
taddcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: tsubcc %g2, %g1, %g3 ! encoding: [0x87,0x08,0x80,0x01]
|
||||
tsubcc %g2, %g1, %g3
|
||||
|
||||
! CHECK: taddcctv %g2, %g1, %g3 ! encoding: [0x87,0x10,0x80,0x01]
|
||||
taddcctv %g2, %g1, %g3
|
||||
|
||||
! CHECK: tsubcctv %g2, %g1, %g3 ! encoding: [0x87,0x18,0x80,0x01]
|
||||
tsubcctv %g2, %g1, %g3
|
@ -1,8 +0,0 @@
|
||||
! RUN: not llvm-mc %s -arch=sparc -show-encoding 2>&1 | FileCheck %s
|
||||
! RUN: not llvm-mc %s -arch=sparcv9 -show-encoding 2>&1 | FileCheck %s
|
||||
|
||||
! Test the lower and upper bounds of 'set'
|
||||
! CHECK: argument must be between
|
||||
set -2147483649, %o1
|
||||
! CHECK: argument must be between
|
||||
set 4294967296, %o1
|
@ -1,13 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: mov 1033, %o1 ! encoding: [0x92,0x10,0x24,0x09]
|
||||
mov (0x400|9), %o1
|
||||
! CHECK: mov 60, %o2 ! encoding: [0x94,0x10,0x20,0x3c]
|
||||
mov ((12+3)<<2), %o2
|
||||
|
||||
! "." is exactly like a temporary symbol equated to the current line.
|
||||
! RUN: llvm-mc %s -arch=sparc | FileCheck %s --check-prefix=DOTEXPR
|
||||
|
||||
! DOTEXPR: .Ltmp0
|
||||
! DOTEXPR-NEXT: ba .Ltmp0+8
|
||||
b . + 8
|
@ -1,23 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: stbar ! encoding: [0x81,0x43,0xc0,0x00]
|
||||
stbar
|
||||
|
||||
! CHECK: swap [%i0+%l6], %o2 ! encoding: [0xd4,0x7e,0x00,0x16]
|
||||
swap [%i0+%l6], %o2
|
||||
|
||||
! CHECK: swap [%i0+32], %o2 ! encoding: [0xd4,0x7e,0x20,0x20]
|
||||
swap [%i0+32], %o2
|
||||
|
||||
! CHECK: swapa [%i0+%l6] 131, %o2 ! encoding: [0xd4,0xfe,0x10,0x76]
|
||||
swapa [%i0+%l6] 131, %o2
|
||||
|
||||
! CHECK: ldstub [%i0+40], %g1 ! encoding: [0xc2,0x6e,0x20,0x28]
|
||||
ldstub [%i0+40], %g1
|
||||
|
||||
! CHECK: ldstub [%i0+%i2], %g1 ! encoding: [0xc2,0x6e,0x00,0x1a]
|
||||
ldstub [%i0+%i2], %g1
|
||||
|
||||
! CHECK: ldstuba [%i0+%i2] 131, %g1 ! encoding: [0xc2,0xee,0x10,0x7a]
|
||||
ldstuba [%i0+%i2] 131, %g1
|
72
external/llvm/test/MC/Sparc/sparc-coproc.s
vendored
72
external/llvm/test/MC/Sparc/sparc-coproc.s
vendored
@ -1,72 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: ld [%i1], %c4 ! encoding: [0xc9,0x86,0x40,0x00]
|
||||
! CHECK: ld [%i1+-15], %c4 ! encoding: [0xc9,0x86,0x7f,0xf1]
|
||||
! CHECK: ld [%i1+%o3], %c4 ! encoding: [0xc9,0x86,0x40,0x0b]
|
||||
! CHECK: ld [%i7], %c4 ! encoding: [0xc9,0x87,0xc0,0x00]
|
||||
! CHECK: ld [%i1], %c19 ! encoding: [0xe7,0x86,0x40,0x00]
|
||||
ld [%i1], %c4
|
||||
ld [%i1 - 15], %c4
|
||||
ld [%i1 +%o3], %c4
|
||||
ld [%i7], %c4
|
||||
ld [%i1], %c19
|
||||
|
||||
|
||||
! CHECK: ldd [%i1], %c4 ! encoding: [0xc9,0x9e,0x40,0x00]
|
||||
! CHECK: ldd [%i7], %c4 ! encoding: [0xc9,0x9f,0xc0,0x00]
|
||||
! CHECK: ldd [%i7+200], %c4 ! encoding: [0xc9,0x9f,0xe0,0xc8]
|
||||
! CHECK: ldd [%i7+%o3], %c4 ! encoding: [0xc9,0x9f,0xc0,0x0b]
|
||||
! CHECK: ldd [%i1], %c30 ! encoding: [0xfd,0x9e,0x40,0x00]
|
||||
ldd [%i1], %c4
|
||||
ldd [%i7], %c4
|
||||
ldd [%i7 + 200], %c4
|
||||
ldd [%i7+%o3], %c4
|
||||
ldd [%i1], %c30
|
||||
|
||||
|
||||
! CHECK: st %c4, [%i1] ! encoding: [0xc9,0xa6,0x40,0x00]
|
||||
! CHECK: st %c4, [%i7] ! encoding: [0xc9,0xa7,0xc0,0x00]
|
||||
! CHECK: st %c4, [%i7+48] ! encoding: [0xc9,0xa7,0xe0,0x30]
|
||||
! CHECK: st %c4, [%i4+%o2] ! encoding: [0xc9,0xa7,0x00,0x0a]
|
||||
! CHECK: st %c19, [%i1] ! encoding: [0xe7,0xa6,0x40,0x00]
|
||||
st %c4, [%i1]
|
||||
st %c4, [%i7]
|
||||
st %c4, [%i7+48]
|
||||
st %c4, [%i4+%o2]
|
||||
st %c19, [%i1]
|
||||
|
||||
|
||||
! CHECK: std %c4, [%i1] ! encoding: [0xc9,0xbe,0x40,0x00]
|
||||
! CHECK: std %c4, [%i7] ! encoding: [0xc9,0xbf,0xc0,0x00]
|
||||
! CHECK: std %c4, [%i2+-240] ! encoding: [0xc9,0xbe,0xbf,0x10]
|
||||
! CHECK: std %c4, [%i1+%o5] ! encoding: [0xc9,0xbe,0x40,0x0d]
|
||||
! CHECK: std %c30, [%i1] ! encoding: [0xfd,0xbe,0x40,0x00]
|
||||
std %c4, [%i1]
|
||||
std %c4, [%i7]
|
||||
std %c4, [%i2-240]
|
||||
std %c4, [%i1+%o5]
|
||||
std %c30, [%i1]
|
||||
|
||||
|
||||
! CHECK: ld [%i5], %csr ! encoding: [0xc1,0x8f,0x40,0x00]
|
||||
! CHECK: ld [%l2+3], %csr ! encoding: [0xc1,0x8c,0xa0,0x03]
|
||||
! CHECK: ld [%l4+%l5], %csr ! encoding: [0xc1,0x8d,0x00,0x15]
|
||||
ld [%i5], %csr
|
||||
ld [%l2+3], %csr
|
||||
ld [%l4+%l5], %csr
|
||||
|
||||
|
||||
! CHECK: st %csr, [%i2] ! encoding: [0xc1,0xae,0x80,0x00]
|
||||
! CHECK: st %csr, [%i2+31] ! encoding: [0xc1,0xae,0xa0,0x1f]
|
||||
! CHECK: st %csr, [%i2+%o2] ! encoding: [0xc1,0xae,0x80,0x0a]
|
||||
st %csr, [%i2]
|
||||
st %csr, [%i2+31]
|
||||
st %csr, [%i2+%o2]
|
||||
|
||||
! CHECK: std %cq, [%o3] ! encoding: [0xc1,0xb2,0xc0,0x00]
|
||||
! CHECK: std %cq, [%o3+-93] ! encoding: [0xc1,0xb2,0xff,0xa3]
|
||||
! CHECK: std %cq, [%o3+%l5] ! encoding: [0xc1,0xb2,0xc0,0x15]
|
||||
std %cq, [%o3]
|
||||
std %cq, [%o3-93]
|
||||
std %cq, [%o3+%l5]
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,13 +0,0 @@
|
||||
! RUN: not llvm-mc %s -arch=sparc -show-encoding 2>&1 | FileCheck %s --check-prefix=SPARC32
|
||||
! RUN: llvm-mc %s -triple sparc64 -show-encoding | FileCheck %s --check-prefix=SPARC64
|
||||
! RUN: llvm-mc %s -triple sparcv9 -show-encoding | FileCheck %s --check-prefix=SPARCV9
|
||||
|
||||
! SPARC32: error: unknown directive
|
||||
! SPARC32-NEXT: .xword 65536
|
||||
! SPARC32-NEXT: ^
|
||||
|
||||
! SPARC64: .xword 65536
|
||||
.xword 65536
|
||||
|
||||
! SPARCV9: .xword 65536
|
||||
.xword 65536
|
23
external/llvm/test/MC/Sparc/sparc-directives.s
vendored
23
external/llvm/test/MC/Sparc/sparc-directives.s
vendored
@ -1,23 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s --check-prefix=SPARC32
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s --check-prefix=SPARC64
|
||||
|
||||
! '.proc' is documented to do nothing in the binutils assembler.
|
||||
! so it should do nothing for clang either, i.e. not be an error.
|
||||
.proc 1
|
||||
|
||||
! SPARC32: .byte 24
|
||||
! SPARC64: .byte 24
|
||||
.byte 24
|
||||
|
||||
! SPARC32: .half 1024
|
||||
! SPARC64: .half 1024
|
||||
.half 1024
|
||||
|
||||
! SPARC32: .word 65536
|
||||
! SPARC64: .word 65536
|
||||
.word 65536
|
||||
|
||||
! SPARC32: .word 65536
|
||||
! SPARC64: .xword 65536
|
||||
.nword 65536
|
||||
|
157
external/llvm/test/MC/Sparc/sparc-fp-instructions.s
vendored
157
external/llvm/test/MC/Sparc/sparc-fp-instructions.s
vendored
@ -1,157 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: fitos %f0, %f4 ! encoding: [0x89,0xa0,0x18,0x80]
|
||||
! CHECK: fitod %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x00]
|
||||
! CHECK: fitoq %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x80]
|
||||
fitos %f0, %f4
|
||||
fitod %f0, %f4
|
||||
fitoq %f0, %f4
|
||||
|
||||
! CHECK: fstoi %f0, %f4 ! encoding: [0x89,0xa0,0x1a,0x20]
|
||||
! CHECK: fdtoi %f0, %f4 ! encoding: [0x89,0xa0,0x1a,0x40]
|
||||
! CHECK: fqtoi %f0, %f4 ! encoding: [0x89,0xa0,0x1a,0x60]
|
||||
fstoi %f0, %f4
|
||||
fdtoi %f0, %f4
|
||||
fqtoi %f0, %f4
|
||||
|
||||
! CHECK: fstod %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x20]
|
||||
! CHECK: fstoq %f0, %f4 ! encoding: [0x89,0xa0,0x19,0xa0]
|
||||
fstod %f0, %f4
|
||||
fstoq %f0, %f4
|
||||
|
||||
! CHECK: fdtos %f0, %f4 ! encoding: [0x89,0xa0,0x18,0xc0]
|
||||
! CHECK: fdtoq %f0, %f4 ! encoding: [0x89,0xa0,0x19,0xc0]
|
||||
fdtos %f0, %f4
|
||||
fdtoq %f0, %f4
|
||||
|
||||
! CHECK: fqtos %f0, %f4 ! encoding: [0x89,0xa0,0x18,0xe0]
|
||||
! CHECK: fqtod %f0, %f4 ! encoding: [0x89,0xa0,0x19,0x60]
|
||||
fqtos %f0, %f4
|
||||
fqtod %f0, %f4
|
||||
|
||||
! CHECK: fmovs %f0, %f4 ! encoding: [0x89,0xa0,0x00,0x20]
|
||||
! CHECK: fmovd %f0, %f4 ! encoding: [0x89,0xa0,0x00,0x40]
|
||||
! CHECK: fmovq %f0, %f4 ! encoding: [0x89,0xa0,0x00,0x60]
|
||||
fmovs %f0, %f4
|
||||
fmovd %f0, %f4
|
||||
fmovq %f0, %f4
|
||||
|
||||
! CHECK: fnegs %f0, %f4 ! encoding: [0x89,0xa0,0x00,0xa0]
|
||||
! CHECK: fnegd %f0, %f4 ! encoding: [0x89,0xa0,0x00,0xc0]
|
||||
! CHECK: fnegq %f0, %f4 ! encoding: [0x89,0xa0,0x00,0xe0]
|
||||
fnegs %f0, %f4
|
||||
fnegd %f0, %f4
|
||||
fnegq %f0, %f4
|
||||
|
||||
! CHECK: fabss %f0, %f4 ! encoding: [0x89,0xa0,0x01,0x20]
|
||||
! CHECK: fabsd %f0, %f4 ! encoding: [0x89,0xa0,0x01,0x40]
|
||||
! CHECK: fabsq %f0, %f4 ! encoding: [0x89,0xa0,0x01,0x60]
|
||||
fabss %f0, %f4
|
||||
fabsd %f0, %f4
|
||||
fabsq %f0, %f4
|
||||
|
||||
! CHECK: fsqrts %f0, %f4 ! encoding: [0x89,0xa0,0x05,0x20]
|
||||
! CHECK: fsqrtd %f0, %f4 ! encoding: [0x89,0xa0,0x05,0x40]
|
||||
! CHECK: fsqrtq %f0, %f4 ! encoding: [0x89,0xa0,0x05,0x60]
|
||||
fsqrts %f0, %f4
|
||||
fsqrtd %f0, %f4
|
||||
fsqrtq %f0, %f4
|
||||
|
||||
! CHECK: fadds %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0x24]
|
||||
! CHECK: faddd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0x44]
|
||||
! CHECK: faddq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0x64]
|
||||
fadds %f0, %f4, %f8
|
||||
faddd %f0, %f4, %f8
|
||||
faddq %f0, %f4, %f8
|
||||
|
||||
! make sure we can handle V9 double registers and their aliased quad registers.
|
||||
! CHECK: faddd %f32, %f34, %f62 ! encoding: [0xbf,0xa0,0x48,0x43]
|
||||
! CHECK: faddq %f32, %f36, %f60 ! encoding: [0xbb,0xa0,0x48,0x65]
|
||||
faddd %f32, %f34, %f62
|
||||
faddq %f32, %f36, %f60
|
||||
|
||||
! CHECK: fsubs %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xa4]
|
||||
! CHECK: fsubd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xc4]
|
||||
! CHECK: fsubq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x08,0xe4]
|
||||
fsubs %f0, %f4, %f8
|
||||
fsubd %f0, %f4, %f8
|
||||
fsubq %f0, %f4, %f8
|
||||
|
||||
! CHECK: fmuls %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0x24]
|
||||
! CHECK: fmuld %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0x44]
|
||||
! CHECK: fmulq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0x64]
|
||||
fmuls %f0, %f4, %f8
|
||||
fmuld %f0, %f4, %f8
|
||||
fmulq %f0, %f4, %f8
|
||||
|
||||
! CHECK: fsmuld %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x0d,0x24]
|
||||
! CHECK: fdmulq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x0d,0xc4]
|
||||
fsmuld %f0, %f4, %f8
|
||||
fdmulq %f0, %f4, %f8
|
||||
|
||||
! CHECK: fdivs %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0xa4]
|
||||
! CHECK: fdivd %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0xc4]
|
||||
! CHECK: fdivq %f0, %f4, %f8 ! encoding: [0x91,0xa0,0x09,0xe4]
|
||||
fdivs %f0, %f4, %f8
|
||||
fdivd %f0, %f4, %f8
|
||||
fdivq %f0, %f4, %f8
|
||||
|
||||
! CHECK: fcmps %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0x24]
|
||||
! CHECK: fcmpd %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0x44]
|
||||
! CHECK: fcmpq %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0x64]
|
||||
fcmps %f0, %f4
|
||||
fcmpd %f0, %f4
|
||||
fcmpq %f0, %f4
|
||||
|
||||
! CHECK: fcmpes %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xa4]
|
||||
! CHECK: fcmped %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xc4]
|
||||
! CHECK: fcmpeq %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xe4]
|
||||
fcmpes %f0, %f4
|
||||
fcmped %f0, %f4
|
||||
fcmpeq %f0, %f4
|
||||
|
||||
! CHECK: fcmps %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x24]
|
||||
! CHECK: fcmpd %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x44]
|
||||
! CHECK: fcmpq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x64]
|
||||
fcmps %fcc2, %f0, %f4
|
||||
fcmpd %fcc2, %f0, %f4
|
||||
fcmpq %fcc2, %f0, %f4
|
||||
|
||||
! CHECK: fcmpes %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xa4]
|
||||
! CHECK: fcmped %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xc4]
|
||||
! CHECK: fcmpeq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xe4]
|
||||
fcmpes %fcc2, %f0, %f4
|
||||
fcmped %fcc2, %f0, %f4
|
||||
fcmpeq %fcc2, %f0, %f4
|
||||
|
||||
! CHECK: fxtos %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x80]
|
||||
! CHECK: fxtod %f0, %f4 ! encoding: [0x89,0xa0,0x11,0x00]
|
||||
! CHECK: fxtoq %f0, %f4 ! encoding: [0x89,0xa0,0x11,0x80]
|
||||
fxtos %f0, %f4
|
||||
fxtod %f0, %f4
|
||||
fxtoq %f0, %f4
|
||||
|
||||
! CHECK: fstox %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x20]
|
||||
! CHECK: fdtox %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x40]
|
||||
! CHECK: fqtox %f0, %f4 ! encoding: [0x89,0xa0,0x10,0x60]
|
||||
fstox %f0, %f4
|
||||
fdtox %f0, %f4
|
||||
fqtox %f0, %f4
|
||||
|
||||
! CHECK: ld [%l0], %f29 ! encoding: [0xfb,0x04,0x00,0x00]
|
||||
! CHECK: ldd [%l0], %f48 ! encoding: [0xe3,0x1c,0x00,0x00]
|
||||
ld [%l0], %f29
|
||||
ldd [%l0], %f48
|
||||
|
||||
! CHECK: st %f29, [%l0] ! encoding: [0xfb,0x24,0x00,0x00]
|
||||
! CHECK: std %f48, [%l0] ! encoding: [0xe3,0x3c,0x00,0x00]
|
||||
st %f29, [%l0]
|
||||
std %f48, [%l0]
|
||||
|
||||
! CHECK: std %fq, [%o4] ! encoding: [0xc1,0x33,0x00,0x00]
|
||||
! CHECK: std %fq, [%l1+62] ! encoding: [0xc1,0x34,0x60,0x3e]
|
||||
! CHECK: std %fq, [%i3+%l7] ! encoding: [0xc1,0x36,0xc0,0x17]
|
||||
std %fq, [%o4]
|
||||
std %fq, [%l1+62]
|
||||
std %fq, [%i3+%l7]
|
||||
|
@ -1,18 +0,0 @@
|
||||
! RUN: llvm-mc %s -triple=sparcel-linux-gnu -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc -triple=sparcel-linux-gnu -filetype=obj < %s | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-OBJ
|
||||
|
||||
! CHECK-OBJ: .text:
|
||||
.BB0:
|
||||
|
||||
! Ensure instructions are emitted in reversed byte order:
|
||||
|
||||
! CHECK: call %g1 ! encoding: [0x00,0x40,0xc0,0x9f]
|
||||
! CHECK-OBJ: 0: 00 40 c0 9f call %g1
|
||||
call %g1
|
||||
|
||||
! ...and that fixups are applied to the correct bytes.
|
||||
|
||||
! CHECK: ba .BB0 ! encoding: [A,A,0b10AAAAAA,0x10]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
! CHECK-OBJ: 4: ff ff bf 10 ba 4194303
|
||||
ba .BB0
|
102
external/llvm/test/MC/Sparc/sparc-mem-instructions.s
vendored
102
external/llvm/test/MC/Sparc/sparc-mem-instructions.s
vendored
@ -1,102 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: ldsb [%i0+%l6], %o2 ! encoding: [0xd4,0x4e,0x00,0x16]
|
||||
ldsb [%i0 + %l6], %o2
|
||||
! CHECK: ldsb [%i0+32], %o2 ! encoding: [0xd4,0x4e,0x20,0x20]
|
||||
ldsb [%i0 + 32], %o2
|
||||
! CHECK: ldsb [%g1], %o4 ! encoding: [0xd8,0x48,0x40,0x00]
|
||||
ldsb [%g1], %o4
|
||||
! CHECK: ldsba [%i0+%l6] 131, %o2 ! encoding: [0xd4,0xce,0x10,0x76]
|
||||
ldsba [%i0 + %l6] 131, %o2
|
||||
|
||||
! CHECK: ldsh [%i0+%l6], %o2 ! encoding: [0xd4,0x56,0x00,0x16]
|
||||
ldsh [%i0 + %l6], %o2
|
||||
! CHECK: ldsh [%i0+32], %o2 ! encoding: [0xd4,0x56,0x20,0x20]
|
||||
ldsh [%i0 + 32], %o2
|
||||
! CHECK: ldsh [%g1], %o4 ! encoding: [0xd8,0x50,0x40,0x00]
|
||||
ldsh [%g1], %o4
|
||||
! CHECK: ldsha [%i0+%l6] 131, %o2 ! encoding: [0xd4,0xd6,0x10,0x76]
|
||||
ldsha [%i0 + %l6] 131, %o2
|
||||
|
||||
! CHECK: ldub [%i0+%l6], %o2 ! encoding: [0xd4,0x0e,0x00,0x16]
|
||||
ldub [%i0 + %l6], %o2
|
||||
! CHECK: ldub [%i0+32], %o2 ! encoding: [0xd4,0x0e,0x20,0x20]
|
||||
ldub [%i0 + 32], %o2
|
||||
! CHECK: ldub [%g1], %o2 ! encoding: [0xd4,0x08,0x40,0x00]
|
||||
ldub [%g1], %o2
|
||||
! CHECK: lduba [%i0+%l6] 131, %o2 ! encoding: [0xd4,0x8e,0x10,0x76]
|
||||
lduba [%i0 + %l6] 131, %o2
|
||||
|
||||
! CHECK: lduh [%i0+%l6], %o2 ! encoding: [0xd4,0x16,0x00,0x16]
|
||||
lduh [%i0 + %l6], %o2
|
||||
! CHECK: lduh [%i0+32], %o2 ! encoding: [0xd4,0x16,0x20,0x20]
|
||||
lduh [%i0 + 32], %o2
|
||||
! CHECK: lduh [%g1], %o2 ! encoding: [0xd4,0x10,0x40,0x00]
|
||||
lduh [%g1], %o2
|
||||
! CHECK: lduha [%i0+%l6] 131, %o2 ! encoding: [0xd4,0x96,0x10,0x76]
|
||||
lduha [%i0 + %l6] 131, %o2
|
||||
|
||||
! CHECK: ld [%i0+%l6], %o2 ! encoding: [0xd4,0x06,0x00,0x16]
|
||||
ld [%i0 + %l6], %o2
|
||||
! CHECK: ld [%i0+32], %o2 ! encoding: [0xd4,0x06,0x20,0x20]
|
||||
ld [%i0 + 32], %o2
|
||||
! CHECK: ld [%g1], %o2 ! encoding: [0xd4,0x00,0x40,0x00]
|
||||
ld [%g1], %o2
|
||||
! CHECK: lda [%i0+%l6] 131, %o2 ! encoding: [0xd4,0x86,0x10,0x76]
|
||||
lda [%i0 + %l6] 131, %o2
|
||||
|
||||
! CHECK: ldd [%i0+%l6], %o2 ! encoding: [0xd4,0x1e,0x00,0x16]
|
||||
ldd [%i0 + %l6], %o2
|
||||
! CHECK: ldd [%i0+32], %o2 ! encoding: [0xd4,0x1e,0x20,0x20]
|
||||
ldd [%i0 + 32], %o2
|
||||
! CHECK: ldd [%g1], %o2 ! encoding: [0xd4,0x18,0x40,0x00]
|
||||
ldd [%g1], %o2
|
||||
! CHECK: ldda [%i0+%l6] 131, %o2 ! encoding: [0xd4,0x9e,0x10,0x76]
|
||||
ldda [%i0 + %l6] 131, %o2
|
||||
|
||||
! CHECK: stb %o2, [%i0+%l6] ! encoding: [0xd4,0x2e,0x00,0x16]
|
||||
stb %o2, [%i0 + %l6]
|
||||
! CHECK: stb %o2, [%i0+32] ! encoding: [0xd4,0x2e,0x20,0x20]
|
||||
stb %o2, [%i0 + 32]
|
||||
! CHECK: stb %o2, [%g1] ! encoding: [0xd4,0x28,0x40,0x00]
|
||||
stb %o2, [%g1]
|
||||
! CHECK: stba %o2, [%i0+%l6] 131 ! encoding: [0xd4,0xae,0x10,0x76]
|
||||
stba %o2, [%i0 + %l6] 131
|
||||
|
||||
! CHECK: sth %o2, [%i0+%l6] ! encoding: [0xd4,0x36,0x00,0x16]
|
||||
sth %o2, [%i0 + %l6]
|
||||
! CHECK: sth %o2, [%i0+32] ! encoding: [0xd4,0x36,0x20,0x20]
|
||||
sth %o2, [%i0 + 32]
|
||||
! CHECK: sth %o2, [%g1] ! encoding: [0xd4,0x30,0x40,0x00]
|
||||
sth %o2, [%g1]
|
||||
! CHECK: stha %o2, [%i0+%l6] 131 ! encoding: [0xd4,0xb6,0x10,0x76]
|
||||
stha %o2, [%i0 + %l6] 131
|
||||
|
||||
! CHECK: st %o2, [%i0+%l6] ! encoding: [0xd4,0x26,0x00,0x16]
|
||||
st %o2, [%i0 + %l6]
|
||||
! CHECK: st %o2, [%i0+32] ! encoding: [0xd4,0x26,0x20,0x20]
|
||||
st %o2, [%i0 + 32]
|
||||
! CHECK: st %o2, [%g1] ! encoding: [0xd4,0x20,0x40,0x00]
|
||||
st %o2, [%g1]
|
||||
! CHECK: sta %o2, [%i0+%l6] 131 ! encoding: [0xd4,0xa6,0x10,0x76]
|
||||
sta %o2, [%i0 + %l6] 131
|
||||
|
||||
! CHECK: std %o2, [%i0+%l6] ! encoding: [0xd4,0x3e,0x00,0x16]
|
||||
std %o2, [%i0 + %l6]
|
||||
! CHECK: std %o2, [%i0+32] ! encoding: [0xd4,0x3e,0x20,0x20]
|
||||
std %o2, [%i0 + 32]
|
||||
! CHECK: std %o2, [%g1] ! encoding: [0xd4,0x38,0x40,0x00]
|
||||
std %o2, [%g1]
|
||||
! CHECK: stda %o2, [%i0+%l6] 131 ! encoding: [0xd4,0xbe,0x10,0x76]
|
||||
stda %o2, [%i0 + %l6] 131
|
||||
|
||||
! CHECK: flush %g1+%g2 ! encoding: [0x81,0xd8,0x40,0x02]
|
||||
flush %g1 + %g2
|
||||
! CHECK: flush %g1+8 ! encoding: [0x81,0xd8,0x60,0x08]
|
||||
flush %g1 + 8
|
||||
! CHECK: flush %g1 ! encoding: [0x81,0xd8,0x40,0x00]
|
||||
flush %g1
|
||||
! Not specified in manual, but accepted by gas.
|
||||
! CHECK: flush %g0 ! encoding: [0x81,0xd8,0x00,0x00]
|
||||
flush
|
11
external/llvm/test/MC/Sparc/sparc-nop-data.s
vendored
11
external/llvm/test/MC/Sparc/sparc-nop-data.s
vendored
@ -1,11 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -filetype=obj | llvm-readobj -s -sd | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -filetype=obj | llvm-readobj -s -sd | FileCheck %s
|
||||
|
||||
! CHECK: 0000: BA1F401D 01000000 01000000 01000000
|
||||
! CHECK: 0010: BA1F401D
|
||||
|
||||
foo:
|
||||
xor %i5, %i5, %i5
|
||||
.align 16
|
||||
xor %i5, %i5, %i5
|
||||
|
80
external/llvm/test/MC/Sparc/sparc-pic.s
vendored
80
external/llvm/test/MC/Sparc/sparc-pic.s
vendored
@ -1,80 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparcv9 --position-independent -filetype=obj | llvm-readobj -r | FileCheck --check-prefix=PIC %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -filetype=obj | llvm-readobj -r | FileCheck --check-prefix=NOPIC %s
|
||||
|
||||
|
||||
! PIC: Relocations [
|
||||
! PIC-NOT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 .text 0xC
|
||||
! PIC: 0x{{[0-9,A-F]+}} R_SPARC_PC22 _GLOBAL_OFFSET_TABLE_ 0x4
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x8
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC22 _GLOBAL_OFFSET_TABLE_ 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 .LC0 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 .LC0 0x0
|
||||
! PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0
|
||||
! PIC: ]
|
||||
|
||||
! NOPIC: Relocations [
|
||||
! NOPIC-NOT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 .text 0xC
|
||||
! NOPIC: 0x{{[0-9,A-F]+}} R_SPARC_HI22 _GLOBAL_OFFSET_TABLE_ 0x4
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_LO10 _GLOBAL_OFFSET_TABLE_ 0x8
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_HI22 _GLOBAL_OFFSET_TABLE_ 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_LO10 _GLOBAL_OFFSET_TABLE_ 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_HI22 AGlobalVar 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_LO10 AGlobalVar 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_HI22 AGlobalVar 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_LO10 AGlobalVar 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_HI22 .rodata 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_LO10 .rodata 0x0
|
||||
! NOPIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WDISP30 bar 0x0
|
||||
! NOPIC: ]
|
||||
|
||||
.section ".rodata"
|
||||
.align 8
|
||||
.LC0:
|
||||
.asciz "string"
|
||||
.section ".text"
|
||||
.text
|
||||
.globl foo
|
||||
.align 4
|
||||
.type foo,@function
|
||||
foo:
|
||||
.cfi_startproc
|
||||
save %sp, -176, %sp
|
||||
.cfi_def_cfa_register %fp
|
||||
.cfi_window_save
|
||||
.cfi_register 15, 31
|
||||
.Ltmp4:
|
||||
call .Ltmp5
|
||||
.Ltmp6:
|
||||
sethi %hi(_GLOBAL_OFFSET_TABLE_+(.Ltmp6-.Ltmp4)), %i1
|
||||
.Ltmp5:
|
||||
or %i1, %lo(_GLOBAL_OFFSET_TABLE_+(.Ltmp5-.Ltmp4)), %i1
|
||||
set _GLOBAL_OFFSET_TABLE_, %i1
|
||||
add %i1, %o7, %i1
|
||||
sethi %hi(AGlobalVar), %i2
|
||||
add %i2, %lo(AGlobalVar), %i2
|
||||
set AGlobalVar, %i2
|
||||
ldx [%i1+%i2], %i3
|
||||
ldx [%i3], %i3
|
||||
sethi %hi(.LC0), %i2
|
||||
add %i2, %lo(.LC0), %i2
|
||||
ldx [%i1+%i2], %i4
|
||||
call bar
|
||||
add %i0, %i1, %o0
|
||||
ret
|
||||
restore %g0, %o0, %o0
|
||||
.Ltmp7:
|
||||
.size foo, .Ltmp7-foo
|
||||
.cfi_endproc
|
||||
|
||||
.type AGlobalVar,@object ! @AGlobalVar
|
||||
.section .bss,#alloc,#write
|
||||
.globl AGlobalVar
|
||||
.align 8
|
||||
AGlobalVar:
|
||||
.xword 0 ! 0x0
|
||||
.size AGlobalVar, 8
|
46
external/llvm/test/MC/Sparc/sparc-relocations.s
vendored
46
external/llvm/test/MC/Sparc/sparc-relocations.s
vendored
@ -1,46 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -filetype=obj | llvm-readobj -r | FileCheck %s --check-prefix=CHECK-OBJ
|
||||
|
||||
! CHECK-OBJ: Format: ELF64-sparc
|
||||
! CHECK-OBJ: Relocations [
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_WDISP30 foo
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_LO10 sym
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_HI22 sym
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_H44 sym
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_M44 sym
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_L44 sym
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_HH22 sym
|
||||
! CHECK-OBJ: 0x{{[0-9,A-F]+}} R_SPARC_HM10 sym
|
||||
! CHECK-ELF: ]
|
||||
|
||||
! 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
|
@ -1,56 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: rd %y, %i0 ! encoding: [0xb1,0x40,0x00,0x00]
|
||||
rd %y, %i0
|
||||
|
||||
! CHECK: rd %asr1, %i0 ! encoding: [0xb1,0x40,0x40,0x00]
|
||||
rd %asr1, %i0
|
||||
|
||||
! CHECK: wr %i0, 5, %y ! encoding: [0x81,0x86,0x20,0x05]
|
||||
wr %i0, 5, %y
|
||||
|
||||
! CHECK: wr %i0, %i1, %asr15 ! encoding: [0x9f,0x86,0x00,0x19]
|
||||
wr %i0, %i1, %asr15
|
||||
|
||||
! CHECK: rd %asr15, %g0 ! encoding: [0x81,0x43,0xc0,0x00]
|
||||
rd %asr15, %g0
|
||||
|
||||
! CHECK: rd %psr, %i0 ! encoding: [0xb1,0x48,0x00,0x00]
|
||||
rd %psr, %i0
|
||||
|
||||
! CHECK: rd %wim, %i0 ! encoding: [0xb1,0x50,0x00,0x00]
|
||||
rd %wim, %i0
|
||||
|
||||
! CHECK: rd %tbr, %i0 ! encoding: [0xb1,0x58,0x00,0x00]
|
||||
rd %tbr, %i0
|
||||
|
||||
! CHECK: wr %i0, 5, %psr ! encoding: [0x81,0x8e,0x20,0x05]
|
||||
wr %i0, 5, %psr
|
||||
|
||||
! CHECK: wr %i0, 5, %wim ! encoding: [0x81,0x96,0x20,0x05]
|
||||
wr %i0, 5, %wim
|
||||
|
||||
! CHECK: wr %i0, 5, %tbr ! encoding: [0x81,0x9e,0x20,0x05]
|
||||
wr %i0, 5, %tbr
|
||||
|
||||
! CHECK: rd %asr6, %i0 ! encoding: [0xb1,0x41,0x80,0x00]
|
||||
rd %fprs, %i0
|
||||
|
||||
! CHECK: wr %i0, 7, %asr6 ! encoding: [0x8d,0x86,0x20,0x07]
|
||||
wr %i0, 7, %fprs
|
||||
|
||||
! CHECK: ld [%g2+20], %fsr ! encoding: [0xc1,0x08,0xa0,0x14]
|
||||
ld [%g2 + 20],%fsr
|
||||
|
||||
! CHECK: ld [%g2+%i5], %fsr ! encoding: [0xc1,0x08,0x80,0x1d]
|
||||
ld [%g2 + %i5],%fsr
|
||||
|
||||
! CHECK: st %fsr, [%g2+20] ! encoding: [0xc1,0x28,0xa0,0x14]
|
||||
st %fsr,[%g2 + 20]
|
||||
|
||||
! CHECK: st %fsr, [%g2+%i5] ! encoding: [0xc1,0x28,0x80,0x1d]
|
||||
st %fsr,[%g2 + %i5]
|
||||
|
||||
! CHECK: std %fq, [%g6+%i2] ! encoding: [0xc1,0x31,0x80,0x1a]
|
||||
std %fq, [%g6 + %i2]
|
@ -1,213 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
|
||||
|
||||
! Section A.3 Synthetic Instructions
|
||||
! CHECK: cmp %g1, %g2 ! encoding: [0x80,0xa0,0x40,0x02]
|
||||
cmp %g1, %g2
|
||||
! CHECK: cmp %g1, 5 ! encoding: [0x80,0xa0,0x60,0x05]
|
||||
cmp %g1, 5
|
||||
|
||||
! jmp and call are tested in sparc-ctrl-instructions.
|
||||
|
||||
! CHECK: tst %g1 ! encoding: [0x80,0x90,0x40,0x00]
|
||||
tst %g1
|
||||
|
||||
! CHECK: ret ! encoding: [0x81,0xc7,0xe0,0x08]
|
||||
ret
|
||||
! CHECK: retl ! encoding: [0x81,0xc3,0xe0,0x08]
|
||||
retl
|
||||
|
||||
! CHECK: restore ! encoding: [0x81,0xe8,0x00,0x00]
|
||||
restore
|
||||
! CHECK: save ! encoding: [0x81,0xe0,0x00,0x00]
|
||||
save
|
||||
|
||||
! CHECK: sethi %hi(40000), %g1 ! encoding: [0x03,0b00AAAAAA,A,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %hi(40000), kind: fixup_sparc_hi22
|
||||
! CHECK: or %g1, %lo(40000), %g1 ! encoding: [0x82,0x10,0b011000AA,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %lo(40000), kind: fixup_sparc_lo10
|
||||
set 40000, %g1
|
||||
! CHECK: mov 1, %g1 ! encoding: [0x82,0x10,0x20,0x01]
|
||||
set 1, %g1
|
||||
! CHECK: sethi %hi(32768), %g1 ! encoding: [0x03,0b00AAAAAA,A,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %hi(32768), kind: fixup_sparc_hi22
|
||||
set 32768, %g1
|
||||
|
||||
! Expect a 'sethi' without an 'or'.
|
||||
! CHECK: sethi %hi(268431360), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %hi(268431360), kind: fixup_sparc_hi22
|
||||
set 0x0ffff000, %o1
|
||||
|
||||
! CHECK: sethi %hi(268433408), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %hi(268433408), kind: fixup_sparc_hi22
|
||||
set 0x0ffff800, %o1
|
||||
|
||||
! This is the boundary case that uses the lowest of the 22 bits in sethi.
|
||||
! CHECK: sethi %hi(268434432), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %hi(268434432), kind: fixup_sparc_hi22
|
||||
set 0x0ffffc00, %o1
|
||||
|
||||
! Now the synthetic instruction becomes two instructions.
|
||||
! CHECK: sethi %hi(2147483647), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %hi(2147483647), kind: fixup_sparc_hi22
|
||||
! CHECK: or %o1, %lo(2147483647), %o1 ! encoding: [0x92,0x12,0b011000AA,A]
|
||||
! CHECK: ! fixup A - offset: 0, value: %lo(2147483647), kind: fixup_sparc_lo10
|
||||
set 2147483647, %o1
|
||||
|
||||
! CHECK: xnor %g1, %g0, %g2 ! encoding: [0x84,0x38,0x40,0x00]
|
||||
not %g1, %g2
|
||||
! CHECK: xnor %g1, %g0, %g1 ! encoding: [0x82,0x38,0x40,0x00]
|
||||
not %g1
|
||||
|
||||
! CHECK: sub %g0, %g1, %g2 ! encoding: [0x84,0x20,0x00,0x01]
|
||||
neg %g1, %g2
|
||||
! CHECK: sub %g0, %g1, %g1 ! encoding: [0x82,0x20,0x00,0x01]
|
||||
neg %g1
|
||||
|
||||
! CHECK: add %g1, 1, %g1 ! encoding: [0x82,0x00,0x60,0x01]
|
||||
inc %g1
|
||||
! CHECK: add %g1, 55, %g1 ! encoding: [0x82,0x00,0x60,0x37]
|
||||
inc 55, %g1
|
||||
! CHECK: addcc %g1, 1, %g1 ! encoding: [0x82,0x80,0x60,0x01]
|
||||
inccc %g1
|
||||
! CHECK: addcc %g1, 55, %g1 ! encoding: [0x82,0x80,0x60,0x37]
|
||||
inccc 55, %g1
|
||||
|
||||
! CHECK: sub %g1, 1, %g1 ! encoding: [0x82,0x20,0x60,0x01]
|
||||
dec %g1
|
||||
! CHECK: sub %g1, 55, %g1 ! encoding: [0x82,0x20,0x60,0x37]
|
||||
dec 55, %g1
|
||||
! CHECK: subcc %g1, 1, %g1 ! encoding: [0x82,0xa0,0x60,0x01]
|
||||
deccc %g1
|
||||
! CHECK: subcc %g1, 55, %g1 ! encoding: [0x82,0xa0,0x60,0x37]
|
||||
deccc 55, %g1
|
||||
|
||||
! CHECK: andcc %g2, %g1, %g0 ! encoding: [0x80,0x88,0x80,0x01]
|
||||
btst %g1, %g2
|
||||
! CHECK: andcc %g2, 4, %g0 ! encoding: [0x80,0x88,0xa0,0x04]
|
||||
btst 4, %g2
|
||||
! CHECK: or %g2, %g1, %g2 ! encoding: [0x84,0x10,0x80,0x01]
|
||||
bset %g1, %g2
|
||||
! CHECK: or %g2, 4, %g2 ! encoding: [0x84,0x10,0xa0,0x04]
|
||||
bset 4, %g2
|
||||
! CHECK: andn %g2, %g1, %g2 ! encoding: [0x84,0x28,0x80,0x01]
|
||||
bclr %g1, %g2
|
||||
! CHECK: andn %g2, 4, %g2 ! encoding: [0x84,0x28,0xa0,0x04]
|
||||
bclr 4, %g2
|
||||
! CHECK: xor %g2, %g1, %g2 ! encoding: [0x84,0x18,0x80,0x01]
|
||||
btog %g1, %g2
|
||||
! CHECK: xor %g2, 4, %g2 ! encoding: [0x84,0x18,0xa0,0x04]
|
||||
btog 4, %g2
|
||||
|
||||
! CHECK: mov %g0, %g1 ! encoding: [0x82,0x10,0x00,0x00]
|
||||
clr %g1
|
||||
! CHECK: stb %g0, [%g1+%g2] ! encoding: [0xc0,0x28,0x40,0x02]
|
||||
clrb [%g1+%g2]
|
||||
! CHECK: sth %g0, [%g1+%g2] ! encoding: [0xc0,0x30,0x40,0x02]
|
||||
clrh [%g1+%g2]
|
||||
! CHECK: st %g0, [%g1+%g2] ! encoding: [0xc0,0x20,0x40,0x02]
|
||||
clr [%g1+%g2]
|
||||
|
||||
! mov reg_or_imm,reg tested in sparc-alu-instructions.s
|
||||
|
||||
! CHECK: rd %y, %i0 ! encoding: [0xb1,0x40,0x00,0x00]
|
||||
mov %y, %i0
|
||||
! CHECK: rd %asr1, %i0 ! encoding: [0xb1,0x40,0x40,0x00]
|
||||
mov %asr1, %i0
|
||||
! CHECK: rd %psr, %i0 ! encoding: [0xb1,0x48,0x00,0x00]
|
||||
mov %psr, %i0
|
||||
! CHECK: rd %wim, %i0 ! encoding: [0xb1,0x50,0x00,0x00]
|
||||
mov %wim, %i0
|
||||
! CHECK: rd %tbr, %i0 ! encoding: [0xb1,0x58,0x00,0x00]
|
||||
mov %tbr, %i0
|
||||
|
||||
! CHECK: wr %g0, %i0, %y ! encoding: [0x81,0x80,0x00,0x18]
|
||||
mov %i0, %y
|
||||
! CHECK: wr %g0, 5, %y ! encoding: [0x81,0x80,0x20,0x05]
|
||||
mov 5, %y
|
||||
! CHECK: wr %g0, %i0, %asr15 ! encoding: [0x9f,0x80,0x00,0x18]
|
||||
mov %i0, %asr15
|
||||
! CHECK: wr %g0, 5, %asr15 ! encoding: [0x9f,0x80,0x20,0x05]
|
||||
mov 5, %asr15
|
||||
! CHECK: wr %g0, %i0, %psr ! encoding: [0x81,0x88,0x00,0x18]
|
||||
mov %i0, %psr
|
||||
! CHECK: wr %g0, 5, %psr ! encoding: [0x81,0x88,0x20,0x05]
|
||||
mov 5, %psr
|
||||
! CHECK: wr %g0, %i0, %wim ! encoding: [0x81,0x90,0x00,0x18]
|
||||
mov %i0, %wim
|
||||
! CHECK: wr %g0, 5, %wim ! encoding: [0x81,0x90,0x20,0x05]
|
||||
mov 5, %wim
|
||||
! CHECK: wr %g0, %i0, %tbr ! encoding: [0x81,0x98,0x00,0x18]
|
||||
mov %i0, %tbr
|
||||
! CHECK: wr %g0, 5, %tbr ! encoding: [0x81,0x98,0x20,0x05]
|
||||
mov 5, %tbr
|
||||
|
||||
! Other aliases
|
||||
! CHECK: wr %g0, %i0, %y ! encoding: [0x81,0x80,0x00,0x18]
|
||||
wr %i0, %y
|
||||
! CHECK: wr %g0, 5, %y ! encoding: [0x81,0x80,0x20,0x05]
|
||||
wr 5, %y
|
||||
! CHECK: wr %g0, %i0, %asr15 ! encoding: [0x9f,0x80,0x00,0x18]
|
||||
wr %i0, %asr15
|
||||
! CHECK: wr %g0, 5, %asr15 ! encoding: [0x9f,0x80,0x20,0x05]
|
||||
wr 5, %asr15
|
||||
! CHECK: wr %g0, %i0, %psr ! encoding: [0x81,0x88,0x00,0x18]
|
||||
wr %i0, %psr
|
||||
! CHECK: wr %g0, 5, %psr ! encoding: [0x81,0x88,0x20,0x05]
|
||||
wr 5, %psr
|
||||
! CHECK: wr %g0, %i0, %wim ! encoding: [0x81,0x90,0x00,0x18]
|
||||
wr %i0, %wim
|
||||
! CHECK: wr %g0, 5, %wim ! encoding: [0x81,0x90,0x20,0x05]
|
||||
wr 5, %wim
|
||||
! CHECK: wr %g0, %i0, %tbr ! encoding: [0x81,0x98,0x00,0x18]
|
||||
wr %i0, %tbr
|
||||
! CHECK: wr %g0, 5, %tbr ! encoding: [0x81,0x98,0x20,0x05]
|
||||
wr 5, %tbr
|
||||
|
||||
! The following tests exercise 'set' in such a way that its output differs
|
||||
! depending on whether targeting V8 or V9.
|
||||
!
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s --check-prefix=V8
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s --check-prefix=V9
|
||||
|
||||
! V8: mov -1, %o1 ! encoding: [0x92,0x10,0x3f,0xff]
|
||||
! V9: sethi %hi(-1), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V9: ! fixup A - offset: 0, value: %hi(-1), kind: fixup_sparc_hi22
|
||||
! V9: or %o1, %lo(-1), %o1 ! encoding: [0x92,0x12,0b011000AA,A]
|
||||
! V9: ! fixup A - offset: 0, value: %lo(-1), kind: fixup_sparc_lo10
|
||||
set 0xffffffff, %o1
|
||||
|
||||
! V8: mov -2, %o1 ! encoding: [0x92,0x10,0x3f,0xfe]
|
||||
! V9: sethi %hi(-2), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V9: ! fixup A - offset: 0, value: %hi(-2), kind: fixup_sparc_hi22
|
||||
! V9: or %o1, %lo(-2), %o1 ! encoding: [0x92,0x12,0b011000AA,A]
|
||||
! V9: ! fixup A - offset: 0, value: %lo(-2), kind: fixup_sparc_lo10
|
||||
set 0xfffffffe, %o1
|
||||
|
||||
! V8: mov -16, %o1 ! encoding: [0x92,0x10,0x3f,0xf0]
|
||||
! V9: sethi %hi(-16), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V9: ! fixup A - offset: 0, value: %hi(-16), kind: fixup_sparc_hi22
|
||||
! V9: or %o1, %lo(-16), %o1 ! encoding: [0x92,0x12,0b011000AA,A]
|
||||
! V9: ! fixup A - offset: 0, value: %lo(-16), kind: fixup_sparc_lo10
|
||||
set 0xfffffff0, %o1
|
||||
|
||||
! V8: mov -256, %o1 ! encoding: [0x92,0x10,0x3f,0x00]
|
||||
! V9: sethi %hi(-256), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V9: ! fixup A - offset: 0, value: %hi(-256), kind: fixup_sparc_hi22
|
||||
! V9: or %o1, %lo(-256), %o1 ! encoding: [0x92,0x12,0b011000AA,A]
|
||||
! V9: ! fixup A - offset: 0, value: %lo(-256), kind: fixup_sparc_lo10
|
||||
set 0xffffff00, %o1
|
||||
|
||||
! V8: mov -4096, %o1 ! encoding: [0x92,0x10,0x30,0x00]
|
||||
! V9: sethi %hi(-4096), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V9: ! fixup A - offset: 0, value: %hi(-4096), kind: fixup_sparc_hi22
|
||||
set 0xfffff000, %o1
|
||||
|
||||
! These results are the same for V8 and V9, so this test could have
|
||||
! been with the others that weren't segregated by architecture,
|
||||
! but logically it belongs here as a boundary case.
|
||||
! V8: sethi %hi(-8192), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V8: ! fixup A - offset: 0, value: %hi(-8192), kind: fixup_sparc_hi22
|
||||
! V9: sethi %hi(-8192), %o1 ! encoding: [0x13,0b00AAAAAA,A,A]
|
||||
! V9: ! fixup A - offset: 0, value: %hi(-8192), kind: fixup_sparc_hi22
|
||||
set 0xffffe000, %o1
|
@ -1,83 +0,0 @@
|
||||
! Testing Sparc TLS relocations emission
|
||||
! (for now a couple local ones).
|
||||
!
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s --check-prefix=ASM
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s --check-prefix=ASM
|
||||
! RUN: llvm-mc %s -arch=sparc -filetype=obj | llvm-readobj -r | FileCheck %s --check-prefix=REL
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -filetype=obj | llvm-readobj -r | FileCheck %s --check-prefix=REL
|
||||
! RUN: llvm-mc %s -arch=sparc -filetype=obj | llvm-objdump -r -d - | FileCheck %s --check-prefix=OBJDUMP
|
||||
! RUN: llvm-mc %s -arch=sparcv9 -filetype=obj | llvm-objdump -r -d - | FileCheck %s --check-prefix=OBJDUMP
|
||||
|
||||
! REL: Arch: sparc
|
||||
! REL: Relocations [
|
||||
! REL: 0x{{[0-9,A-F]+}} R_SPARC_TLS_LE_HIX22 Head 0x0
|
||||
! REL: 0x{{[0-9,A-F]+}} R_SPARC_TLS_LE_LOX10 Head 0x0
|
||||
! REL: 0x{{[0-9,A-F]+}} R_SPARC_TLS_LDO_HIX22 Head 0x0
|
||||
! REL: 0x{{[0-9,A-F]+}} R_SPARC_TLS_LDM_HI22 Head 0x0
|
||||
! REL: 0x{{[0-9,A-F]+}} R_SPARC_TLS_LDM_LO10 Head 0x0
|
||||
! REL: 0x{{[0-9,A-F]+}} R_SPARC_TLS_LDO_LOX10 Head 0x0
|
||||
! REL: ]
|
||||
|
||||
|
||||
! OBJDUMP: foo:
|
||||
foo:
|
||||
! Here we use two different sequences to get the address of a static TLS variable 'Head'
|
||||
! (note - there is no intent to have valid assembler function here,
|
||||
! we just check how TLS relocations are emitted)
|
||||
!
|
||||
! First sequence uses LE_HIX22/LE_LOX10
|
||||
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: 31 00 00 00 sethi 0, %i0
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_HIX22 Unknown
|
||||
! ASM: sethi %tle_hix22(Head), %i0 ! encoding: [0x31,0x00,0x00,0x00]
|
||||
! ASM: ! fixup A - offset: 0, value: %tle_hix22(Head), kind: fixup_sparc_tls_le_hix22
|
||||
sethi %tle_hix22(Head), %i0
|
||||
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: b0 1e 20 00 xor %i0, 0, %i0
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LE_LOX10 Unknown
|
||||
! ASM: xor %i0, %tle_lox10(Head), %i0 ! encoding: [0xb0,0x1e,0x20,0x00]
|
||||
! ASM: ! fixup A - offset: 0, value: %tle_lox10(Head), kind: fixup_sparc_tls_le_lox10
|
||||
xor %i0, %tle_lox10(Head), %i0
|
||||
|
||||
|
||||
! Second sequence is for PIC, so it is more complicated.
|
||||
! It uses LDO_HIX22/LDO_LOX10/LDO_ADD/LDM_HI22/LDM_LO10/LDM_ADD/LDM_CALL
|
||||
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: 33 00 00 00 sethi 0, %i1
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_HIX22 Unknown
|
||||
! ASM: sethi %tldo_hix22(Head), %i1 ! encoding: [0x33,0b00AAAAAA,A,A]
|
||||
! ASM: ! fixup A - offset: 0, value: %tldo_hix22(Head), kind: fixup_sparc_tls_ldo_hix22
|
||||
sethi %tldo_hix22(Head), %i1
|
||||
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: 35 00 00 00 sethi 0, %i2
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_HI22 Unknown
|
||||
! ASM: sethi %tldm_hi22(Head), %i2 ! encoding: [0x35,0b00AAAAAA,A,A]
|
||||
! ASM: ! fixup A - offset: 0, value: %tldm_hi22(Head), kind: fixup_sparc_tls_ldm_hi22
|
||||
sethi %tldm_hi22(Head), %i2
|
||||
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: b4 06 a0 00 add %i2, 0, %i2
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDM_LO10 Unknown
|
||||
! ASM: add %i2, %tldm_lo10(Head), %i2 ! encoding: [0xb4,0x06,0b101000AA,A]
|
||||
! ASM: ! fixup A - offset: 0, value: %tldm_lo10(Head), kind: fixup_sparc_tls_ldm_lo10
|
||||
add %i2, %tldm_lo10(Head), %i2
|
||||
|
||||
! ???error from llvm-mc on the next asm line???
|
||||
! add %i0, %i2, %o0, %tldm_add(Head)
|
||||
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: b0 1e 60 00 xor %i1, 0, %i0
|
||||
! OBJDUMP: {{[0-9,a-f]+}}: R_SPARC_TLS_LDO_LOX10 Unknown
|
||||
! ASM: xor %i1, %tldo_lox10(Head), %i0 ! encoding: [0xb0,0x1e,0b011000AA,A]
|
||||
! ASM: ! fixup A - offset: 0, value: %tldo_lox10(Head), kind: fixup_sparc_tls_ldo_lox10
|
||||
xor %i1, %tldo_lox10(Head), %i0
|
||||
|
||||
! ???error from llvm-mc on the next asm line???
|
||||
! call __tls_get_addr, %tldm_call(Head)
|
||||
! nop
|
||||
! ???error from llvm-mc on the next asm line???
|
||||
! add %o0, %i0, %i0, %tldo_add(Head)
|
||||
|
||||
.type Head,@object
|
||||
.section .tbss,#alloc,#write,#tls
|
||||
Head:
|
||||
.word 0
|
||||
.size Head, 4
|
151
external/llvm/test/MC/Sparc/sparc-traps.s
vendored
151
external/llvm/test/MC/Sparc/sparc-traps.s
vendored
@ -1,151 +0,0 @@
|
||||
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
|
||||
|
||||
! CHECK: ta %i5 ! encoding: [0x91,0xd0,0x00,0x1d]
|
||||
! CHECK: ta 82 ! encoding: [0x91,0xd0,0x20,0x52]
|
||||
! CHECK: ta %g1 + %i2 ! encoding: [0x91,0xd0,0x40,0x1a]
|
||||
! CHECK: ta %i5 + 41 ! encoding: [0x91,0xd7,0x60,0x29]
|
||||
ta %i5
|
||||
ta 82
|
||||
ta %g1 + %i2
|
||||
ta %i5 + 41
|
||||
|
||||
! CHECK: tn %i5 ! encoding: [0x81,0xd0,0x00,0x1d]
|
||||
! CHECK: tn 82 ! encoding: [0x81,0xd0,0x20,0x52]
|
||||
! CHECK: tn %g1 + %i2 ! encoding: [0x81,0xd0,0x40,0x1a]
|
||||
! CHECK: tn %i5 + 41 ! encoding: [0x81,0xd7,0x60,0x29]
|
||||
tn %i5
|
||||
tn 82
|
||||
tn %g1 + %i2
|
||||
tn %i5 + 41
|
||||
|
||||
! CHECK: tne %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
|
||||
!! tnz should be a synonym for tne
|
||||
! CHECK: tne %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
|
||||
! CHECK: tne 82 ! encoding: [0x93,0xd0,0x20,0x52]
|
||||
! CHECK: tne %g1 + %i2 ! encoding: [0x93,0xd0,0x40,0x1a]
|
||||
! CHECK: tne %i5 + 41 ! encoding: [0x93,0xd7,0x60,0x29]
|
||||
tne %i5
|
||||
tnz %i5
|
||||
tne 82
|
||||
tne %g1 + %i2
|
||||
tne %i5 + 41
|
||||
|
||||
! CHECK: te %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
|
||||
!! tz should be a synonym for te
|
||||
! CHECK: te %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
|
||||
! CHECK: te 82 ! encoding: [0x83,0xd0,0x20,0x52]
|
||||
! CHECK: te %g1 + %i2 ! encoding: [0x83,0xd0,0x40,0x1a]
|
||||
! CHECK: te %i5 + 41 ! encoding: [0x83,0xd7,0x60,0x29]
|
||||
te %i5
|
||||
tz %i5
|
||||
te 82
|
||||
te %g1 + %i2
|
||||
te %i5 + 41
|
||||
|
||||
! CHECK: tg %i5 ! encoding: [0x95,0xd0,0x00,0x1d]
|
||||
! CHECK: tg 82 ! encoding: [0x95,0xd0,0x20,0x52]
|
||||
! CHECK: tg %g1 + %i2 ! encoding: [0x95,0xd0,0x40,0x1a]
|
||||
! CHECK: tg %i5 + 41 ! encoding: [0x95,0xd7,0x60,0x29]
|
||||
tg %i5
|
||||
tg 82
|
||||
tg %g1 + %i2
|
||||
tg %i5 + 41
|
||||
|
||||
! CHECK: tle %i5 ! encoding: [0x85,0xd0,0x00,0x1d]
|
||||
! CHECK: tle 82 ! encoding: [0x85,0xd0,0x20,0x52]
|
||||
! CHECK: tle %g1 + %i2 ! encoding: [0x85,0xd0,0x40,0x1a]
|
||||
! CHECK: tle %i5 + 41 ! encoding: [0x85,0xd7,0x60,0x29]
|
||||
tle %i5
|
||||
tle 82
|
||||
tle %g1 + %i2
|
||||
tle %i5 + 41
|
||||
|
||||
! CHECK: tge %i5 ! encoding: [0x97,0xd0,0x00,0x1d]
|
||||
! CHECK: tge 82 ! encoding: [0x97,0xd0,0x20,0x52]
|
||||
! CHECK: tge %g1 + %i2 ! encoding: [0x97,0xd0,0x40,0x1a]
|
||||
! CHECK: tge %i5 + 41 ! encoding: [0x97,0xd7,0x60,0x29]
|
||||
tge %i5
|
||||
tge 82
|
||||
tge %g1 + %i2
|
||||
tge %i5 + 41
|
||||
|
||||
! CHECK: tl %i5 ! encoding: [0x87,0xd0,0x00,0x1d]
|
||||
! CHECK: tl 82 ! encoding: [0x87,0xd0,0x20,0x52]
|
||||
! CHECK: tl %g1 + %i2 ! encoding: [0x87,0xd0,0x40,0x1a]
|
||||
! CHECK: tl %i5 + 41 ! encoding: [0x87,0xd7,0x60,0x29]
|
||||
tl %i5
|
||||
tl 82
|
||||
tl %g1 + %i2
|
||||
tl %i5 + 41
|
||||
|
||||
! CHECK: tgu %i5 ! encoding: [0x99,0xd0,0x00,0x1d]
|
||||
! CHECK: tgu 82 ! encoding: [0x99,0xd0,0x20,0x52]
|
||||
! CHECK: tgu %g1 + %i2 ! encoding: [0x99,0xd0,0x40,0x1a]
|
||||
! CHECK: tgu %i5 + 41 ! encoding: [0x99,0xd7,0x60,0x29]
|
||||
tgu %i5
|
||||
tgu 82
|
||||
tgu %g1 + %i2
|
||||
tgu %i5 + 41
|
||||
|
||||
! CHECK: tleu %i5 ! encoding: [0x89,0xd0,0x00,0x1d]
|
||||
! CHECK: tleu 82 ! encoding: [0x89,0xd0,0x20,0x52]
|
||||
! CHECK: tleu %g1 + %i2 ! encoding: [0x89,0xd0,0x40,0x1a]
|
||||
! CHECK: tleu %i5 + 41 ! encoding: [0x89,0xd7,0x60,0x29]
|
||||
tleu %i5
|
||||
tleu 82
|
||||
tleu %g1 + %i2
|
||||
tleu %i5 + 41
|
||||
|
||||
! CHECK: tcc %i5 ! encoding: [0x9b,0xd0,0x00,0x1d]
|
||||
! CHECK: tcc 82 ! encoding: [0x9b,0xd0,0x20,0x52]
|
||||
! CHECK: tcc %g1 + %i2 ! encoding: [0x9b,0xd0,0x40,0x1a]
|
||||
! CHECK: tcc %i5 + 41 ! encoding: [0x9b,0xd7,0x60,0x29]
|
||||
tcc %i5
|
||||
tcc 82
|
||||
tcc %g1 + %i2
|
||||
tcc %i5 + 41
|
||||
|
||||
! CHECK: tcs %i5 ! encoding: [0x8b,0xd0,0x00,0x1d]
|
||||
! CHECK: tcs 82 ! encoding: [0x8b,0xd0,0x20,0x52]
|
||||
! CHECK: tcs %g1 + %i2 ! encoding: [0x8b,0xd0,0x40,0x1a]
|
||||
! CHECK: tcs %i5 + 41 ! encoding: [0x8b,0xd7,0x60,0x29]
|
||||
tcs %i5
|
||||
tcs 82
|
||||
tcs %g1 + %i2
|
||||
tcs %i5 + 41
|
||||
|
||||
! CHECK: tpos %i5 ! encoding: [0x9d,0xd0,0x00,0x1d]
|
||||
! CHECK: tpos 82 ! encoding: [0x9d,0xd0,0x20,0x52]
|
||||
! CHECK: tpos %g1 + %i2 ! encoding: [0x9d,0xd0,0x40,0x1a]
|
||||
! CHECK: tpos %i5 + 41 ! encoding: [0x9d,0xd7,0x60,0x29]
|
||||
tpos %i5
|
||||
tpos 82
|
||||
tpos %g1 + %i2
|
||||
tpos %i5 + 41
|
||||
|
||||
! CHECK: tneg %i5 ! encoding: [0x8d,0xd0,0x00,0x1d]
|
||||
! CHECK: tneg 82 ! encoding: [0x8d,0xd0,0x20,0x52]
|
||||
! CHECK: tneg %g1 + %i2 ! encoding: [0x8d,0xd0,0x40,0x1a]
|
||||
! CHECK: tneg %i5 + 41 ! encoding: [0x8d,0xd7,0x60,0x29]
|
||||
tneg %i5
|
||||
tneg 82
|
||||
tneg %g1 + %i2
|
||||
tneg %i5 + 41
|
||||
|
||||
! CHECK: tvc %i5 ! encoding: [0x9f,0xd0,0x00,0x1d]
|
||||
! CHECK: tvc 82 ! encoding: [0x9f,0xd0,0x20,0x52]
|
||||
! CHECK: tvc %g1 + %i2 ! encoding: [0x9f,0xd0,0x40,0x1a]
|
||||
! CHECK: tvc %i5 + 41 ! encoding: [0x9f,0xd7,0x60,0x29]
|
||||
tvc %i5
|
||||
tvc 82
|
||||
tvc %g1 + %i2
|
||||
tvc %i5 + 41
|
||||
|
||||
! CHECK: tvs %i5 ! encoding: [0x8f,0xd0,0x00,0x1d]
|
||||
! CHECK: tvs 82 ! encoding: [0x8f,0xd0,0x20,0x52]
|
||||
! CHECK: tvs %g1 + %i2 ! encoding: [0x8f,0xd0,0x40,0x1a]
|
||||
! CHECK: tvs %i5 + 41 ! encoding: [0x8f,0xd7,0x60,0x29]
|
||||
tvs %i5
|
||||
tvs 82
|
||||
tvs %g1 + %i2
|
||||
tvs %i5 + 41
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user