diff options
author | Jeff Law <law@redhat.com> | 1993-12-06 01:07:03 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1993-12-06 01:07:03 +0000 |
commit | 7b624bf25c44cb84243a1187554a350400b79594 (patch) | |
tree | 9f57abfd6afbfa778a973f318d674f8b82daa52d /gas | |
parent | e2767a01156544f42c82b89c7fb2bc913ac4e041 (diff) | |
download | gdb-7b624bf25c44cb84243a1187554a350400b79594.zip gdb-7b624bf25c44cb84243a1187554a350400b79594.tar.gz gdb-7b624bf25c44cb84243a1187554a350400b79594.tar.bz2 |
* config/tc-hppa.c (evaluate_absolute): Support e_rrsel and
e_rlsel field selectors.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 13 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 17 |
2 files changed, 22 insertions, 8 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index cc69bcd..2ebea9c 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 1be6fa9..c585e85 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); |