aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-07-18 04:54:58 +0000
committerFangrui Song <maskray@google.com>2019-07-18 04:54:58 +0000
commitb882c8bae390b434129cff6acbf6ae7dff63ac69 (patch)
tree675de0bfae6a4afecdecc3df1a85ecf73fb6b4ae
parent043712f778c8be73973138c0cffc09690dc78aaa (diff)
[ELF][test] Merge/rename some basic*.s tests
basic64be.s is a big-endian powerpc64 test that just duplicates what basic-ppc64.s does. Extend basic-ppc64.s to add big-endian tests. Delete basic64be.s Rename basic32.s to basic-i386.s git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@366401 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/ELF/basic-i386.s (renamed from test/ELF/basic32.s)6
-rw-r--r--test/ELF/basic-ppc64.s56
-rw-r--r--test/ELF/basic64be.s217
3 files changed, 40 insertions, 239 deletions
diff --git a/test/ELF/basic32.s b/test/ELF/basic-i386.s
index 059cbf932..1f37e7adc 100644
--- a/test/ELF/basic32.s
+++ b/test/ELF/basic-i386.s
@@ -1,7 +1,7 @@
# REQUIRES: x86
-# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t
-# RUN: ld.lld %t -o %t2
-# RUN: llvm-readobj --file-headers --sections -l %t2 | FileCheck %s
+# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o
+# RUN: ld.lld %t.o -o %t
+# RUN: llvm-readobj --file-headers --sections -l %t | FileCheck %s
# exits with return code 42 on linux
.globl _start
diff --git a/test/ELF/basic-ppc64.s b/test/ELF/basic-ppc64.s
index 3dd54debe..cab130212 100644
--- a/test/ELF/basic-ppc64.s
+++ b/test/ELF/basic-ppc64.s
@@ -1,7 +1,12 @@
# REQUIRES: ppc
-# # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t
-# RUN: ld.lld --hash-style=sysv -discard-all -shared %t -o %t2
-# RUN: llvm-readobj --file-headers --sections --section-data -l %t2 | FileCheck %s
+# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t.o
+# RUN: ld.lld --hash-style=sysv -discard-all -shared %t.o -o %t.so
+# RUN: llvm-readobj --file-headers --sections --section-data -l %t.so | FileCheck --check-prefixes=CHECK,LE %s
+
+# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t.o
+# RUN: ld.lld --hash-style=sysv -discard-all -shared %t.o -o %t.so
+# RUN: llvm-readobj --file-headers --sections --section-data -l %t.so | FileCheck --check-prefixes=CHECK,BE %s
+
.abiversion 2
# Exits with return code 55 on linux.
.text
@@ -10,14 +15,16 @@
sc
// CHECK:Format: ELF64-ppc64
-// CHECK-NEXT:Arch: powerpc64le
-// CHECK-NEXT:AddressSize: 64bit
-// CHECK-NEXT:LoadName:
-// CHECK-NEXT:ElfHeader {
+// LE-NEXT: Arch: powerpc64le
+// BE-NEXT: Arch: powerpc64{{$}}
+// CHECK-NEXT: AddressSize: 64bit
+// CHECK-NEXT: LoadName:
+// CHECK-NEXT: ElfHeader {
// CHECK-NEXT: Ident {
// CHECK-NEXT: Magic: (7F 45 4C 46)
// CHECK-NEXT: Class: 64-bit (0x2)
-// CHECK-NEXT: DataEncoding: LittleEndian (0x1)
+// LE-NEXT: DataEncoding: LittleEndian (0x1)
+// BE-NEXT: DataEncoding: BigEndian (0x2)
// CHECK-NEXT: FileVersion: 1
// CHECK-NEXT: OS/ABI: SystemV (0x0)
// CHECK-NEXT: ABIVersion: 0
@@ -90,7 +97,8 @@
// CHECK-NEXT: AddressAlignment: 4
// CHECK-NEXT: EntrySize: 4
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 01000000 01000000 00000000 00000000 |................|
+// LE-NEXT: 0000: 01000000 01000000 00000000 00000000
+// BE-NEXT: 0000: 00000001 00000001 00000000 00000000
// CHECK-NEXT: )
// CHECK-NEXT: }
// CHECK-NEXT: Section {
@@ -127,7 +135,8 @@
// CHECK-NEXT: AddressAlignment: 4
// CHECK-NEXT: EntrySize: 0
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 01000038 37006038 02000044 |...87.`8...D|
+// LE-NEXT: 0000: 01000038 37006038 02000044
+// BE-NEXT: 0000: 38000001 38600037 44000002
// CHECK-NEXT: )
// CHECK-NEXT: }
// CHECK-NEXT: Section {
@@ -146,12 +155,18 @@
// CHECK-NEXT: AddressAlignment: 8
// CHECK-NEXT: EntrySize: 16
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 06000000 00000000 00020000 00000000 |
-// CHECK-NEXT: 0010: 0B000000 00000000 18000000 00000000 |
-// CHECK-NEXT: 0020: 05000000 00000000 28020000 00000000 |
-// CHECK-NEXT: 0030: 0A000000 00000000 01000000 00000000 |
-// CHECK-NEXT: 0040: 04000000 00000000 18020000 00000000 |
-// CHECK-NEXT: 0050: 00000000 00000000 00000000 00000000 |
+// LE-NEXT: 0000: 06000000 00000000 00020000 00000000 |
+// LE-NEXT: 0010: 0B000000 00000000 18000000 00000000 |
+// LE-NEXT: 0020: 05000000 00000000 28020000 00000000 |
+// LE-NEXT: 0030: 0A000000 00000000 01000000 00000000 |
+// LE-NEXT: 0040: 04000000 00000000 18020000 00000000 |
+// LE-NEXT: 0050: 00000000 00000000 00000000 00000000 |
+// BE-NEXT: 0000: 00000000 00000006 00000000 00000200 |
+// BE-NEXT: 0010: 00000000 0000000B 00000000 00000018 |
+// BE-NEXT: 0020: 00000000 00000005 00000000 00000228 |
+// BE-NEXT: 0030: 00000000 0000000A 00000000 00000001 |
+// BE-NEXT: 0040: 00000000 00000004 00000000 00000218 |
+// BE-NEXT: 0050: 00000000 00000000 00000000 00000000 |
// CHECK-NEXT: )
// CHECK-NEXT: }
// CHECK-NEXT: Section {
@@ -203,9 +218,12 @@
// CHECK-NEXT: AddressAlignment: 8
// CHECK-NEXT: EntrySize: 24
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 00000000 00000000 00000000 00000000 |................|
-// CHECK-NEXT: 0010: 00000000 00000000 01000000 00020500 |................|
-// CHECK-NEXT: 0020: 00000200 00000000 00000000 00000000 |................|
+// LE-NEXT: 0000: 00000000 00000000 00000000 00000000 |................|
+// LE-NEXT: 0010: 00000000 00000000 01000000 00020500 |................|
+// LE-NEXT: 0020: 00000200 00000000 00000000 00000000 |................|
+// BE-NEXT: 0000: 00000000 00000000 00000000 00000000 |................|
+// BE-NEXT: 0010: 00000000 00000000 00000001 00020005 |................|
+// BE-NEXT: 0020: 00000000 00020000 00000000 00000000 |................|
// CHECK-NEXT: )
// CHECK-NEXT: }
// CHECK-NEXT: Section {
diff --git a/test/ELF/basic64be.s b/test/ELF/basic64be.s
deleted file mode 100644
index fa53406ab..000000000
--- a/test/ELF/basic64be.s
+++ /dev/null
@@ -1,217 +0,0 @@
-# REQUIRES: ppc
-# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t
-# RUN: ld.lld -discard-all %t -o %t2
-# RUN: llvm-readobj --file-headers --sections --section-data -l %t2 | FileCheck %s
-
-# exits with return code 42 on linux
-.text
- li 0,1
- li 3,42
- sc
-# CHECK: ElfHeader {
-# CHECK-NEXT: Ident {
-# CHECK-NEXT: Magic: (7F 45 4C 46)
-# CHECK-NEXT: Class: 64-bit (0x2)
-# CHECK-NEXT: DataEncoding: BigEndian (0x2)
-# CHECK-NEXT: FileVersion: 1
-# CHECK-NEXT: OS/ABI: SystemV (0x0)
-# CHECK-NEXT: ABIVersion: 0
-# CHECK-NEXT: Unused: (00 00 00 00 00 00 00)
-# CHECK-NEXT: }
-# CHECK-NEXT: Type: Executable (0x2)
-# CHECK-NEXT: Machine: EM_PPC64 (0x15)
-# CHECK-NEXT: Version: 1
-# CHECK-NEXT: Entry: 0x10010000
-# CHECK-NEXT: ProgramHeaderOffset: 0x40
-# CHECK-NEXT: SectionHeaderOffset: 0x20058
-# CHECK-NEXT: Flags [ (0x2)
-# CHECK-NEXT: 0x2
-# CHECK-NEXT: ]
-# CHECK-NEXT: HeaderSize: 64
-# CHECK-NEXT: ProgramHeaderEntrySize: 56
-# CHECK-NEXT: ProgramHeaderCount: 4
-# CHECK-NEXT: SectionHeaderEntrySize: 64
-# CHECK-NEXT: SectionHeaderCount: 7
-# CHECK-NEXT: StringTableSectionIndex: 5
-# CHECK-NEXT: }
-# CHECK-NEXT: Sections [
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 0
-# CHECK-NEXT: Name: (0)
-# CHECK-NEXT: Type: SHT_NULL (0x0)
-# CHECK-NEXT: Flags [ (0x0)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x0
-# CHECK-NEXT: Size: 0
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 0
-# CHECK-NEXT: EntrySize: 0
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 1
-# CHECK-NEXT: Name: .text (1)
-# CHECK-NEXT: Type: SHT_PROGBITS (0x1)
-# CHECK-NEXT: Flags [ (0x6)
-# CHECK-NEXT: SHF_ALLOC (0x2)
-# CHECK-NEXT: SHF_EXECINSTR (0x4)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x10010000
-# CHECK-NEXT: Offset: 0x10000
-# CHECK-NEXT: Size: 12
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 4
-# CHECK-NEXT: EntrySize: 0
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 38000001 3860002A 44000002 |8...8`.*D...|
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 2
-# CHECK-NEXT: Name: .branch_lt (7)
-# CHECK-NEXT: Type: SHT_PROGBITS (0x1)
-# CHECK-NEXT: Flags [ (0x3)
-# CHECK-NEXT: SHF_ALLOC (0x2)
-# CHECK-NEXT: SHF_WRITE (0x1)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x10020000
-# CHECK-NEXT: Offset: 0x20000
-# CHECK-NEXT: Size: 0
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 8
-# CHECK-NEXT: EntrySize: 0
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 3
-# CHECK-NEXT: Name: .comment (18)
-# CHECK-NEXT: Type: SHT_PROGBITS (0x1)
-# CHECK-NEXT: Flags [ (0x30)
-# CHECK-NEXT: SHF_MERGE (0x10)
-# CHECK-NEXT: SHF_STRINGS (0x20)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x20000
-# CHECK-NEXT: Size: 8
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 1
-# CHECK-NEXT: EntrySize: 1
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 4C4C4420 312E3000 |LLD 1.0.|
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 4
-# CHECK-NEXT: Name: .symtab (27)
-# CHECK-NEXT: Type: SHT_SYMTAB (0x2)
-# CHECK-NEXT: Flags [ (0x0)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x20008
-# CHECK-NEXT: Size: 24
-# CHECK-NEXT: Link: 6
-# CHECK-NEXT: Info: 1
-# CHECK-NEXT: AddressAlignment: 8
-# CHECK-NEXT: EntrySize: 24
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 00000000 00000000 00000000 00000000 |................|
-# CHECK-NEXT: 0010: 00000000 00000000 |........|
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 5
-# CHECK-NEXT: Name: .shstrtab (35)
-# CHECK-NEXT: Type: SHT_STRTAB (0x3)
-# CHECK-NEXT: Flags [ (0x0)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x20020
-# CHECK-NEXT: Size: 53
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 1
-# CHECK-NEXT: EntrySize: 0
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 002E7465 7874002E 6272616E 63685F6C |..text..branch_l|
-# CHECK-NEXT: 0010: 74002E63 6F6D6D65 6E74002E 73796D74 |t..comment..symt|
-# CHECK-NEXT: 0020: 6162002E 73687374 72746162 002E7374 |ab..shstrtab..st|
-# CHECK-NEXT: 0030: 72746162 00 |rtab.|
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: Section {
-# CHECK-NEXT: Index: 6
-# CHECK-NEXT: Name: .strtab (45)
-# CHECK-NEXT: Type: SHT_STRTAB (0x3)
-# CHECK-NEXT: Flags [ (0x0)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0x0
-# CHECK-NEXT: Offset: 0x20055
-# CHECK-NEXT: Size: 1
-# CHECK-NEXT: Link: 0
-# CHECK-NEXT: Info: 0
-# CHECK-NEXT: AddressAlignment: 1
-# CHECK-NEXT: EntrySize: 0
-# CHECK-NEXT: SectionData (
-# CHECK-NEXT: 0000: 00 |.|
-# CHECK-NEXT: )
-# CHECK-NEXT: }
-# CHECK-NEXT: ]
-# CHECK-NEXT: ProgramHeaders [
-# CHECK-NEXT: ProgramHeader {
-# CHECK-NEXT: Type: PT_PHDR (0x6)
-# CHECK-NEXT: Offset: 0x40
-# CHECK-NEXT: VirtualAddress: 0x10000040
-# CHECK-NEXT: PhysicalAddress: 0x10000040
-# CHECK-NEXT: FileSize: 280
-# CHECK-NEXT: MemSize: 280
-# CHECK-NEXT: Flags [ (0x4)
-# CHECK-NEXT: PF_R (0x4)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 8
-# CHECK-NEXT: }
-# CHECK-NEXT: ProgramHeader {
-# CHECK-NEXT: Type: PT_LOAD (0x1)
-# CHECK-NEXT: Offset: 0x0
-# CHECK-NEXT: VirtualAddress: 0x10000000
-# CHECK-NEXT: PhysicalAddress: 0x10000000
-# CHECK-NEXT: FileSize: 344
-# CHECK-NEXT: MemSize: 344
-# CHECK-NEXT: Flags [ (0x4)
-# CHECK-NEXT: PF_R (0x4)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 65536
-# CHECK-NEXT: }
-# CHECK-NEXT: ProgramHeader {
-# CHECK-NEXT: Type: PT_LOAD (0x1)
-# CHECK-NEXT: Offset: 0x10000
-# CHECK-NEXT: VirtualAddress: 0x10010000
-# CHECK-NEXT: PhysicalAddress: 0x10010000
-# CHECK-NEXT: FileSize: 4096
-# CHECK-NEXT: MemSize: 4096
-# CHECK-NEXT: Flags [ (0x5)
-# CHECK-NEXT: PF_R (0x4)
-# CHECK-NEXT: PF_X (0x1)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 65536
-# CHECK-NEXT: }
-# CHECK-NEXT: ProgramHeader {
-# CHECK-NEXT: Type: PT_GNU_STACK (0x6474E551)
-# CHECK-NEXT: Offset: 0x0
-# CHECK-NEXT: VirtualAddress: 0x0
-# CHECK-NEXT: PhysicalAddress: 0x0
-# CHECK-NEXT: FileSize: 0
-# CHECK-NEXT: MemSize: 0
-# CHECK-NEXT: Flags [ (0x6)
-# CHECK-NEXT: PF_R (0x4)
-# CHECK-NEXT: PF_W (0x2)
-# CHECK-NEXT: ]
-# CHECK-NEXT: Alignment: 0
-# CHECK-NEXT: }
-# CHECK-NEXT: ]