This fixes the processing of BFD_RELOC_RL78_DIFF fixups when the size is less

than 4.  This affects DWARF debug info generation in particular.

	* config/tc-rl78.c (md_apply_fix): Correct handling of small sized
	RELOC_RL78_DIFF fixups.
This commit is contained in:
Nick Clifton 2014-08-18 17:34:03 +01:00
parent 3c8c5dcc98
commit 3ce3a066e1
2 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2014-08-18 Nick Clifton <nickc@redhat.com>
* config/tc-rl78.c (md_apply_fix): Correct handling of small sized
RELOC_RL78_DIFF fixups.
2014-08-18 Alan Modra <amodra@gmail.com>
* read.c (parse_mri_cons): Warning fix.

View File

@ -1361,13 +1361,22 @@ md_apply_fix (struct fix * f ATTRIBUTE_UNUSED,
break;
case BFD_RELOC_32:
case BFD_RELOC_RL78_DIFF:
op[0] = val;
op[1] = val >> 8;
op[2] = val >> 16;
op[3] = val >> 24;
break;
case BFD_RELOC_RL78_DIFF:
op[0] = val;
if (f->fx_size > 1)
op[1] = val >> 8;
if (f->fx_size > 2)
op[2] = val >> 16;
if (f->fx_size > 3)
op[3] = val >> 24;
break;
case BFD_RELOC_RL78_HI8:
val = val >> 16;
op[0] = val;