From 648178740aef7c86a527e4ff02784c8962b262ae Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Fri, 3 Nov 2006 16:27:41 +0000 Subject: [PATCH] * config/tc-mips.c (md_pcrel_from_section): Disallow PC relative MIPS16 instructions referencing other sections, unless they are external branches. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index fbab72c968..cb43b8463c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2006-11-03 Thiemo Seufer + + * 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 * config/tc-mips.c (mips_cpu_info_table): The 25Kf is a MIPS64 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 4eca5bb81e..ea294e9c14 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; } }