mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
54806ffa85
Complement:
commit 1bbce13264
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date: Mon Jun 24 23:55:46 2013 +0000
<https://sourceware.org/ml/binutils/2013-06/msg00077.html>, ("MIPS:
Compressed PLT/stubs support"), and also choose between regular and
compressed PLT entries as appropriate for any branches referring.
bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Handle branches
in PLT compression selection.
(_bfd_mips_elf_check_relocs): Likewise.
ld/
* testsuite/ld-mips-elf/compressed-plt-1.s: Add branch support.
* testsuite/ld-mips-elf/compressed-plt-1a.s: Likewise.
* testsuite/ld-mips-elf/compressed-plt-1b.s: Likewise.
* testsuite/ld-mips-elf/compressed-plt-1-o32-branch.od: New
test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-branch.rd: New
test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-bronly.od:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-bronly.rd:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-branch.od:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-branch.rd:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-umips-bronly.od:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-umips-bronly.rd:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-umips-branch.od:
New test.
* testsuite/ld-mips-elf/compressed-plt-1-o32-umips-branch.rd:
New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
34 lines
451 B
ArmAsm
34 lines
451 B
ArmAsm
# Define a function with all "uncompressed" (du, bu and iu) references.
|
|
|
|
.abicalls
|
|
.option pic0
|
|
|
|
.include "compressed-plt-1.s"
|
|
|
|
.macro test_one, name, types
|
|
.if (\types) & DU
|
|
jal \name
|
|
nop
|
|
j \name
|
|
nop
|
|
.endif
|
|
.if (\types) & BU
|
|
bal \name
|
|
nop
|
|
b \name
|
|
nop
|
|
.endif
|
|
.if (\types) & IU
|
|
lw $2, %call16(\name)($3)
|
|
.endif
|
|
.endm
|
|
|
|
.section .text.b, "ax", @progbits
|
|
.globl testu
|
|
.ent testu
|
|
.set noreorder
|
|
testu:
|
|
test_all
|
|
jr $31
|
|
.end testu
|