diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 44275901e0a..9bf7e3c55ee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2000-08-07 Graham Stott + * mn10300.md: Use nonimmediate_operand instead of general_operand + on output operands. + * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads. 2000-08-07 Alexandre Oliva diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 125815b1037..b3bff0eec3b 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -56,7 +56,7 @@ }") (define_insn "" - [(set (match_operand:QI 0 "general_operand" "=d*x*a,d*x,d*x*a,d*x*a,m") + [(set (match_operand:QI 0 "nonimmediate_operand" "=d*x*a,d*x,d*x*a,d*x*a,m") (match_operand:QI 1 "general_operand" "0,I,d*xai,m,d*xa"))] "TARGET_AM33 && (register_operand (operands[0], QImode) @@ -99,7 +99,7 @@ [(set_attr "cc" "none,clobber,none_0hit,none_0hit,none_0hit")]) (define_insn "" - [(set (match_operand:QI 0 "general_operand" "=d*a,d,d*a,d,m") + [(set (match_operand:QI 0 "nonimmediate_operand" "=d*a,d,d*a,d,m") (match_operand:QI 1 "general_operand" "0,I,dai,m,d"))] "register_operand (operands[0], QImode) || register_operand (operands[1], QImode)" @@ -146,7 +146,7 @@ }") (define_insn "" - [(set (match_operand:HI 0 "general_operand" "=d*x*a,d*x,d*x*a,d*x*a,m") + [(set (match_operand:HI 0 "nonimmediate_operand" "=d*x*a,d*x,d*x*a,d*x*a,m") (match_operand:HI 1 "general_operand" "0,I,d*x*ai,m,d*x*a"))] "TARGET_AM33 && (register_operand (operands[0], HImode) @@ -189,7 +189,7 @@ [(set_attr "cc" "none,clobber,none_0hit,none_0hit,none_0hit")]) (define_insn "" - [(set (match_operand:HI 0 "general_operand" "=d*a,d,d*a,d,m") + [(set (match_operand:HI 0 "nonimmediate_operand" "=d*a,d,d*a,d,m") (match_operand:HI 1 "general_operand" "0,I,dai,m,d"))] "register_operand (operands[0], HImode) || register_operand (operands[1], HImode)" @@ -275,7 +275,7 @@ }") (define_insn "" - [(set (match_operand:SI 0 "general_operand" + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,ax,dx,a,dxm,dxm,axm,axm,dx,dx,ax,ax,axR,!*y") (match_operand:SI 1 "general_operand" "0,0,I,I,dx,ax,dx,ax,dixm,aixm,dixm,aixm,!*y,axR"))] @@ -339,7 +339,7 @@ }") (define_insn "" - [(set (match_operand:SF 0 "general_operand" "=dx,ax,dx,a,daxm,dax") + [(set (match_operand:SF 0 "nonimmediate_operand" "=dx,ax,dx,a,daxm,dax") (match_operand:SF 1 "general_operand" "0,0,G,G,dax,daxFm"))] "register_operand (operands[0], SFmode) || register_operand (operands[1], SFmode)" @@ -384,7 +384,7 @@ }") (define_insn "" - [(set (match_operand:DI 0 "general_operand" + [(set (match_operand:DI 0 "nonimmediate_operand" "=dx,ax,dx,a,dxm,dxm,axm,axm,dx,dx,ax,ax") (match_operand:DI 1 "general_operand" "0,0,I,I,dx,ax,dx,ax,dxim,axim,dxim,axim"))] @@ -534,7 +534,7 @@ }") (define_insn "" - [(set (match_operand:DF 0 "general_operand" + [(set (match_operand:DF 0 "nonimmediate_operand" "=dx,ax,dx,a,dxm,dxm,axm,axm,dx,dx,ax,ax") (match_operand:DF 1 "general_operand" "0,0,G,G,dx,ax,dx,ax,dxFm,axFm,dxFm,axFm"))] @@ -970,10 +970,10 @@ [(set_attr "cc" "set_zn")]) (define_insn "udivmodsi4" - [(set (match_operand:SI 0 "general_operand" "=dx") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx") (udiv:SI (match_operand:SI 1 "general_operand" "0") (match_operand:SI 2 "general_operand" "dx"))) - (set (match_operand:SI 3 "general_operand" "=&d") + (set (match_operand:SI 3 "nonimmediate_operand" "=&d") (umod:SI (match_dup 1) (match_dup 2)))] "" "* @@ -988,10 +988,10 @@ [(set_attr "cc" "set_zn")]) (define_insn "divmodsi4" - [(set (match_operand:SI 0 "general_operand" "=dx") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx") (div:SI (match_operand:SI 1 "general_operand" "0") (match_operand:SI 2 "general_operand" "dx"))) - (set (match_operand:SI 3 "general_operand" "=d") + (set (match_operand:SI 3 "nonimmediate_operand" "=d") (mod:SI (match_dup 1) (match_dup 2)))] "" "* @@ -1214,7 +1214,7 @@ ;; and storing the register, but they don't need a scratch register ;; which may allow for better code generation. (define_insn "" - [(set (match_operand:QI 0 "general_operand" "=R,d") (const_int 0))] + [(set (match_operand:QI 0 "nonimmediate_operand" "=R,d") (const_int 0))] "" "@ bclr 255,%A0 @@ -1222,7 +1222,7 @@ [(set_attr "cc" "clobber")]) (define_insn "" - [(set (match_operand:QI 0 "general_operand" "=R,d") (const_int -1))] + [(set (match_operand:QI 0 "nonimmediate_operand" "=R,d") (const_int -1))] "" "@ bset 255,%A0 @@ -1230,7 +1230,7 @@ [(set_attr "cc" "clobber,none_0hit")]) (define_insn "" - [(set (match_operand:QI 0 "general_operand" "+R,d") + [(set (match_operand:QI 0 "nonimmediate_operand" "+R,d") (subreg:QI (and:SI (subreg:SI (match_dup 0) 0) (match_operand:SI 1 "const_int_operand" "i,i")) 0))] @@ -1241,7 +1241,7 @@ [(set_attr "cc" "clobber,set_znv")]) (define_insn "" - [(set (match_operand:QI 0 "general_operand" "+R,d") + [(set (match_operand:QI 0 "nonimmediate_operand" "+R,d") (subreg:QI (ior:SI (subreg:SI (match_dup 0) 0) (match_operand:SI 1 "const_int_operand" "i,i")) 0))] @@ -1595,7 +1595,7 @@ "") (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx,dx,!dax,!dax,!dax") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx,dx,!dax,!dax,!dax") (zero_extend:SI (match_operand:QI 1 "general_operand" "0,dax,m,0,dax,m")))] "TARGET_AM33" @@ -1609,7 +1609,7 @@ [(set_attr "cc" "none_0hit")]) (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx,dx") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx,dx") (zero_extend:SI (match_operand:QI 1 "general_operand" "0,d,m")))] "" @@ -1627,7 +1627,7 @@ "") (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx,dx,!dax,!dax,!dax") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx,dx,!dax,!dax,!dax") (zero_extend:SI (match_operand:HI 1 "general_operand" "0,dax,m,0,dax,m")))] "TARGET_AM33" @@ -1641,7 +1641,7 @@ [(set_attr "cc" "none_0hit")]) (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx,dx") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx,dx") (zero_extend:SI (match_operand:HI 1 "general_operand" "0,dx,m")))] "" @@ -1661,7 +1661,7 @@ "") (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx,!dax,!dax") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx,!dax,!dax") (sign_extend:SI (match_operand:QI 1 "general_operand" "0,dx,0,dax")))] "TARGET_AM33" @@ -1673,7 +1673,7 @@ [(set_attr "cc" "none_0hit")]) (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx") (sign_extend:SI (match_operand:QI 1 "general_operand" "0,dx")))] "" @@ -1690,7 +1690,7 @@ "") (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx,!dax,!dax") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx,!dax,!dax") (sign_extend:SI (match_operand:HI 1 "general_operand" "0,dax,0,dax")))] "TARGET_AM33" @@ -1702,7 +1702,7 @@ [(set_attr "cc" "none_0hit")]) (define_insn "" - [(set (match_operand:SI 0 "general_operand" "=dx,dx") + [(set (match_operand:SI 0 "nonimmediate_operand" "=dx,dx") (sign_extend:SI (match_operand:HI 1 "general_operand" "0,dx")))] ""