summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert999@users.noreply.github.com>2017-03-27 10:44:36 -0500
committerGitHub <noreply@github.com>2017-03-27 10:44:36 -0500
commitded0eff199fa1d9bd8be5a78935e8f023a2c5fad (patch)
tree6c239dc303439f092c9a99a21c55c8946d27848f
parent48b125d266b5776711a6b70886f6bf64fe168c84 (diff)
parent69f1822fb27cd5fa71e9b737270b99f89a072646 (diff)
downloadppe42-binutils-binutils-2_24-ppe42.tar.gz
ppe42-binutils-binutils-2_24-ppe42.zip
Merge pull request #3 from dgilbert999/binutils-2_24-ppe42binutils-2_24-ppe42
Use R10 for PPE42 long jumps
-rw-r--r--bfd/elf32-ppc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 5ba91112a0..de4bbea98a 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -6628,11 +6628,17 @@ static const int shared_stub_entry[] =
0x4e800420, /* bctr */
};
+// PPE42 does not have r11 or r12 register available for long jumps
+// SBE needs long jumps until DD2 hardware is released so this
+// temporary fix uses r10. Compiler just restrict use of r10 (-ffixed-r10)
static const int stub_entry[] =
{
- 0x3d800000, /* lis 12,xxx@ha */
- 0x398c0000, /* addi 12,12,xxx@l */
- 0x7d8903a6, /* mtctr 12 */
+ 0x3d400000, /* lis 10,xxx@ha */
+ 0x394a0000, /* add 10,10,xxx@l */
+ 0x7d4903a6, /* mtctr 10 */
+ //0x3d800000, /* lis 12,xxx@ha */
+ //0x398c0000, /* addi 12,12,xxx@l */
+ //0x7d8903a6, /* mtctr 12 */
0x4e800420, /* bctr */
};
OpenPOWER on IntegriCloud