mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-24 23:49:39 +08:00
Add patch from release branch accidentally left off the mainline.
* mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2, fix_truncsfdi2): Change *X to ?*X. From-SVN: r16954
This commit is contained in:
parent
249555b0af
commit
0609f0216f
@ -118,6 +118,11 @@ Tue Nov 25 23:33:29 1997 scott snyder <snyder@d0sgif.fnal.gov>
|
||||
|
||||
* libgcc2.c (__throw): Initialize HANDLER.
|
||||
|
||||
Tue Nov 25 14:08:12 1997 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2,
|
||||
fix_truncsfdi2): Change *X to ?*X.
|
||||
|
||||
Tue Nov 25 10:00:42 1997 Richard Henderson (rth@cygnus.com)
|
||||
|
||||
* alpha.h (CONST_OK_FOR_LETTER): Fix 'L' handling.
|
||||
|
@ -2773,11 +2773,17 @@ move\\t%0,%z4\\n\\
|
||||
;; operand zero, because then the address in the move instruction will be
|
||||
;; clobbered. We mark the scratch register as early clobbered to prevent this.
|
||||
|
||||
;; We need the ?X in alternative 1 so that it will be choosen only if the
|
||||
;; destination is a floating point register. Otherwise, alternative 1 can
|
||||
;; have lower cost than alternative 0 (because there is one less loser), and
|
||||
;; can be choosen when it won't work (because integral reloads into FP
|
||||
;; registers are not supported).
|
||||
|
||||
(define_insn "fix_truncdfsi2"
|
||||
[(set (match_operand:SI 0 "general_operand" "=d,*f,R,o")
|
||||
(fix:SI (match_operand:DF 1 "register_operand" "f,*f,f,f")))
|
||||
(clobber (match_scratch:SI 2 "=d,*d,&d,&d"))
|
||||
(clobber (match_scratch:DF 3 "=f,*X,f,f"))]
|
||||
(clobber (match_scratch:DF 3 "=f,?*X,f,f"))]
|
||||
"TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT"
|
||||
"*
|
||||
{
|
||||
@ -2802,7 +2808,7 @@ move\\t%0,%z4\\n\\
|
||||
[(set (match_operand:SI 0 "general_operand" "=d,*f,R,o")
|
||||
(fix:SI (match_operand:SF 1 "register_operand" "f,*f,f,f")))
|
||||
(clobber (match_scratch:SI 2 "=d,*d,&d,&d"))
|
||||
(clobber (match_scratch:SF 3 "=f,*X,f,f"))]
|
||||
(clobber (match_scratch:SF 3 "=f,?*X,f,f"))]
|
||||
"TARGET_HARD_FLOAT"
|
||||
"*
|
||||
{
|
||||
@ -2835,7 +2841,7 @@ move\\t%0,%z4\\n\\
|
||||
(define_insn "fix_truncdfdi2"
|
||||
[(set (match_operand:DI 0 "general_operand" "=d,*f,R,o")
|
||||
(fix:DI (match_operand:DF 1 "register_operand" "f,*f,f,f")))
|
||||
(clobber (match_scratch:DF 2 "=f,*X,f,f"))]
|
||||
(clobber (match_scratch:DF 2 "=f,?*X,f,f"))]
|
||||
"TARGET_HARD_FLOAT && TARGET_64BIT && TARGET_DOUBLE_FLOAT"
|
||||
"*
|
||||
{
|
||||
@ -2862,7 +2868,7 @@ move\\t%0,%z4\\n\\
|
||||
(define_insn "fix_truncsfdi2"
|
||||
[(set (match_operand:DI 0 "general_operand" "=d,*f,R,o")
|
||||
(fix:DI (match_operand:SF 1 "register_operand" "f,*f,f,f")))
|
||||
(clobber (match_scratch:DF 2 "=f,*X,f,f"))]
|
||||
(clobber (match_scratch:DF 2 "=f,?*X,f,f"))]
|
||||
"TARGET_HARD_FLOAT && TARGET_64BIT && TARGET_DOUBLE_FLOAT"
|
||||
"*
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user