diff options
Diffstat (limited to 'test/Object/Mips')
-rw-r--r-- | test/Object/Mips/elf-mips64-rel.yaml | 113 | ||||
-rw-r--r-- | test/Object/Mips/objdump-micro-mips.test | 12 |
2 files changed, 125 insertions, 0 deletions
diff --git a/test/Object/Mips/elf-mips64-rel.yaml b/test/Object/Mips/elf-mips64-rel.yaml new file mode 100644 index 0000000..8b59509 --- /dev/null +++ b/test/Object/Mips/elf-mips64-rel.yaml @@ -0,0 +1,113 @@ +# RUN: yaml2obj -format=elf %s > %t +# RUN: llvm-readobj -r %t | FileCheck -check-prefix=OBJ %s +# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s + +# OBJ: Relocations [ +# OBJ-NEXT: Section (2) .rela.text { +# OBJ-NEXT: 0x14 R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 main 0x4 +# OBJ-NEXT: 0x1C R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 main 0x8 +# OBJ-NEXT: 0x20 R_MIPS_GOT_PAGE/R_MIPS_NONE/R_MIPS_NONE .rodata 0x0 +# OBJ-NEXT: 0x24 R_MIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE .rodata 0x0 +# OBJ-NEXT: 0x28 R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE printf 0x0 +# OBJ-NEXT: 0x30 R_MIPS_GPREL16/R_MIPS_LO16/R_MIPS_NONE printf 0x0 +# OBJ-NEXT: } +# OBJ-NEXT: ] + +# YAML: Relocations: +# YAML-NEXT: - Offset: 0x0000000000000014 +# YAML-NEXT: Symbol: main +# YAML-NEXT: Type: R_MIPS_GPREL16 +# YAML-NEXT: Type2: R_MIPS_SUB +# YAML-NEXT: Type3: R_MIPS_HI16 +# YAML-NEXT: Addend: 4 +# YAML-NEXT: - Offset: 0x000000000000001C +# YAML-NEXT: Symbol: main +# YAML-NEXT: Type: R_MIPS_GPREL16 +# YAML-NEXT: Type2: R_MIPS_SUB +# YAML-NEXT: Type3: R_MIPS_LO16 +# YAML-NEXT: Addend: 8 +# YAML-NEXT: - Offset: 0x0000000000000020 +# YAML-NEXT: Symbol: .rodata +# YAML-NEXT: Type: R_MIPS_GOT_PAGE +# YAML-NEXT: - Offset: 0x0000000000000024 +# YAML-NEXT: Symbol: .rodata +# YAML-NEXT: Type: R_MIPS_GOT_OFST +# YAML-NEXT: - Offset: 0x0000000000000028 +# YAML-NEXT: Symbol: printf +# YAML-NEXT: Type: R_MIPS_CALL16 +# YAML-NEXT: - Offset: 0x0000000000000030 +# YAML-NEXT: Symbol: printf +# YAML-NEXT: Type: R_MIPS_GPREL16 +# YAML-NEXT: Type2: R_MIPS_LO16 +# YAML-NEXT: SpecSym: RSS_GP0 + +--- +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_MIPS + Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, + EF_MIPS_NOREORDER, EF_MIPS_ARCH_64R2 ] +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + AddressAlign: 0x10 + Size: 0x60 + - Name: .rela.text + Type: SHT_RELA + Flags: [ SHF_INFO_LINK ] + Info: .text + Relocations: + - Offset: 0x14 + Symbol: main + Type: R_MIPS_GPREL16 + Type2: R_MIPS_SUB + Type3: R_MIPS_HI16 + Addend: 4 + - Offset: 0x1C + Symbol: main + Type: R_MIPS_GPREL16 + Type2: R_MIPS_SUB + Type3: R_MIPS_LO16 + Addend: 8 + - Offset: 0x20 + Symbol: .rodata + Type: R_MIPS_GOT_PAGE + Addend: 0 + - Offset: 0x24 + Symbol: .rodata + Type: R_MIPS_GOT_OFST + Addend: 0 + - Offset: 0x28 + Symbol: printf + Type: R_MIPS_CALL16 + Addend: 0 + - Offset: 0x30 + Symbol: printf + Type: R_MIPS_GPREL16 + Type2: R_MIPS_LO16 + SpecSym: RSS_GP0 + Addend: 0 + - Name: .rodata + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + AddressAlign: 0x10 + Size: 0x0F + +Symbols: + Local: + - Name: .text + Type: STT_SECTION + Section: .text + - Name: .rodata + Type: STT_SECTION + Section: .rodata + Global: + - Name: main + Type: STT_FUNC + Section: .text + Size: 0x58 + - Name: printf +... diff --git a/test/Object/Mips/objdump-micro-mips.test b/test/Object/Mips/objdump-micro-mips.test new file mode 100644 index 0000000..0f28dc1 --- /dev/null +++ b/test/Object/Mips/objdump-micro-mips.test @@ -0,0 +1,12 @@ +RUN: llvm-objdump -d -mattr=micromips %p/../Inputs/micro-mips.elf-mipsel \ +RUN: | FileCheck %s + +CHECK: foo: +CHECK-NEXT: 330: bd 33 f8 ff addiu $sp, $sp, -8 +CHECK-NEXT: 334: dd fb 04 00 sw $fp, 4($sp) +CHECK-NEXT: 338: 1d 00 50 f1 addu $fp, $sp, $zero + +CHECK: bar: +CHECK-NEXT: 350: a2 41 02 00 lui $2, 2 +CHECK-NEXT: 354: 42 30 8f 80 addiu $2, $2, -32625 +CHECK-NEXT: 358: bd 33 e8 ff addiu $sp, $sp, -24 |