Commit 74641843 by Richard Earnshaw Committed by Richard Earnshaw

arm.c (add_constant): When taking the address of an item in the pool, get the…

arm.c (add_constant): When taking the address of an item in the pool, get the mode of the item addressed.

* 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
parent 566f153b
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.
......
......@@ -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;
......
......@@ -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...
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment