This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Update for ns32k
- To: gcc-patches at gcc dot gnu dot org
- Subject: Update for ns32k
- From: Ian Dall <ian at beware dot dropbear dot id dot au>
- Date: Thu, 27 Jan 2000 21:53:11 +1030 (CST)
- Cc: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
Since about gcc 2.95, make bootstrap has failed for the ns32k for a
variety of reasons. This patch combines changes by Hans-Peter Nilsson
<hans-peter.nilsson@axis.com> and myself. With these changes, and a
small hack to libiberty.h (not included), snapshot 20000124
successfully bootstraps for netbsd-pc532.
The hack to libiberty.h is to remove the prototype for vasprintf
because it conflicts with a standard header. This is not the correct
fix but I notice that this problem preventing compilation on netbsd
was reported earlier by someone else.
Here are proposed changelog entries:
Sun Jan 16 14:15:25 2000 Ian Dall <ian@sibyl.beware.dropbear.id.au>
* config/ns32k/xm-ns32k.h (memcpy, memset, memcmp): delete.
Remove redundant include of xm-ns32k.h.
* config/ns32k/xm-genix.h (memcpy, memset, memcmp): add
definitions.
Remove redundant include of xm-ns32k.h.
* config/ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer
undefine.
Remove redundant include of xm-ns32k.h.
* config/ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add
instructions.
* config/ns32k/ns32k.h
Update comment on multiply-add instructions.
(TARGET_SWITCHES): Add documentation strings.
(DWARF_FRAME_REGNUM): Override default definition.
(REG_CLASS_CONTENTS): Add comments.
(SUBSET_P): format to reduce line length.
(SMALL_REGISTER_CLASSES): Make a run time option.
(GO_IF_NONINDEXED_ADDRESS): Reformat.
(GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
dereferencing it. Braces to avoid "ambiguous else" were misplaced.
(regclass_map): fix typo in comment.
* config/ns32k/ns32k.c:
Add spaces before parentheses for consistant style.
Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
(trace, reg_or_mem_operand): Delete, unused function.
(calc_address_cost): Small offsets are cheaper than large ones.
(expand_block_move): Generate more efficient code when bytes is a
known at compile time.
* config/ns32k/ns32k.md: Alternate constraints for multiply-add
instructions.
(udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
instead of reg_or_mem_operand. Use VOIDmode for load or push
effective address.
Mon Jan 10 23:48:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
* config/ns32k/ns32k.md: Use nonimmediate_operand or stricter for
outputs, not general_operand.
Similarly use "=rm" or stricter, not "=g".
For input operands, use stricter constraints than "g" if not
general_operand.
Similarly use stricter predicate than "general_operand" when
stricter constraints than "g" are present, except for "0"-like
constraints.
(movstrsi): Use "memory_operand" for operands 0 and 1.
(truncsiqi2, truncsihi2, trunchiqi2): Remove.
(udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
not reg_or_mem_operand.
(udivmoddisi4): Ditto.
Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
Use nonimmediate_operand for operand 3, not register_operand.
(udivmoddiqi4_internal): Use register_operand for operand 1, not
reg_or_mem_operand.
ns32k.diffs.gz