]> gcc.gnu.org Git - gcc.git/commitdiff
arm.c (add_constant): When taking the address of an item in the pool, get the mode...
authorRichard Earnshaw <rearnsha@arm.com>
Tue, 3 Nov 1998 08:00:15 +0000 (08:00 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Tue, 3 Nov 1998 08:00:15 +0000 (08:00 +0000)
* arm.c (add_constant): When taking the address of an item in the
pool, get the mode of the item addressed.
* arm.c (final_prescan_insn case INSN): If an insn doesn't
contain a SET or a PARALLEL, don't consider it for conditional
execution.
Restore ABI compatibility for NetBSD.
* arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in arm.h
(RETURN_IN_MEMORY): Likewise.

From-SVN: r23510

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/netbsd.h

index 48fa0a3cdb6afdd7282c77e366b178584391aa3a..4dd177d00edafe9405e6984b0946c943a05bb30f 100644 (file)
@@ -1,3 +1,17 @@
+Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
+
+       * arm.c (add_constant): When taking the address of an item in the
+       pool, get the mode of the item addressed.
+
+       * arm.c (final_prescan_insn case INSN): If an insn doesn't 
+       contain a SET or a PARALLEL, don't consider it for conditional
+       execution.
+
+       Restore ABI compatibility for NetBSD.
+       * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
+       arm.h
+       (RETURN_IN_MEMORY): Likewise.
+
 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
 
        * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
index 3cfdeb3d3a533ffb86135079aade1ad30396f558..7d0f5ca0fe1b8468f22be6171444ec9766b64e25 100644 (file)
@@ -3488,6 +3488,7 @@ add_constant (x, mode, address_only)
   else if (GET_CODE (x) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P(x))
     {
       *address_only = 1;
+      mode = get_pool_mode (x);
       x = get_pool_constant (x);
     }
 #ifndef AOF_ASSEMBLER
@@ -5933,9 +5934,9 @@ final_prescan_insn (insn, opvec, noperands)
              /* Instructions using or affecting the condition codes make it
                 fail.  */
              scanbody = PATTERN (this_insn);
-             if ((GET_CODE (scanbody) == SET
-                  || GET_CODE (scanbody) == PARALLEL)
-                 && get_attr_conds (this_insn) != CONDS_NOCOND)
+             if ((GET_CODE (scanbody) == SET
+                    || GET_CODE (scanbody) == PARALLEL)
+                 || get_attr_conds (this_insn) != CONDS_NOCOND)
                fail = TRUE;
              break;
 
index 374d5bf65abdd60d78b3636e7988a2eeecb30c24..c97cd02d7d17ab07dae7e72ba489c2e6efb1d60c 100644 (file)
@@ -116,6 +116,15 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef TYPE_OPERAND_FMT
 #define TYPE_OPERAND_FMT "%%%s"
 
+/* NetBSD uses the old PCC style aggregate returning conventions. */
+#undef DEFAULT_PCC_STRUCT_RETURN
+#define DEFAULT_PCC_STRUCT_RETURN 1
+
+/* Although not normally relevant (since by default, all aggregates
+   are returned in memory) compiling some parts of libc requires
+   non-APCS style struct returns.  */
+#undef RETURN_IN_MEMORY
+
 /* VERY BIG NOTE : Change of structure alignment for RiscBSD.
    There are consequences you should be aware of...
 
This page took 0.07372 seconds and 5 git commands to generate.