diff options
author | Stephane Carrez <Stephane.Carrez@worldnet.fr> | 2001-01-11 22:10:39 +0100 |
---|---|---|
committer | Stephane Carrez <ciceron@gcc.gnu.org> | 2001-01-11 22:10:39 +0100 |
commit | 76d06edcf6c741801b51ecf31a48f262c8f85c52 (patch) | |
tree | 16b71f3adf00aee6f502293421535ee5a45bd8c8 | |
parent | 1594c6bcecdb10d7e5d14029d64734352d18ae55 (diff) | |
download | gcc-76d06edcf6c741801b51ecf31a48f262c8f85c52.zip gcc-76d06edcf6c741801b51ecf31a48f262c8f85c52.tar.gz gcc-76d06edcf6c741801b51ecf31a48f262c8f85c52.tar.bz2 |
Fix operand numbers in m68hc11.md
From-SVN: r38924
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.md | 86 |
2 files changed, 53 insertions, 45 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6c1b1fe..6fc8dc2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2001-01-11 Stephane Carrez <Stephane.Carrez@worldnet.fr> + + * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers. + (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise. + (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise. + (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise. + (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise. + (cmphi_z_used): Don't use '@' for the output. + (tstqi_z_used): Likewise. + (cmpqi_z_used): Likewise. + (one_cmplsi2): Likewise. + 2001-01-11 Alexandre Oliva <aoliva@redhat.com> * config/sh/sh.c (barrier_align): Recognize branch around far diff --git a/gcc/config/m68hc11/m68hc11.md b/gcc/config/m68hc11/m68hc11.md index b833069..6a60b83 100644 --- a/gcc/config/m68hc11/m68hc11.md +++ b/gcc/config/m68hc11/m68hc11.md @@ -1,5 +1,5 @@ ;;- Machine description file for Motorola 68HC11 and 68HC12. -;;- Copyright (C) 1999, 2000 Free Software Foundation, Inc. +;;- Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. ;;- Contributed by Stephane Carrez (stcarrez@worldnet.fr) ;; This file is part of GNU CC. @@ -214,8 +214,7 @@ (use (match_operand:HI 1 "hard_reg_operand" "dxy")) (use (reg:HI 11))] "" - "@ - #") + "#") (define_split /* "tstqi_z_used" */ [(set (cc0) @@ -305,8 +304,7 @@ (use (match_operand:HI 2 "hard_reg_operand" "dxy")) (use (reg:HI 11))] "" - "@ - #") + "#") (define_split /* "cmphi_z_used" */ [(set (cc0) @@ -385,8 +383,7 @@ (use (match_operand:HI 2 "hard_reg_operand" "dxy")) (use (reg:HI 11))] "" - "@ - #") + "#") (define_split /* cmpqi_z_used */ [(set (cc0) @@ -2113,10 +2110,10 @@ (define_insn "*adcq" [(set (match_operand:QI 0 "register_operand" "=q") (plus:QI (plus:QI (reg:QI 7) - (match_operand:QI 2 "register_operand" "%0")) - (match_operand:QI 3 "general_operand" "ium")))] + (match_operand:QI 1 "register_operand" "%0")) + (match_operand:QI 2 "general_operand" "ium")))] "" - "adc%0\\t%b3") + "adc%0\\t%b2") ;;-------------------------------------------------------------------- ;;- Subtract instructions. @@ -2368,10 +2365,10 @@ (define_insn "*subcq" [(set (match_operand:QI 0 "register_operand" "=q") (minus:QI (minus:QI (reg:QI 7) - (match_operand:QI 2 "register_operand" "0")) - (match_operand:QI 3 "general_operand" "ium")))] + (match_operand:QI 1 "register_operand" "0")) + (match_operand:QI 2 "general_operand" "ium")))] "" - "sbc%0\\t%b3") + "sbc%0\\t%b2") ;;-------------------------------------------------------------------- ;;- Multiply instructions. @@ -3504,8 +3501,7 @@ [(set (match_operand:SI 0 "non_push_operand" "=D") (not:SI (match_operand:SI 1 "general_operand" "0")))] "" - "@ - bsr\\t___one_cmplsi2") + "bsr\\t___one_cmplsi2") (define_insn "one_cmplhi2" [(set (match_operand:HI 0 "non_push_operand" "=d,!um,*A") @@ -3746,7 +3742,7 @@ [(set (match_operand:SI 0 "nonimmediate_operand" "=D,*um") (ashift:SI (match_operand:SI 1 "general_operand" "Duim,D") (const_int 16))) - (clobber (match_scratch:HI 3 "=X,X"))] + (clobber (match_scratch:HI 2 "=X,X"))] "" "#") @@ -3755,7 +3751,7 @@ (ashift:SI (zero_extend:HI (match_operand:HI 1 "general_operand" "duim*A")) (const_int 16))) - (clobber (match_scratch:HI 3 "=X"))] + (clobber (match_scratch:HI 2 "=X"))] "" "#") @@ -3764,7 +3760,7 @@ (ashift:SI (zero_extend:HI (match_operand:HI 1 "general_operand" "duim*a")) (const_int 16))) - (clobber (match_scratch:HI 3 "=X"))] + (clobber (match_scratch:HI 2 "=X"))] "reload_completed" [(set (reg:HI 0) (match_dup 1)) (set (reg:HI 1) (const_int 0))] @@ -3774,7 +3770,7 @@ [(set (match_operand:SI 0 "non_push_operand" "=D,D,*um,?*um") (ashift:SI (match_operand:SI 1 "nonimmediate_operand" "0,*um,0,*um") (const_int 1))) - (clobber (match_scratch:HI 3 "=X,X,&d,&d"))] + (clobber (match_scratch:HI 2 "=X,X,&d,&d"))] "" "* { @@ -3828,20 +3824,20 @@ (define_insn "*ashlsi3_const" [(set (match_operand:SI 0 "register_operand" "+D") (ashift:SI (match_dup 0) - (match_operand:HI 2 "const_int_operand" ""))) - (clobber (match_scratch:HI 3 "=y"))] + (match_operand:HI 1 "const_int_operand" ""))) + (clobber (match_scratch:HI 2 "=y"))] "" "* { CC_STATUS_INIT; - return \"ldy\\t%2\\n\\tbsr\\t___ashlsi3\"; + return \"ldy\\t%1\\n\\tbsr\\t___ashlsi3\"; }") (define_insn "*ashlsi3" [(set (match_operand:SI 0 "register_operand" "+D,D") (ashift:SI (match_dup 0) - (match_operand:HI 2 "general_operand" "y,m"))) - (clobber (match_scratch:HI 3 "=2,X"))] + (match_operand:HI 1 "general_operand" "y,m"))) + (clobber (match_scratch:HI 2 "=1,X"))] "" "* { @@ -3852,12 +3848,12 @@ and this conflicts with all reloads. Since X, Y, Z are used there is not enough register in class A_REGS. - Assuming that 'operands[2]' does not refer to the stack (which + Assuming that 'operands[1]' does not refer to the stack (which is true for 68hc11 only, we save temporary the value of Y. */ - if (!Y_REG_P (operands[3])) + if (!Y_REG_P (operands[2])) { output_asm_insn (\"pshy\", operands); - output_asm_insn (\"ldy\\t%2\", operands); + output_asm_insn (\"ldy\\t%1\", operands); output_asm_insn (\"bsr\\t___ashlsi3\", operands); return \"puly\"; } @@ -4229,20 +4225,20 @@ (define_insn "*ashrsi3_const" [(set (match_operand:SI 0 "register_operand" "+D") (ashiftrt:SI (match_dup 0) - (match_operand:HI 2 "const_int_operand" ""))) - (clobber (match_scratch:HI 3 "=y"))] + (match_operand:HI 1 "const_int_operand" ""))) + (clobber (match_scratch:HI 2 "=y"))] "" "* { CC_STATUS_INIT; - return \"ldy\\t%2\\n\\tbsr\\t___ashrsi3\"; + return \"ldy\\t%1\\n\\tbsr\\t___ashrsi3\"; }") (define_insn "*ashrsi3" [(set (match_operand:SI 0 "register_operand" "+D,D") (ashiftrt:SI (match_dup 0) - (match_operand:HI 2 "general_operand" "y,m"))) - (clobber (match_scratch:HI 3 "=2,X"))] + (match_operand:HI 1 "general_operand" "y,m"))) + (clobber (match_scratch:HI 2 "=1,X"))] "" "* { @@ -4252,12 +4248,12 @@ and this conflicts with all reloads. Since X, Y, Z are used there is not enough register in class A_REGS. - Assuming that 'operands[2]' does not refer to the stack (which + Assuming that 'operands[1]' does not refer to the stack (which is true for 68hc11 only, we save temporary the value of Y. */ - if (!Y_REG_P (operands[3])) + if (!Y_REG_P (operands[2])) { output_asm_insn (\"pshy\", operands); - output_asm_insn (\"ldy\\t%2\", operands); + output_asm_insn (\"ldy\\t%1\", operands); output_asm_insn (\"bsr\\t___ashrsi3\", operands); return \"puly\"; } @@ -4504,7 +4500,7 @@ [(set (match_operand:SI 0 "non_push_operand" "=D,D,um") (lshiftrt:SI (match_operand:SI 1 "general_operand" "uim,0,D") (const_int 16))) - (clobber (match_scratch:HI 3 "=X,X,X"))] + (clobber (match_scratch:HI 2 "=X,X,X"))] "" "# xgdx\\n\\tldx\\t#0 @@ -4514,7 +4510,7 @@ [(set (match_operand:SI 0 "non_push_operand" "=D,*um") (lshiftrt:SI (match_operand:SI 1 "nonimmediate_operand" "D*um,*um") (const_int 1))) - (clobber (match_scratch:HI 3 "=X,&d"))] + (clobber (match_scratch:HI 2 "=X,&d"))] "" "* { @@ -4563,20 +4559,20 @@ (define_insn "*lshrsi3_const" [(set (match_operand:SI 0 "register_operand" "+D") (lshiftrt:SI (match_dup 0) - (match_operand:HI 2 "const_int_operand" ""))) - (clobber (match_scratch:HI 3 "=y"))] + (match_operand:HI 1 "const_int_operand" ""))) + (clobber (match_scratch:HI 2 "=y"))] "" "* { CC_STATUS_INIT; - return \"ldy\\t%2\\n\\tbsr\\t___lshrsi3\"; + return \"ldy\\t%1\\n\\tbsr\\t___lshrsi3\"; }") (define_insn "*lshrsi3" [(set (match_operand:SI 0 "register_operand" "+D,D") (lshiftrt:SI (match_dup 0) - (match_operand:HI 2 "general_operand" "y,m"))) - (clobber (match_scratch:HI 3 "=2,X"))] + (match_operand:HI 1 "general_operand" "y,m"))) + (clobber (match_scratch:HI 2 "=1,X"))] "" "* { @@ -4586,12 +4582,12 @@ and this conflicts with all reloads. Since X, Y, Z are used there is not enough register in class A_REGS. - Assuming that 'operands[2]' does not refer to the stack (which + Assuming that 'operands[1]' does not refer to the stack (which is true for 68hc11 only, we save temporary the value of Y. */ - if (!Y_REG_P (operands[3])) + if (!Y_REG_P (operands[2])) { output_asm_insn (\"pshy\", operands); - output_asm_insn (\"ldy\\t%2\", operands); + output_asm_insn (\"ldy\\t%1\", operands); output_asm_insn (\"bsr\\t___lshrsi3\", operands); return \"puly\"; } |