diff options
author | Jeff Law <law@redhat.com> | 1999-05-03 09:26:28 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1999-05-03 09:26:28 +0000 |
commit | 90700a534134b4c10d1a1991485b906f2cac7ea5 (patch) | |
tree | ff3249c37eabfc977c234d866f06d0aa2397c2ba | |
parent | c10067812f77fa71d41b59080ab618a293e6ae1a (diff) | |
download | gdb-90700a534134b4c10d1a1991485b906f2cac7ea5.zip gdb-90700a534134b4c10d1a1991485b906f2cac7ea5.tar.gz gdb-90700a534134b4c10d1a1991485b906f2cac7ea5.tar.bz2 |
* config/tc-hppa.c (md_apply_fix): Handle 22 bit fmt insn like a
17 bit fmt insn.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 852b6c7..fcd0af38 100644 --- a/gas/ChangeLog +++ b/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> * config/tc-mcore.c (mcore_s_section): Dump literals before diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 8785de8..c0f532c 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -3039,7 +3039,7 @@ md_apply_fix (fixP, valp) && fmt != 32 #endif ) - new_val = ((fmt == 12 || fmt == 17) ? 8 : 0); + new_val = ((fmt == 12 || fmt == 17 || fmt == 22) ? 8 : 0); #ifdef OBJ_SOM /* These field selectors imply that we do not want an addend. */ 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_rtsel || 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 adds in the value of the symbol being relocated against. Damn! */ else if (fmt == 32 @@ -3063,13 +3063,13 @@ md_apply_fix (fixP, valp) /* Handle pc-relative exceptions from above. */ #define arg_reloc_stub_needed(CALLER, CALLEE) \ ((CALLEE) && (CALLER) && ((CALLEE) != (CALLER))) - if ((fmt == 12 || fmt == 17) + if ((fmt == 12 || fmt == 17 || fmt == 22) && fixP->fx_addsy && fixP->fx_pcrel && !arg_reloc_stub_needed ((long) ((obj_symbol_type *) fixP->fx_addsy->bsym)->tc_data.ap.hppa_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 && !(fixP->fx_subsy && S_GET_SEGMENT (fixP->fx_subsy) != hppa_fixP->segment)) |