aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2004-08-06 16:18:11 +0000
committerPaul Brook <paul@codesourcery.com>2004-08-06 16:18:11 +0000
commitdb6579d415fafa3833828f9528bc8d9525da3cd8 (patch)
treef0dc04dc5845967aab1b2f08fefbf2fc853c2007 /gas
parentdeaa6723d2a35d46bc95cd4d7b295596893a158c (diff)
downloadgdb-db6579d415fafa3833828f9528bc8d9525da3cd8.zip
gdb-db6579d415fafa3833828f9528bc8d9525da3cd8.tar.gz
gdb-db6579d415fafa3833828f9528bc8d9525da3cd8.tar.bz2
bfd/
* elfarm-nabi.c (elf32_arm_howto_table): Add new EABI relocations. (elf32_arm_reloc_map): Add BFD_RELOC_ARM_RELABS32, BFD_RELOC_ARM_ROSEGREL32 and BFD_RELOC_ARM_SBREL32. * reloc.c: Add BFD_RELOC_ARM_RELABS32, BFD_RELOC_ARM_ROSEGREL32 and BFD_RELOC_ARM_SBREL32. * bfd-in2.h, bbfd.h: Regenerate. gas/ * config/tc-arm.c (md_apply_fix3, tc_gen_reloc, arm_parse_reloc): Handle new relocations. * include/elf/arm.h (elf_arm_reloc_type): Add new EABI relocations. gas/testsuite/ * gas/arm/pic.s,d: Test RELABS and SBREL relocations.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-arm.c8
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/arm/pic.d2
-rw-r--r--gas/testsuite/gas/arm/pic.s2
5 files changed, 22 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f221a15..4361aa3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2004-08-06 Paul Brook <paul@codesourcery.com>
+
+ * config/tc-arm.c (md_apply_fix3, tc_gen_reloc, arm_parse_reloc):
+ Handle new relocations.
+ * include/elf/arm.h (elf_arm_reloc_type): Add new EABI relocations.
+
2004-08-05 Bob Wilson <bob.wilson@acm.org>
* write.c (relax_segment): Use was_address instead of address when
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 96cf3ca..f7eeca7 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -12487,6 +12487,9 @@ md_apply_fix3 (fixP, valP, seg)
case BFD_RELOC_RVA:
case BFD_RELOC_32:
+ case BFD_RELOC_ARM_RELABS32:
+ case BFD_RELOC_ARM_ROSEGREL32:
+ case BFD_RELOC_ARM_SBREL32:
if (fixP->fx_done || fixP->fx_pcrel)
md_number_to_chars (buf, value, 4);
#ifdef OBJ_ELF
@@ -12774,6 +12777,9 @@ tc_gen_reloc (section, fixp)
case BFD_RELOC_ARM_GOT32:
case BFD_RELOC_ARM_GOTOFF:
case BFD_RELOC_ARM_PLT32:
+ case BFD_RELOC_ARM_RELABS32:
+ case BFD_RELOC_ARM_ROSEGREL32:
+ case BFD_RELOC_ARM_SBREL32:
code = fixp->fx_r_type;
break;
#endif
@@ -14132,6 +14138,8 @@ arm_parse_reloc ()
/* ScottB: Jan 30, 1998 - Added support for parsing "var(PLT)"
branch instructions generated by GCC for PLT relocs. */
MAP ("(plt)", BFD_RELOC_ARM_PLT32),
+ MAP ("(relabs)", BFD_RELOC_ARM_RELABS32),
+ MAP ("(sbrel)", BFD_RELOC_ARM_SBREL32),
{ NULL, 0, BFD_RELOC_UNUSED }
#undef MAP
};
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index f0679eb..f91cf6d 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2004-08-06 Paul Brook <paul@codesourcery.com>
+
+ * gas/arm/pic.s,d: Test RELABS and SBREL relocations.
+
2004-08-05 Nitin Yewale <nitiny@kpitcummins.com>
* h8300/h8300.exp: Addition of new test case to check rx
diff --git a/gas/testsuite/gas/arm/pic.d b/gas/testsuite/gas/arm/pic.d
index 6c4a043..bd69d1b 100644
--- a/gas/testsuite/gas/arm/pic.d
+++ b/gas/testsuite/gas/arm/pic.d
@@ -15,3 +15,5 @@ Disassembly of section .text:
c: R_ARM_GOT32 sym
10: R_ARM_GOTOFF sym
14: R_ARM_GOTPC _GLOBAL_OFFSET_TABLE_
+ 18: R_ARM_RELABS32 foo2
+ 1c: R_ARM_SBREL32 foo3
diff --git a/gas/testsuite/gas/arm/pic.s b/gas/testsuite/gas/arm/pic.s
index f538908..8d0842c 100644
--- a/gas/testsuite/gas/arm/pic.s
+++ b/gas/testsuite/gas/arm/pic.s
@@ -9,3 +9,5 @@
.word sym(GOTOFF)
1:
.word _GLOBAL_OFFSET_TABLE_ - 1b
+ .word foo2(RELABS)
+ .word foo3(SBREL)