From 7b624bf25c44cb84243a1187554a350400b79594 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Mon, 6 Dec 1993 01:07:03 +0000 Subject: [PATCH] * config/tc-hppa.c (evaluate_absolute): Support e_rrsel and e_rlsel field selectors. --- gas/ChangeLog | 13 +++++++++++++ gas/config/tc-hppa.c | 17 +++++++++-------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index cc69bcd162d..2ebea9c8acb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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. diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 1be6fa9d3a9..c585e85c80b 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -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); -- 2.30.2