-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
2011-07-05 Doug Kwan <[email protected]>
PR gold/12771 * arm.cc (Arm_relocate_functions::abs8): Use int32_t for addend and Arm_Address type for relocation result. (Arm_relocate_functions::abs16): Use unaligned access. Also fix overflow check. (Arm_relocate_functions::abs32): Use unaligned access. (Arm_relocate_functions::rel32): Ditto. (Arm_relocate_functions::prel31): Ditto. (Arm_exidix_cantunwind::do_fixed_endian_write): Ditto. * testsuite/Makefile.am: Add new test arm_unaligned_reloc for unaligned static data relocations. * testsuite/Makefile.in: Regnerate. * testsuite/arm_unaligned_reloc.{s,sh}: New files.
- Loading branch information
Showing
6 changed files
with
166 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,19 @@ | ||
2011-07-05 Doug Kwan <[email protected]> | ||
|
||
PR gold/12771 | ||
* arm.cc (Arm_relocate_functions::abs8): Use int32_t for addend and | ||
Arm_Address type for relocation result. | ||
(Arm_relocate_functions::abs16): Use unaligned access. Also fix | ||
overflow check. | ||
(Arm_relocate_functions::abs32): Use unaligned access. | ||
(Arm_relocate_functions::rel32): Ditto. | ||
(Arm_relocate_functions::prel31): Ditto. | ||
(Arm_exidix_cantunwind::do_fixed_endian_write): Ditto. | ||
* testsuite/Makefile.am: Add new test arm_unaligned_reloc for unaligned | ||
static data relocations. | ||
* testsuite/Makefile.in: Regnerate. | ||
* testsuite/arm_unaligned_reloc.{s,sh}: New files. | ||
|
||
2011-07-05 Ian Lance Taylor <[email protected]> | ||
|
||
PR gold/12392 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
.syntax unified | ||
|
||
.global _start | ||
.type _start, %function | ||
.text | ||
_start: | ||
bx lr | ||
.size _start,.-_start | ||
|
||
.section .data.0,"aw",%progbits | ||
.align 12 | ||
.type x, %object | ||
.size x, 4 | ||
x: | ||
.word 1 | ||
|
||
.section .data.1,"aw",%progbits | ||
.align 2 | ||
|
||
# This causes following relocations to be unaligned. | ||
.global padding | ||
.type padding, %object | ||
.size padding, 1 | ||
padding: | ||
.byte 0 | ||
|
||
.global abs32 | ||
.type abs32, %object | ||
.size abs32, 4 | ||
abs32: | ||
.word x | ||
|
||
.global rel32 | ||
.type rel32, %object | ||
.size rel32, 4 | ||
rel32: | ||
.word x - . | ||
|
||
.global abs16 | ||
.type abs16, %object | ||
.size abs16, 2 | ||
abs16: | ||
.short x | ||
.short 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/bin/sh | ||
|
||
# arm_unaligned_reloc.sh -- test ARM unaligned static data relocations. | ||
|
||
# Copyright 2011 Free Software Foundation, Inc. | ||
# Written by Doug Kwan <[email protected]> | ||
|
||
# This file is part of gold. | ||
|
||
# This program is free software; you can redistribute it and/or modify | ||
# it under the terms of the GNU General Public License as published by | ||
# the Free Software Foundation; either version 3 of the License, or | ||
# (at your option) any later version. | ||
|
||
# This program is distributed in the hope that it will be useful, | ||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
# GNU General Public License for more details. | ||
|
||
# You should have received a copy of the GNU General Public License | ||
# along with this program; if not, write to the Free Software | ||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, | ||
# MA 02110-1301, USA. | ||
|
||
# This file goes with the assembler source file arm_unaligned_reloc.s, | ||
# that is assembled and linked as a dummy executable. We want to check | ||
# it is okay to do unaligned static data relocations. | ||
|
||
check() | ||
{ | ||
if ! grep -q -e "$2" "$1" | ||
then | ||
echo "Did not find pattern \"$2\" in $1:" | ||
echo " $2" | ||
echo "" | ||
echo "Actual disassembly below:" | ||
cat "$1" | ||
exit 1 | ||
fi | ||
} | ||
|
||
check arm_unaligned_reloc.stdout "^00009000 <x>:$" | ||
check arm_unaligned_reloc.stdout "^0000a001 <abs32>:$" | ||
check arm_unaligned_reloc.stdout "^ a001: 00009000 .*$" | ||
check arm_unaligned_reloc.stdout "^0000a005 <rel32>:" | ||
check arm_unaligned_reloc.stdout "^ a005: ffffeffb .*$" | ||
check arm_unaligned_reloc.stdout "^0000a009 <abs16>:" | ||
check arm_unaligned_reloc.stdout "^ a009: 00009000 .*$" | ||
|
||
exit 0 |