This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Update for ns32k


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]