This is the mail archive of the 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]
Other format: [Raw text]

gcc-3.4: MaverickCrunch coprocessor bugfixes (EP9312)

Hello all,

The attached patch fixes the following main aspects of MaverickCrunch
coprocessor support in GCC-3.4 branch:
  - command-line options
  - workarounds for chip revisions D0 and D1
  - coprocessor registers save/restore on function calls
  - FP comparisons

Best regards,
  -- vladitx

2004-03-05  Vladimir Ivanov  <>

	* doc/invoke.texi <ARM>: Remove "-mcirrus-fix-invalid-insns" and
	"-mno-cirrus-fix-invalid-insns".  Add "-mfix-crunch-d0" and
	* config/arm/arm.h (CPP_SPEC, TARGET_SWITCHES): Remove
	"cirrus-fix-invalid-insns" and "no-cirrus-fix-invalid-insns".  Add
	"fix-crunch-d0" and "fix-crunch-d1".
	* config/arm/arm.c (arm_memory_load_p): Remove.
	(arm_mem_access_p, cirrus_dest_regn_p, cirrus_prev_next_mach_insn,
	cirrus_prev_mach_insn, cirrus_next_mach_insn, cirrus_reorg_branch,
	cirrus_reorg_bug1, cirrus_reorg_bug10_12): New functions.
	(arm_override_options): Simplify Cirrus case.
	(use_return_insn, arm_output_epilogue,
	arm_compute_initial_elimination_offset, arm_get_frame_size,
	arm_expand_prologue): Add Cirrus registers save/restore.
	(dump_minipool, push_minipool_fix): Fix minipool with regard to
	Cirrus workarounds.
	(cirrus_reorg, arm_reorg): Rewrite Cirrus workarounds.
	(get_arm_condition_code): Fix Cirrus FP comparisons.
	(arm_final_prescan_insn): Fix Cirrus insn conditionalising.
	* config/arm/ (define_expand "cmpdi", define_insn
	"*cirrus_cmpdi"): Disable.
	(define_insn "prologue_use"): Add missing length attribute.
	* config/arm/ (define_insn "cirrus_truncdfsi2"): Add
	missing "cirrus" attribute.

Attachment: crunch-3.4.patch
Description: Text document

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