mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-30 17:31:13 +08:00
PR gas/1804
* config/tc-hppa.c (md_apply_fix): Use number_to_chars_bigendian to output constant data.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2005-11-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||||
|
|
||||||
|
PR gas/1804
|
||||||
|
* config/tc-hppa.c (md_apply_fix): Use number_to_chars_bigendian to
|
||||||
|
output constant data.
|
||||||
|
|
||||||
2005-11-07 Mark Mitchell <mark@codesourcery.com>
|
2005-11-07 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
* doc/Makefile.am (asconfig.texi): Set top_srcdir.
|
* doc/Makefile.am (asconfig.texi): Set top_srcdir.
|
||||||
|
@ -4436,7 +4436,7 @@ md_apply_fix (fixP, valP, seg)
|
|||||||
valueT *valP;
|
valueT *valP;
|
||||||
segT seg ATTRIBUTE_UNUSED;
|
segT seg ATTRIBUTE_UNUSED;
|
||||||
{
|
{
|
||||||
unsigned char *buf;
|
char *fixpos;
|
||||||
struct hppa_fix_struct *hppa_fixP;
|
struct hppa_fix_struct *hppa_fixP;
|
||||||
offsetT new_val;
|
offsetT new_val;
|
||||||
int insn, val, fmt;
|
int insn, val, fmt;
|
||||||
@ -4470,8 +4470,7 @@ md_apply_fix (fixP, valP, seg)
|
|||||||
if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
|
if (fixP->fx_addsy == NULL && fixP->fx_pcrel == 0)
|
||||||
fixP->fx_done = 1;
|
fixP->fx_done = 1;
|
||||||
|
|
||||||
/* There should have been an HPPA specific fixup associated
|
/* There should be a HPPA specific fixup associated with the GAS fixup. */
|
||||||
with the GAS fixup. */
|
|
||||||
hppa_fixP = (struct hppa_fix_struct *) fixP->tc_fix_data;
|
hppa_fixP = (struct hppa_fix_struct *) fixP->tc_fix_data;
|
||||||
if (hppa_fixP == NULL)
|
if (hppa_fixP == NULL)
|
||||||
{
|
{
|
||||||
@ -4481,8 +4480,16 @@ md_apply_fix (fixP, valP, seg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = (unsigned char *) (fixP->fx_frag->fr_literal + fixP->fx_where);
|
fixpos = fixP->fx_frag->fr_literal + fixP->fx_where;
|
||||||
insn = bfd_get_32 (stdoutput, buf);
|
|
||||||
|
if (fixP->fx_size != 4 || hppa_fixP->fx_r_format == 32)
|
||||||
|
{
|
||||||
|
/* Handle constant output. */
|
||||||
|
number_to_chars_bigendian (fixpos, *valP, fixP->fx_size);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
insn = bfd_get_32 (stdoutput, fixpos);
|
||||||
fmt = bfd_hppa_insn2fmt (stdoutput, insn);
|
fmt = bfd_hppa_insn2fmt (stdoutput, insn);
|
||||||
|
|
||||||
/* If there is a symbol associated with this fixup, then it's something
|
/* If there is a symbol associated with this fixup, then it's something
|
||||||
@ -4652,7 +4659,7 @@ md_apply_fix (fixP, valP, seg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Insert the relocation. */
|
/* Insert the relocation. */
|
||||||
bfd_put_32 (stdoutput, insn, buf);
|
bfd_put_32 (stdoutput, insn, fixpos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Exactly what point is a PC-relative offset relative TO?
|
/* Exactly what point is a PC-relative offset relative TO?
|
||||||
|
Reference in New Issue
Block a user