blob: cfb4b94cda5b4daabde97bb096894cd04188c10a [file] [log] [blame]
# Check GNU-specific embedded relocs, for ELF.
.text
.set noreorder
nop
l2: jal g1 # R_MIPS_GNU_REL16_S2 g1 -1
nop
b g2 # R_MIPS_GNU_REL16_S2 g2 -1
nop
b g2 # R_MIPS_GNU_REL16_S2 g2 -1
nop
jal l1 # R_MIPS_GNU_REL16_S2 .foo 3F
nop
jal l2 # R_MIPS_GNU_REL16_S2 .text 0 or -9
nop
b l1+8 # R_MIPS_GNU_REL16_S2 .foo 41
nop
l3:
b l2 # R_MIPS_GNU_REL16_S2 .text 0 or -D
nop
la $3,g1-l3 # R_MIPS_GNU_REL_HI16 g1 0
# R_MIPS_GNU_REL_LO16 g1 C
la $3,l1-l3 # R_MIPS_GNU_REL_HI16 .foo 0
# R_MIPS_GNU_REL_LO16 .foo 114
la $3,l2-l3 # -30
.word g1 # R_MIPS_32 g1 0
.word l1 # R_MIPS_32 .foo 100
.word l2 # R_MIPS_32 .text 4
.word g1-l3 # R_MIPS_PC32 g1 28
.word l1-l3 # R_MIPS_PC32 .foo 12C
.word l2-l3 # -30
.align 3
.dword g1 # R_MIPS_64 g1 0
.dword l1 # R_MIPS_64 .foo 100
.dword l2 # R_MIPS_64 .text 4
.dword g1-l3 # R_MIPS_PC64 g1 4C
.dword l1-l3 # R_MIPS_PC64 .foo 154
.dword l2-l3 # -30
l5:
b 2f # R_MIPS_GNU_REL16_S2 .text 32
b 2f+4 # R_MIPS_GNU_REL16_S2 .text 33
la $3,2f-l5 # R_MIPS_GNU_REL_HI16 .text 0
# R_MIPS_GNU_REL_LO16 .text D8
la $3,2f+8-l5 # R_MIPS_GNU_REL_HI16 .text 0
# R_MIPS_GNU_REL_LO16 .text E8
.word 2f # R_MIPS_32 .text CC
.word 2f-l5 # R_MIPS_PC32 .text EC or 34
.dword 2f # R_MIPS_64 .text CC
.dword 2f-l5 # R_MIPS_PC64 .text F8 or 34
nop
2: # at address 0xCC.
b 2b # R_MIPS_GNU_REL16_S2 .text 32
b 2b+4 # R_MIPS_GNU_REL16_S2 .text 33
la $3,2b-l5 # R_MIPS_GNU_REL_HI16 .text 0
# R_MIPS_GNU_REL_LO16 .text 10C
la $3,2b+8-l5 # R_MIPS_GNU_REL_HI16 .text 0
# R_MIPS_GNU_REL_LO16 .text 11C
.word 2b # R_MIPS_32 .text CC
.word 2b-l5 # R_MIPS_PC32 .text 11C or 34
nop
.dword 2b # R_MIPS_64 .text CC
.dword 2b-l5 # R_MIPS_PC64 .text 98 or 34
# align section end to 16-byte boundary for easier testing on multiple targets
.p2align 4
.section ".foo","ax",@progbits
nop
l4:
la $3,g1-l4
la $3,l1-l4
la $3,l2-l4
la $3,g1-l4
dla $3,g1-l4
dla $3,l1-l4
dla $3,l2-l4
.word g1
.word l1
.word l2
.word g1-l4
.word l1-l4
.word l2-l4
.dword g1
.dword l1
.dword l2
.dword g1-l4
.dword l1-l4
.dword l2-l4
la $3,g1-l4+4
la $3,l1-l4+4
la $3,l2-l4+4
dla $3,g1-l4+4
dla $3,l1-l4+4
dla $3,l2-l4+4
.word g1+4
.word l1+4
.word l2+4
.word g1-l4+4
.word l1-l4+4
.word l2-l4+4
.dword g1+4
.dword l1+4
.dword l2+4
.dword g1-l4+4
.dword l1-l4+4
.dword l2-l4+4
l1:
nop
# align section end to 16-byte boundary for easier testing on multiple targets
.p2align 4