OSDN Git Service

* arm.c (add_constant): When taking the address of an item in the
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Nov 1998 08:00:15 +0000 (08:00 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Nov 1998 08:00:15 +0000 (08:00 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23510 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 48fa0a3..4dd177d 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 3cfdeb3..7d0f5ca 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 374d5bf..c97cd02 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...