aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2006-11-03 16:27:41 +0000
committerThiemo Seufer <ths@networkno.de>2006-11-03 16:27:41 +0000
commit648178740aef7c86a527e4ff02784c8962b262ae (patch)
treed95f59e853bf6a75e91ee30dcdf56a524b7266bf
parent7764b3958e70ff32bae581a525ea4a72bb389fbd (diff)
downloadgdb-648178740aef7c86a527e4ff02784c8962b262ae.zip
gdb-648178740aef7c86a527e4ff02784c8962b262ae.tar.gz
gdb-648178740aef7c86a527e4ff02784c8962b262ae.tar.bz2
* config/tc-mips.c (md_pcrel_from_section): Disallow PC relative
MIPS16 instructions referencing other sections, unless they are external branches.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-mips.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index fbab72c..cb43b84 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2006-11-03 Thiemo Seufer <ths@mips.com>
+ * config/tc-mips.c (md_pcrel_from_section): Disallow PC relative
+ MIPS16 instructions referencing other sections, unless they are
+ external branches.
+
+2006-11-03 Thiemo Seufer <ths@mips.com>
+
* config/tc-mips.c (mips_cpu_info_table): The 25Kf is a MIPS64
release 1 CPU.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 4eca5bb..ea294e9 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -11544,6 +11544,10 @@ md_pcrel_from (fixS *fixP)
/* Return the address of the delay slot. */
return addr + 4;
default:
+ /* We have no relocation type for PC relative MIPS16 intructions. */
+ if (fixP->fx_addsy && S_GET_SEGMENT (fixP->fx_addsy) != now_seg)
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("PC relative MIPS16 instruction references a different section"));
return addr;
}
}