diff options
author | Jacques Pienaar <jpienaar@google.com> | 2016-03-01 21:21:42 +0000 |
---|---|---|
committer | Jacques Pienaar <jpienaar@google.com> | 2016-03-01 21:21:42 +0000 |
commit | ea9f25a740f36305e2265903c5277770d6e977cd (patch) | |
tree | e1a14481314df1b2bd01c19a18ada204a6a6014e /llvm/test | |
parent | a6cfb6f682ec819bfb1a272ff10431b2b8e7980c (diff) | |
download | bcm5719-llvm-ea9f25a740f36305e2265903c5277770d6e977cd.tar.gz bcm5719-llvm-ea9f25a740f36305e2265903c5277770d6e977cd.zip |
[lanai] Add ELF enum value and relocations.
Add ELF enum value and relocations for Lanai backed.
General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html).
Differential Revision: http://reviews.llvm.org/D17008
llvm-svn: 262394
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/DebugInfo/Inputs/lanai-processes-relocations.elf | bin | 0 -> 1144 bytes | |||
-rw-r--r-- | llvm/test/DebugInfo/Lanai/lit.local.cfg | 2 | ||||
-rw-r--r-- | llvm/test/DebugInfo/Lanai/processes-relocations.ll | 19 | ||||
-rw-r--r-- | llvm/test/Object/Lanai/lit.local.cfg | 2 | ||||
-rw-r--r-- | llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml | 66 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai | bin | 0 -> 428 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/relocs.py | 9 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-lanai | bin | 0 -> 736 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-readobj/file-headers.test | 32 | ||||
-rw-r--r-- | llvm/test/tools/llvm-readobj/reloc-types.test | 9 |
10 files changed, 139 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/Inputs/lanai-processes-relocations.elf b/llvm/test/DebugInfo/Inputs/lanai-processes-relocations.elf Binary files differnew file mode 100644 index 00000000000..88d519a2cdf --- /dev/null +++ b/llvm/test/DebugInfo/Inputs/lanai-processes-relocations.elf diff --git a/llvm/test/DebugInfo/Lanai/lit.local.cfg b/llvm/test/DebugInfo/Lanai/lit.local.cfg new file mode 100644 index 00000000000..f1b8b4f4e21 --- /dev/null +++ b/llvm/test/DebugInfo/Lanai/lit.local.cfg @@ -0,0 +1,2 @@ +if not 'Lanai' in config.root.targets: + config.unsupported = True diff --git a/llvm/test/DebugInfo/Lanai/processes-relocations.ll b/llvm/test/DebugInfo/Lanai/processes-relocations.ll new file mode 100644 index 00000000000..8a8378af8cf --- /dev/null +++ b/llvm/test/DebugInfo/Lanai/processes-relocations.ll @@ -0,0 +1,19 @@ +; RUN: llvm-dwarfdump %p/Inputs/lanai-processes-relocations.elf 2>&1 | FileCheck %s + +; FIXME: Use llc with this file as input instead of binary file. +; NOTE: this test is currently not using llc, but using a binary input as the +; rest of the backend is not yet in tree. Once the Lanai backend is in tree, +; the binary file will be removed and this test will use llc. + +; CHECK-NOT: failed to compute relocation + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 786449, !1, i32 12, !"clang version 3.6.0 ", i1 false, !"", i32 0, !2, !2, !2, !2, !2, !"", i32 1} ; [ DW_TAG_compile_unit ] [/a/empty.c] [DW_LANG_C99] +!1 = !{!"empty.c", !"/a"} +!2 = !{} +!3 = !{i32 2, !"Dwarf Version", i32 4} +!4 = !{i32 2, !"Debug Info Version", i32 3} +!5 = !{!"clang version 3.6.0 "} diff --git a/llvm/test/Object/Lanai/lit.local.cfg b/llvm/test/Object/Lanai/lit.local.cfg new file mode 100644 index 00000000000..f1b8b4f4e21 --- /dev/null +++ b/llvm/test/Object/Lanai/lit.local.cfg @@ -0,0 +1,2 @@ +if not 'Lanai' in config.root.targets: + config.unsupported = True diff --git a/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml b/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml new file mode 100644 index 00000000000..3a31a3901a2 --- /dev/null +++ b/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml @@ -0,0 +1,66 @@ +# RUN: yaml2obj -format=elf %s > %t +# RUN: llvm-readobj -r %t | FileCheck %s + +# CHECK : Relocations [ +# CHECK-NEXT: Section (2) .rel.text { +# CHECK-NEXT: 0x0 R_LANAI_32 main 0x0 +# CHECK-NEXT: 0x4 R_LANAI_NONE - 0x0 +# CHECK-NEXT: 0x8 R_LANAI_21 - 0x0 +# CHECK-NEXT: 0xC R_LANAI_21_F - 0x0 +# CHECK-NEXT: 0x10 R_LANAI_25 - 0x0 +# CHECK-NEXT: 0x14 R_LANAI_HI16 - 0x0 +# CHECK-NEXT: 0x18 R_LANAI_LO16 - 0x0 +# CHECK-NEXT: } +# CHECK-NEXT: ] + +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_LANAI +Sections: + - Type: SHT_PROGBITS + Name: .text + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + AddressAlign: 0x04 + Content: 0000000000000000 + - Type: SHT_REL + Name: .rel.text + Link: .symtab + Info: .text + AddressAlign: 0x04 + Relocations: + - Offset: 0x0 + Symbol: main + Type: R_LANAI_32 + - Offset: 0x4 + Symbol: a + Type: R_LANAI_NONE + - Offset: 0x8 + Symbol: b + Type: R_LANAI_21 + - Offset: 0xC + Symbol: c + Type: R_LANAI_21_F + - Offset: 0x10 + Symbol: d + Type: R_LANAI_25 + - Offset: 0x14 + Symbol: e + Type: R_LANAI_HI16 + - Offset: 0x18 + Symbol: f + Type: R_LANAI_LO16 + + +Symbols: + Local: + - Name: .text + Type: STT_SECTION + Section: .text + + Global: + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x08 diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai Binary files differnew file mode 100644 index 00000000000..c0bb9a04694 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai diff --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.py b/llvm/test/tools/llvm-readobj/Inputs/relocs.py index 62dbd627ca5..48a1ffb0994 100644 --- a/llvm/test/tools/llvm-readobj/Inputs/relocs.py +++ b/llvm/test/tools/llvm-readobj/Inputs/relocs.py @@ -991,6 +991,14 @@ class Relocs_Elf_Hexagon(Enum): R_HEX_TPREL_16_X = 84 R_HEX_TPREL_11_X = 85 +class Relocs_Elf_Lanai(Enum): + R_LANAI_NONE = 0 + R_LANAI_21 = 1 + R_LANAI_21_F = 2 + R_LANAI_25 = 3 + R_LANAI_32 = 4 + R_LANAI_HI16 = 5 + R_LANAI_LO16 = 6 class Relocs_Coff_i386(Enum): IMAGE_REL_I386_ABSOLUTE = 0x0000 @@ -1103,6 +1111,7 @@ craftElf("relocs.obj.elf-arm", "arm-unknown-unknown", Relocs_Elf_AR craftElf("relocs.obj.elf-mips", "mips-unknown-linux", Relocs_Elf_Mips.entries(), "lui $2, %hi(sym)") craftElf("relocs.obj.elf-mips64el", "mips64el-unknown-linux", Relocs_Elf_Mips.entries(), "lui $2, %hi(sym)") #craftElf("relocs.obj.elf-hexagon", "hexagon-unknown-unknown", Relocs_Elf_Hexagon.entries(), ...) +#craftElf("relocs.obj.elf-lanai", "lanai-unknown-unknown", Relocs_Elf_Lanai.entries(), "mov hi(x), %r4") craftCoff("relocs.obj.coff-i386", "i386-pc-win32", Relocs_Coff_i386.entries(), "mov foo@imgrel(%ebx, %ecx, 4), %eax") craftCoff("relocs.obj.coff-x86_64", "x86_64-pc-win32", Relocs_Coff_X86_64.entries(), "mov foo@imgrel(%ebx, %ecx, 4), %eax") diff --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-lanai b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-lanai Binary files differnew file mode 100644 index 00000000000..13bb30ca6fd --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-lanai diff --git a/llvm/test/tools/llvm-readobj/file-headers.test b/llvm/test/tools/llvm-readobj/file-headers.test index 2d67089d611..4fe8210c4dd 100644 --- a/llvm/test/tools/llvm-readobj/file-headers.test +++ b/llvm/test/tools/llvm-readobj/file-headers.test @@ -24,6 +24,8 @@ RUN: llvm-readobj -h %p/Inputs/magic.coff-unknown \ RUN: | FileCheck %s -check-prefix COFF-UNKNOWN RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \ RUN: | FileCheck %s -check-prefix COFF-IMPORTLIB +RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-lanai \ +RUN: | FileCheck %s -check-prefix ELF-LANAI COFF-ARM: File: {{(.*[/\\])?}}trivial.obj.coff-arm COFF-ARM-NEXT: Format: COFF-ARM @@ -335,3 +337,33 @@ COFF-IMPORTLIB-NEXT: Type: code COFF-IMPORTLIB-NEXT: Name type: noprefix COFF-IMPORTLIB-NEXT: Symbol: __imp__func COFF-IMPORTLIB-NEXT: Symbol: _func + +ELF-LANAI: Format: ELF32-lanai +ELF-LANAI-NEXT: Arch: lanai +ELF-LANAI-NEXT: AddressSize: 32bit +ELF-LANAI-NEXT: LoadName: +ELF-LANAI-NEXT: ElfHeader { +ELF-LANAI-NEXT: Ident { +ELF-LANAI-NEXT: Magic: (7F 45 4C 46) +ELF-LANAI-NEXT: Class: 32-bit (0x1) +ELF-LANAI-NEXT: DataEncoding: BigEndian (0x2) +ELF-LANAI-NEXT: FileVersion: 1 +ELF-LANAI-NEXT: OS/ABI: SystemV (0x0) +ELF-LANAI-NEXT: ABIVersion: 0 +ELF-LANAI-NEXT: Unused: (00 00 00 00 00 00 00) +ELF-LANAI-NEXT: } +ELF-LANAI-NEXT: Type: Relocatable (0x1) +ELF-LANAI-NEXT: Machine: EM_LANAI (0x8123) +ELF-LANAI-NEXT: Version: 1 +ELF-LANAI-NEXT: Entry: 0x0 +ELF-LANAI-NEXT: ProgramHeaderOffset: 0x0 +ELF-LANAI-NEXT: SectionHeaderOffset: 0x1A0 +ELF-LANAI-NEXT: Flags [ (0x0) +ELF-LANAI-NEXT: ] +ELF-LANAI-NEXT: HeaderSize: 52 +ELF-LANAI-NEXT: ProgramHeaderEntrySize: 0 +ELF-LANAI-NEXT: ProgramHeaderCount: 0 +ELF-LANAI-NEXT: SectionHeaderEntrySize: 40 +ELF-LANAI-NEXT: SectionHeaderCount: 8 +ELF-LANAI-NEXT: StringTableSectionIndex: 1 +ELF-LANAI-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/reloc-types.test b/llvm/test/tools/llvm-readobj/reloc-types.test index 36e2f7010bd..74148c07015 100644 --- a/llvm/test/tools/llvm-readobj/reloc-types.test +++ b/llvm/test/tools/llvm-readobj/reloc-types.test @@ -7,6 +7,7 @@ RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-i386 | FileChec RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-x86_64 | FileCheck %s -check-prefix ELF-64 RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-aarch64 | FileCheck %s -check-prefix ELF-AARCH64 RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-arm | FileCheck %s -check-prefix ELF-ARM +RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-lanai | FileCheck %s -check-prefix ELF-LANAI RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-mips | FileCheck %s -check-prefix ELF-MIPS RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-mips64el | FileCheck %s -check-prefix ELF-MIPS64EL RUN: llvm-readobj -r -expand-relocs %p/Inputs/relocs.obj.elf-ppc64 | FileCheck %s -check-prefix ELF-PPC64 @@ -405,6 +406,14 @@ ELF-ARM: Type: R_ARM_THM_TLS_DESCSEQ16 (129) ELF-ARM: Type: R_ARM_THM_TLS_DESCSEQ32 (130) ELF-ARM: Type: R_ARM_IRELATIVE (160) +ELF-LANAI: Type: R_LANAI_NONE (0) +ELF-LANAI: Type: R_LANAI_21 (1) +ELF-LANAI: Type: R_LANAI_21_F (2) +ELF-LANAI: Type: R_LANAI_25 (3) +ELF-LANAI: Type: R_LANAI_32 (4) +ELF-LANAI: Type: R_LANAI_HI16 (5) +ELF-LANAI: Type: R_LANAI_LO16 (6) + ELF-MIPS: Type: R_MIPS_NONE (0) ELF-MIPS: Type: R_MIPS_16 (1) ELF-MIPS: Type: R_MIPS_32 (2) |