* config/tc-hppa.c (evaluate_absolute): Support e_rrsel and
authorJeff Law <law@redhat.com>
Mon, 6 Dec 1993 01:07:03 +0000 (01:07 +0000)
committerJeff Law <law@redhat.com>
Mon, 6 Dec 1993 01:07:03 +0000 (01:07 +0000)
        e_rlsel field selectors.

gas/ChangeLog
gas/config/tc-hppa.c

index cc69bcd162df0d1763279830e2d74905e1db38e1..2ebea9c8acba6d7553f4b88261c14846df65e6f5 100644 (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.
index 1be6fa9d3a9fccafc3a97570cdb4b759e2c7e5b8..c585e85c80b571c4fc3bc2e5c45b38149de14a85 100644 (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);