* config/tc-hppa.c (evaluate_absolute): Support e_rrsel and

e_rlsel field selectors.
This commit is contained in:
Jeff Law
1993-12-06 01:07:03 +00:00
parent e2767a0115
commit 7b624bf25c
2 changed files with 22 additions and 8 deletions

View File

@ -1,3 +1,16 @@
Sun Dec 5 17:05:29 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
* config/tc-hppa.c (evaluate_absolute): Support e_rrsel and
e_rlsel field selectors.
Fri Dec 3 18:33:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* config/obj-elf.h: If ECOFF_DEBUGGING, undef
SEPARATE_STAB_SECTIONS and INIT_STAB_SECTION, and define
OBJ_PROCESS_STAB to call ecoff_stab.
* config/obj-elf.c: Don't compile obj_elf_init_stab_section if
INIT_STAB_SECTION is not defined.
Fri Dec 3 10:56:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
* config/tc-hppa.c (md_apply_fix): Delete old wrapper function.

View File

@ -2771,9 +2771,8 @@ tc_gen_reloc (section, fixp)
relocation should be either 0 (no static link) or 2
(static link required).
FIXME: assume that fx_addnumber contains this
information */
reloc->addend = fixp->fx_addnumber;
FIXME: We always assume no static link! */
reloc->addend = 0;
break;
case R_HPPA_ABS_CALL_11:
@ -3627,8 +3626,6 @@ evaluate_absolute (insn)
/* Add 0x800 and arithmetic shift right 11 bits. */
case e_ldsel:
value += 0x800;
value = (value & 0xfffff800) >> 11;
break;
@ -3637,11 +3634,15 @@ evaluate_absolute (insn)
value |= 0xfffff800;
break;
/* This had better get fixed. It looks like we're quickly moving
to LR/RR. FIXME. */
#define RSEL_ROUND(c) (((c) + 0x1000) & ~0x1fff)
case e_rrsel:
value = (RSEL_ROUND (value) & 0x7ff) + (value - RSEL_ROUND (value));
break;
case e_lrsel:
abort ();
value = (RSEL_ROUND (value) >> 11) & 0x1fffff;
break;
#undef RSEL_ROUND
default:
BAD_CASE (field_selector);