Commit 682a45fc by Hans-Peter Nilsson

re PR target/14471 (Workaround for errata regarding multiplication bug)

	PR target/14471
	* configure.ac (Target-specific assembler checks) <cris-*-*>: New
	case, checking for -no-mul-bug-abort option.
	* configure, config.in: Regenerate.
	* doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
	and -mno-mul-bug-workaround.
	* config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
	("mulsidi3", "umulsidi3"): Prefix output template with "%!".
	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
	Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
	* config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
	sure mulu.d is not last on cache-line.
	* config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
	into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
	(TARGET_SWITCHES): New options -mmul-bug-workaround and
	-mno-mul-bug-workaround.
	(TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
	(PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
	* config/cris/cris.c (cris_operand_extend_operator): Clarify
	relation to MULT in head comment.
	(cris_op_str): Abort for MULT.
	(cris_print_operand) <case '!'>: New case.

From-SVN: r79086
parent 86da66b5
......@@ -2357,6 +2357,14 @@ case "$target" in
[Define if your assembler supports explicit relocations.])])
;;
cris-*-*)
gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
gcc_cv_as_cris_no_mul_bug,[2,15,91],
[-no-mul-bug-abort], [.text],,
[AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
[Define if your assembler supports the -no-mul-bug-abort option.])])
;;
sparc*-*-*)
gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
[.register %g2, #scratch],,
......
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