#ifdef HAVE_AS_NO_MUL_BUG_ABORT_OPTION
#define MAYBE_AS_NO_MUL_BUG_ABORT \
- "%{mno-mul-bug-workaround:-no-mul-bug-abort} "
+ "%{mno-mul-bug-workaround:-no-mul-bug-abort} " \
+ "%{mmul-bug-workaround:-mul-bug-abort} " \
+ "%{!mmul-bug-workaround:%{!mno-mul-bug-workaround:" MUL_BUG_ASM_DEFAULT "}} "
#else
#define MAYBE_AS_NO_MUL_BUG_ABORT
#endif
(MASK_SIDE_EFFECT_PREFIXES + MASK_STACK_ALIGN \
+ MASK_CONST_ALIGN + MASK_DATA_ALIGN \
+ MASK_ALIGN_BY_32 \
- + MASK_PROLOGUE_EPILOGUE + MASK_MUL_BUG)
+ + MASK_PROLOGUE_EPILOGUE)
# else /* 0 */
# define TARGET_DEFAULT \
(MASK_SIDE_EFFECT_PREFIXES + MASK_STACK_ALIGN \
+ MASK_CONST_ALIGN + MASK_DATA_ALIGN \
- + MASK_PROLOGUE_EPILOGUE + MASK_MUL_BUG)
+ + MASK_PROLOGUE_EPILOGUE)
# endif
#endif
+/* Don't depend on the assembler default setting for the errata machinery;
+ always pass the option to turn it on or off explicitly. But, we have to
+ decide on which is the *GCC* default, and for that we should only need to
+ consider what's in TARGET_DEFAULT; no other changes should be necessary. */
+
+#if (TARGET_DEFAULT & MASK_MUL_BUG)
+#define MUL_BUG_ASM_DEFAULT "-mul-bug-abort"
+#else
+#define MUL_BUG_ASM_DEFAULT "-no-mul-bug-abort"
+#endif
+
/* Local, providing a default for cris_cpu_version. */
#define CRIS_DEFAULT_CPU_VERSION TARGET_CPU_DEFAULT
@opindex mmul-bug-workaround
@opindex mno-mul-bug-workaround
Work around a bug in the @code{muls} and @code{mulu} instructions for CPU
-models where it applies. This option is active by default.
+models where it applies. This option is disabled by default.
@item -mpdebug
@opindex mpdebug