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
This commit is contained in:
parent
86da66b593
commit
682a45fc0d
|
@ -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],,
|
||||
|
|
Loading…
Reference in New Issue