diff options
author | Sean Silva <silvas@purdue.edu> | 2013-06-10 23:44:15 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-06-10 23:44:15 +0000 |
commit | f99309cb08d9ec2a7e1593be2b0fb937eb425550 (patch) | |
tree | e29ba30ac87399a093fe517deb7b4d0fc0db81ad /llvm/test/Object | |
parent | a2292d0b8fb291fa15b41b4f256f576abe965e98 (diff) | |
download | bcm5719-llvm-f99309cb08d9ec2a7e1593be2b0fb937eb425550.tar.gz bcm5719-llvm-f99309cb08d9ec2a7e1593be2b0fb937eb425550.zip |
[yaml2obj] Initial ELF support.
Currently, only emitting the ELF header is supported (no sections or
segments).
The ELFYAML code organization is broadly similar to the COFFYAML code.
llvm-svn: 183711
Diffstat (limited to 'llvm/test/Object')
-rw-r--r-- | llvm/test/Object/Inputs/ELF/BE32.yaml | 6 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/ELF/BE64.yaml | 6 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/ELF/Header.yaml | 7 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/ELF/LE32.yaml | 6 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/ELF/LE64.yaml | 6 | ||||
-rw-r--r-- | llvm/test/Object/yaml2obj-elf-basic.test | 32 | ||||
-rw-r--r-- | llvm/test/Object/yaml2obj-elf-bits-endian.test | 16 |
7 files changed, 79 insertions, 0 deletions
diff --git a/llvm/test/Object/Inputs/ELF/BE32.yaml b/llvm/test/Object/Inputs/ELF/BE32.yaml new file mode 100644 index 00000000000..3709ff70cd3 --- /dev/null +++ b/llvm/test/Object/Inputs/ELF/BE32.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS32 + Data: ELFDATA2MSB + Type: ET_EXEC + Machine: EM_PPC diff --git a/llvm/test/Object/Inputs/ELF/BE64.yaml b/llvm/test/Object/Inputs/ELF/BE64.yaml new file mode 100644 index 00000000000..d1c4401c0c0 --- /dev/null +++ b/llvm/test/Object/Inputs/ELF/BE64.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS64 + Data: ELFDATA2MSB + Type: ET_EXEC + Machine: EM_PPC64 diff --git a/llvm/test/Object/Inputs/ELF/Header.yaml b/llvm/test/Object/Inputs/ELF/Header.yaml new file mode 100644 index 00000000000..085b12077d9 --- /dev/null +++ b/llvm/test/Object/Inputs/ELF/Header.yaml @@ -0,0 +1,7 @@ +!ELF +Header: !Header + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 + Entry: 0x400000 diff --git a/llvm/test/Object/Inputs/ELF/LE32.yaml b/llvm/test/Object/Inputs/ELF/LE32.yaml new file mode 100644 index 00000000000..a4f30fbb803 --- /dev/null +++ b/llvm/test/Object/Inputs/ELF/LE32.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_386 diff --git a/llvm/test/Object/Inputs/ELF/LE64.yaml b/llvm/test/Object/Inputs/ELF/LE64.yaml new file mode 100644 index 00000000000..cd0ca2545b9 --- /dev/null +++ b/llvm/test/Object/Inputs/ELF/LE64.yaml @@ -0,0 +1,6 @@ +!ELF +Header: !Header + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 diff --git a/llvm/test/Object/yaml2obj-elf-basic.test b/llvm/test/Object/yaml2obj-elf-basic.test new file mode 100644 index 00000000000..e97ad2013bf --- /dev/null +++ b/llvm/test/Object/yaml2obj-elf-basic.test @@ -0,0 +1,32 @@ +RUN: yaml2obj -format=elf %p/Inputs/ELF/Header.yaml | llvm-readobj -file-headers - | FileCheck %s + +// CHECK: File: <stdin> +// CHECK-NEXT: Format: ELF64-x86-64 +// CHECK-NEXT: Arch: x86_64 +// 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) +// 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_X86_64 (0x3E) +// CHECK-NEXT: Version: 1 +// CHECK-NEXT: Entry: 0x400000 +// CHECK-NEXT: ProgramHeaderOffset: 0x0 +// CHECK-NEXT: SectionHeaderOffset: 0x0 +// CHECK-NEXT: Flags [ (0x0) +// CHECK-NEXT: ] +// CHECK-NEXT: HeaderSize: 64 +// CHECK-NEXT: ProgramHeaderEntrySize: 0 +// CHECK-NEXT: ProgramHeaderCount: 0 +// CHECK-NEXT: SectionHeaderEntrySize: 0 +// CHECK-NEXT: SectionHeaderCount: 0 +// CHECK-NEXT: StringTableSectionIndex: 0 +// CHECK-NEXT: } diff --git a/llvm/test/Object/yaml2obj-elf-bits-endian.test b/llvm/test/Object/yaml2obj-elf-bits-endian.test new file mode 100644 index 00000000000..4be9a4465b8 --- /dev/null +++ b/llvm/test/Object/yaml2obj-elf-bits-endian.test @@ -0,0 +1,16 @@ +RUN: yaml2obj -format=elf %p/Inputs/ELF/LE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE64 +RUN: yaml2obj -format=elf %p/Inputs/ELF/BE64.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE64 +RUN: yaml2obj -format=elf %p/Inputs/ELF/LE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix LE32 +RUN: yaml2obj -format=elf %p/Inputs/ELF/BE32.yaml | llvm-readobj -file-headers - | FileCheck %s --check-prefix BE32 + +LE64: Class: 64-bit (0x2) +LE64-NEXT: DataEncoding: LittleEndian (0x1) + +BE64: Class: 64-bit (0x2) +BE64-NEXT: DataEncoding: BigEndian (0x2) + +LE32: Class: 32-bit (0x1) +LE32-NEXT: DataEncoding: LittleEndian (0x1) + +BE32: Class: 32-bit (0x1) +BE32-NEXT: DataEncoding: BigEndian (0x2) |