aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1993-12-06 01:07:03 +0000
committerJeff Law <law@redhat.com>1993-12-06 01:07:03 +0000
commit7b624bf25c44cb84243a1187554a350400b79594 (patch)
tree9f57abfd6afbfa778a973f318d674f8b82daa52d /gas
parente2767a01156544f42c82b89c7fb2bc913ac4e041 (diff)
downloadgdb-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/ChangeLog13
-rw-r--r--gas/config/tc-hppa.c17
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);