Commit a6f7ba17 by Jeffrey A Law Committed by Jeff Law

mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.

        * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.
        (TARGET_MULT_BUG): Define.
        (TARGET_DEFAULT): Default to TARGET_MULT_BUG.
        * mn10300.md (mulsi3): Handle TARGET_MULT_BUG.

From-SVN: r16173
parent fc554787
Sat Oct 25 12:20:58 1997 Jeffrey A Law (law@cygnus.com)
* mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.
(TARGET_MULT_BUG): Define.
(TARGET_DEFAULT): Default to TARGET_MULT_BUG.
* mn10300.md (mulsi3): Handle TARGET_MULT_BUG.
Fri Oct 24 17:40:34 1997 Jeffrey A Law (law@cygnus.com) Fri Oct 24 17:40:34 1997 Jeffrey A Law (law@cygnus.com)
* mn10200.c (indirect_memory_operand): Delete unused function. * mn10200.c (indirect_memory_operand): Delete unused function.
......
...@@ -49,11 +49,15 @@ extern struct rtx_def *zero_areg; ...@@ -49,11 +49,15 @@ extern struct rtx_def *zero_areg;
where VALUE is the bits to set or minus the bits to clear. where VALUE is the bits to set or minus the bits to clear.
An empty string NAME is used to identify the default VALUE. */ An empty string NAME is used to identify the default VALUE. */
/* Generate code to work around mul/mulq bugs on the mn10300. */
#define TARGET_MULT_BUG (target_flags & 0x1)
#define TARGET_SWITCHES \ #define TARGET_SWITCHES \
{{ "", TARGET_DEFAULT}} {{ "mult-bug", 0x1}, \
{ "no-mult-bug", -0x1}, \
{ "", TARGET_DEFAULT}}
#ifndef TARGET_DEFAULT #ifndef TARGET_DEFAULT
#define TARGET_DEFAULT 0 #define TARGET_DEFAULT 0x1
#endif #endif
/* Print subsidiary information on the compiler version in use. */ /* Print subsidiary information on the compiler version in use. */
......
...@@ -730,7 +730,13 @@ ...@@ -730,7 +730,13 @@
(mult:SI (match_operand:SI 1 "register_operand" "%0") (mult:SI (match_operand:SI 1 "register_operand" "%0")
(match_operand:SI 2 "register_operand" "d")))] (match_operand:SI 2 "register_operand" "d")))]
"" ""
"mul %2,%0" "*
{
if (TARGET_MULT_BUG)
return \"nop\;nop\;mul %2,%0\";
else
return \"mul %2,%0\";
}"
[(set_attr "cc" "set_zn")]) [(set_attr "cc" "set_zn")])
(define_insn "udivmodsi4" (define_insn "udivmodsi4"
......
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