# Check handling of R_MICROMIPS_SUB relocation. # RUN: yaml2obj -format=elf %s > %t.o # RUN: lld -flavor old-gnu -target mips64el -o %t.exe %t.o # RUN: llvm-objdump -s -t %t.exe | FileCheck %s # CHECK: Contents of section .data: # CHECK-NEXT: 120002000 0020cc01 01000000 0020d001 0100ffff # ^^ __start - 4 = 0x1200001cc # ^^ __start - 0x1000000000000 # = 0xffff0001200001d0 # CHECK: SYMBOL TABLE: # CHECK: 00000001200001d0 g .rodata 00000008 __start FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_MIPS Flags: [EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ARCH_64, EF_MIPS_MICROMIPS] Sections: - Name: .text Type: SHT_PROGBITS Size: 8 AddressAlign: 16 Flags: [SHF_ALLOC] - Name: .data Type: SHT_PROGBITS Size: 16 AddressAlign: 16 Flags: [SHF_ALLOC, SHF_WRITE] - Name: .rela.data Type: SHT_RELA Info: .data AddressAlign: 4 Relocations: - Offset: 0 Symbol: __start Type: R_MICROMIPS_SUB Addend: 4 - Offset: 8 Symbol: __start Type: R_MICROMIPS_SUB Addend: 0x1000000000000 Symbols: Global: - Name: __start Section: .text Value: 0 Size: 8 - Name: D1 Section: .data Value: 0 Size: 8 - Name: D2 Section: .data Value: 8 Size: 8