Browse Source

* config/tc-hppa.c (md_apply_fix): Handle 22 bit fmt insn like a

17 bit fmt insn.
gdb-premipsmulti-2000-06-06-branch
Jeff Law 28 years ago
parent
commit
90700a5341
  1. 5
      gas/ChangeLog
  2. 8
      gas/config/tc-hppa.c

5
gas/ChangeLog

@ -1,3 +1,8 @@
Mon May 3 10:26:03 1999 Jeffrey A Law (law@cygnus.com)
* config/tc-hppa.c (md_apply_fix): Handle 22 bit fmt insn like a
17 bit fmt insn.
1999-04-30 Nick Clifton <nickc@cygnus.com> 1999-04-30 Nick Clifton <nickc@cygnus.com>
* config/tc-mcore.c (mcore_s_section): Dump literals before * config/tc-mcore.c (mcore_s_section): Dump literals before

8
gas/config/tc-hppa.c

@ -3039,7 +3039,7 @@ md_apply_fix (fixP, valp)
&& fmt != 32 && fmt != 32
#endif #endif
) )
new_val = ((fmt == 12 || fmt == 17) ? 8 : 0); new_val = ((fmt == 12 || fmt == 17 || fmt == 22) ? 8 : 0);
#ifdef OBJ_SOM #ifdef OBJ_SOM
/* These field selectors imply that we do not want an addend. */ /* These field selectors imply that we do not want an addend. */
else if (hppa_fixP->fx_r_field == e_psel else if (hppa_fixP->fx_r_field == e_psel
@ -3048,7 +3048,7 @@ md_apply_fix (fixP, valp)
|| hppa_fixP->fx_r_field == e_tsel || hppa_fixP->fx_r_field == e_tsel
|| hppa_fixP->fx_r_field == e_rtsel || hppa_fixP->fx_r_field == e_rtsel
|| hppa_fixP->fx_r_field == e_ltsel) || hppa_fixP->fx_r_field == e_ltsel)
new_val = ((fmt == 12 || fmt == 17) ? 8 : 0); new_val = ((fmt == 12 || fmt == 17 || fmt == 22) ? 8 : 0);
/* This is truely disgusting. The machine independent code blindly /* This is truely disgusting. The machine independent code blindly
adds in the value of the symbol being relocated against. Damn! */ adds in the value of the symbol being relocated against. Damn! */
else if (fmt == 32 else if (fmt == 32
@ -3063,13 +3063,13 @@ md_apply_fix (fixP, valp)
/* Handle pc-relative exceptions from above. */ /* Handle pc-relative exceptions from above. */
#define arg_reloc_stub_needed(CALLER, CALLEE) \ #define arg_reloc_stub_needed(CALLER, CALLEE) \
((CALLEE) && (CALLER) && ((CALLEE) != (CALLER))) ((CALLEE) && (CALLER) && ((CALLEE) != (CALLER)))
if ((fmt == 12 || fmt == 17) if ((fmt == 12 || fmt == 17 || fmt == 22)
&& fixP->fx_addsy && fixP->fx_addsy
&& fixP->fx_pcrel && fixP->fx_pcrel
&& !arg_reloc_stub_needed ((long) ((obj_symbol_type *) && !arg_reloc_stub_needed ((long) ((obj_symbol_type *)
fixP->fx_addsy->bsym)->tc_data.ap.hppa_arg_reloc, fixP->fx_addsy->bsym)->tc_data.ap.hppa_arg_reloc,
hppa_fixP->fx_arg_reloc) hppa_fixP->fx_arg_reloc)
&& ((int)(*valp) > -262144 && (int)(*valp) < 262143) && (((int)(*valp) > -262144 && (int)(*valp) < 262143) && fmt != 22)
&& S_GET_SEGMENT (fixP->fx_addsy) == hppa_fixP->segment && S_GET_SEGMENT (fixP->fx_addsy) == hppa_fixP->segment
&& !(fixP->fx_subsy && !(fixP->fx_subsy
&& S_GET_SEGMENT (fixP->fx_subsy) != hppa_fixP->segment)) && S_GET_SEGMENT (fixP->fx_subsy) != hppa_fixP->segment))

Loading…
Cancel
Save