mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-22 23:31:32 +00:00
7070387f08
resolved or not. Different object files have different restrictions and different native assemblers have different idiosyncrasies we want to emulate for now. Move the existing MachO logic to the new place and implement an ELF one that gets fixups to globals right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115131 91177308-0d34-0410-b5e6-96231b3b80d8
39 lines
1.0 KiB
ArmAsm
39 lines
1.0 KiB
ArmAsm
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
|
|
|
|
// Test that we do a relaxation for foo but not for bar. Relaxing foo is
|
|
// probably not necessary, but matches what gnu as does.
|
|
|
|
// Also test that the relaxation done for foo uses the symbol, not section and
|
|
// offset.
|
|
|
|
bar:
|
|
.globl foo
|
|
foo:
|
|
jmp bar
|
|
jmp foo
|
|
|
|
// CHECK: ('sh_name', 1) # '.text'
|
|
// CHECK-NEXT: ('sh_type', 1)
|
|
// CHECK-NEXT: ('sh_flags', 6)
|
|
// CHECK-NEXT: ('sh_addr', 0)
|
|
// CHECK-NEXT: ('sh_offset', 64)
|
|
// CHECK-NEXT: ('sh_size', 7)
|
|
// CHECK-NEXT: ('sh_link', 0)
|
|
// CHECK-NEXT: ('sh_info', 0)
|
|
// CHECK-NEXT: ('sh_addralign', 4)
|
|
// CHECK-NEXT: ('sh_entsize', 0)
|
|
// CHECK-NEXT: ('_section_data', 'ebfee900 000000')
|
|
|
|
// CHECK: # Symbol 5
|
|
// CHECK-NEXT: (('st_name', 5) # 'foo'
|
|
|
|
// CHECK: .rela.text
|
|
// CHECK: ('_relocations', [
|
|
// CHECK-NEXT: Relocation 0
|
|
// CHECK-NEXT: (('r_offset', 3)
|
|
// CHECK-NEXT: ('r_sym', 5)
|
|
// CHECK-NEXT: ('r_type', 2)
|
|
// CHECK-NEXT: ('r_addend', -4)
|
|
// CHECK-NEXT: ),
|
|
// CHECK-NEXT: ])
|