brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · f2956a6 Raw
143 lines · plain
1// REQUIRES: aarch642// RUN: llvm-mc -filetype=obj -triple=aarch64 %s -o %t.o3// RUN: ld.lld -static %t.o -o %tout4// RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn %tout | FileCheck %s --check-prefix=DISASM5// RUN: llvm-readobj -r --symbols --sections %tout | FileCheck %s6 7// CHECK:      Sections [8// CHECK:       Section {9// CHECK:       Index: 110// CHECK-NEXT:  Name: .rela.dyn11// CHECK-NEXT:  Type: SHT_RELA12// CHECK-NEXT:  Flags [13// CHECK-NEXT:    SHF_ALLOC14// CHECK-NEXT:  ]15// CHECK-NEXT:  Address: [[RELA:.*]]16// CHECK-NEXT:  Offset: 0x15817// CHECK-NEXT:  Size: 4818// CHECK-NEXT:  Link: 019// CHECK-NEXT:  Info: 020// CHECK-NEXT:  AddressAlignment: 821// CHECK-NEXT:  EntrySize: 2422// CHECK-NEXT: }23// CHECK:      Relocations [24// CHECK-NEXT:   Section ({{.*}}) .rela.dyn {25// CHECK-NEXT:     0x2201C0 R_AARCH64_IRELATIVE26// CHECK-NEXT:     0x2201C8 R_AARCH64_IRELATIVE27// CHECK-NEXT:   }28// CHECK-NEXT: ]29// CHECK:      Symbols [30// CHECK-NEXT:  Symbol {31// CHECK-NEXT:    Name:32// CHECK-NEXT:    Value: 0x033// CHECK-NEXT:    Size: 034// CHECK-NEXT:    Binding: Local35// CHECK-NEXT:    Type: None36// CHECK-NEXT:    Other: 037// CHECK-NEXT:    Section: Undefined38// CHECK-NEXT:  }39// CHECK-NEXT:  Symbol {40// CHECK-NEXT:    Name: $x41// CHECK-NEXT:    Value: 0x21018842// CHECK-NEXT:    Size: 043// CHECK-NEXT:    Binding: Local44// CHECK-NEXT:    Type: None45// CHECK-NEXT:    Other: 046// CHECK-NEXT:    Section: .text47// CHECK-NEXT:  }48// CHECK-NEXT:  Symbol {49// CHECK-NEXT:    Name: __rela_iplt_start50// CHECK-NEXT:    Value: 0x20015851// CHECK-NEXT:    Size: 052// CHECK-NEXT:    Binding: Local53// CHECK-NEXT:    Type: None54// CHECK-NEXT:    Other [55// CHECK-NEXT:      STV_HIDDEN56// CHECK-NEXT:    ]57// CHECK-NEXT:    Section: .rela.dyn58// CHECK-NEXT:  }59// CHECK-NEXT:  Symbol {60// CHECK-NEXT:    Name: __rela_iplt_end61// CHECK-NEXT:    Value: 0x20018862// CHECK-NEXT:    Size: 063// CHECK-NEXT:    Binding: Local64// CHECK-NEXT:    Type: None65// CHECK-NEXT:    Other [66// CHECK-NEXT:      STV_HIDDEN67// CHECK-NEXT:    ]68// CHECK-NEXT:    Section: .rela.dyn69// CHECK-NEXT:  }70// CHECK-NEXT:  Symbol {71// CHECK-NEXT:    Name: foo72// CHECK-NEXT:    Value: 0x21018873// CHECK-NEXT:    Size: 074// CHECK-NEXT:    Binding: Global75// CHECK-NEXT:    Type: GNU_IFunc76// CHECK-NEXT:    Other: 077// CHECK-NEXT:    Section: .text78// CHECK-NEXT:  }79// CHECK-NEXT:  Symbol {80// CHECK-NEXT:    Name: bar81// CHECK-NEXT:    Value: 0x21018C82// CHECK-NEXT:    Size: 083// CHECK-NEXT:    Binding: Global84// CHECK-NEXT:    Type: GNU_IFunc85// CHECK-NEXT:    Other: 086// CHECK-NEXT:    Section: .text87// CHECK-NEXT:  }88// CHECK-NEXT:  Symbol {89// CHECK-NEXT:    Name: _start90// CHECK-NEXT:    Value: 0x21019091// CHECK-NEXT:    Size: 092// CHECK-NEXT:    Binding: Global93// CHECK-NEXT:    Type: None94// CHECK-NEXT:    Other: 095// CHECK-NEXT:    Section: .text96// CHECK-NEXT:  }97// CHECK-NEXT: ]98 99// 344 = 0x158100// 392 = 0x188101 102// DISASM: Disassembly of section .text:103// DISASM-EMPTY:104// DISASM-NEXT: <foo>:105// DISASM-NEXT:  210188: ret106// DISASM: <bar>:107// DISASM-NEXT:  21018c: ret108// DISASM:      <_start>:109// DISASM-NEXT:  210190: bl  0x2101a0110// DISASM-NEXT:  210194: bl  0x2101b0111// DISASM-NEXT:  210198: add x2, x2, #344112// DISASM-NEXT:  21019c: add x2, x2, #392113// DISASM-EMPTY:114// DISASM-NEXT: Disassembly of section .iplt:115// DISASM-EMPTY:116// DISASM-NEXT: <.iplt>:117// DISASM-NEXT:  2101a0: adrp x16, 0x220000118// DISASM-NEXT:  2101a4: ldr x17, [x16, #448]119// DISASM-NEXT:  2101a8: add x16, x16, #448120// DISASM-NEXT:  2101ac: br x17121// DISASM-NEXT:  2101b0: adrp x16, 0x220000122// DISASM-NEXT:  2101b4: ldr x17, [x16, #456]123// DISASM-NEXT:  2101b8: add x16, x16, #456124// DISASM-NEXT:  2101bc: br x17125 126.text127.type foo STT_GNU_IFUNC128.globl foo129foo:130 ret131 132.type bar STT_GNU_IFUNC133.globl bar134bar:135 ret136 137.globl _start138_start:139 bl foo140 bl bar141 add x2, x2, :lo12:__rela_iplt_start142 add x2, x2, :lo12:__rela_iplt_end143