# 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