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
This commit is contained in:
parent
fc55478797
commit
a6f7ba1798
@ -1,3 +1,10 @@
|
||||
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)
|
||||
|
||||
* mn10200.c (indirect_memory_operand): Delete unused function.
|
||||
|
@ -49,11 +49,15 @@ extern struct rtx_def *zero_areg;
|
||||
where VALUE is the bits to set or minus the bits to clear.
|
||||
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 \
|
||||
{{ "", TARGET_DEFAULT}}
|
||||
{{ "mult-bug", 0x1}, \
|
||||
{ "no-mult-bug", -0x1}, \
|
||||
{ "", TARGET_DEFAULT}}
|
||||
|
||||
#ifndef TARGET_DEFAULT
|
||||
#define TARGET_DEFAULT 0
|
||||
#define TARGET_DEFAULT 0x1
|
||||
#endif
|
||||
|
||||
/* Print subsidiary information on the compiler version in use. */
|
||||
|
@ -730,7 +730,13 @@
|
||||
(mult:SI (match_operand:SI 1 "register_operand" "%0")
|
||||
(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")])
|
||||
|
||||
(define_insn "udivmodsi4"
|
||||
|
Loading…
Reference in New Issue
Block a user