mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 22:07:58 +08:00
* config/tc-tic80.c (md_apply_fix): Check PC relative relocations
for overflow/underflow, only insert lower 15 bits into instruction.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
start-sanitize-tic80
|
||||||
|
Tue May 13 10:45:56 1997 Fred Fish <fnf@cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-tic80.c (md_apply_fix): Check PC relative relocations
|
||||||
|
for overflow/underflow, only insert lower 15 bits into instruction.
|
||||||
|
|
||||||
|
end-sanitize-tic80
|
||||||
Mon May 12 13:33:08 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
|
Mon May 12 13:33:08 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
|
||||||
|
|
||||||
* config/tc-i386.c (pi): Check for RegMMX.
|
* config/tc-i386.c (pi): Check for RegMMX.
|
||||||
|
@ -917,6 +917,7 @@ md_apply_fix (fixP, val)
|
|||||||
long val;
|
long val;
|
||||||
{
|
{
|
||||||
char *dest = fixP -> fx_frag -> fr_literal + fixP -> fx_where;
|
char *dest = fixP -> fx_frag -> fr_literal + fixP -> fx_where;
|
||||||
|
int overflow;
|
||||||
|
|
||||||
switch (fixP -> fx_r_type)
|
switch (fixP -> fx_r_type)
|
||||||
{
|
{
|
||||||
@ -924,9 +925,18 @@ md_apply_fix (fixP, val)
|
|||||||
md_number_to_chars (dest, (valueT) val, 4);
|
md_number_to_chars (dest, (valueT) val, 4);
|
||||||
break;
|
break;
|
||||||
case R_MPPCR:
|
case R_MPPCR:
|
||||||
/* FIXME! - should check for overflow of the 15 bit field */
|
overflow = (val < 0) ? !(val & 0x8000) : (val & 0x8000);
|
||||||
*dest++ = val >> 2;
|
if (overflow)
|
||||||
*dest = (*dest & 0x80) | val >> 10;
|
{
|
||||||
|
as_bad_where (fixP -> fx_file, fixP -> fx_line, "PC relative target out of range");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
val >>= 2;
|
||||||
|
*dest++ = val & 0xFF;
|
||||||
|
val >>= 8;
|
||||||
|
*dest = (*dest & 0x80) | (val & 0x7F);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case R_ABS:
|
case R_ABS:
|
||||||
md_number_to_chars (dest, (valueT) val, fixP -> fx_size);
|
md_number_to_chars (dest, (valueT) val, fixP -> fx_size);
|
||||||
|
Reference in New Issue
Block a user