diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2010-08-20 20:40:56 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2010-08-20 20:40:56 +0200 |
commit | 6c33409079616051a31b9c7546d22dc59a44f24e (patch) | |
tree | 5ea5a409389c895f0c50380b99cb1ab2c8495997 /gcc | |
parent | 561da6bc0b57495cb390311326598b0558d23dd3 (diff) | |
download | gcc-6c33409079616051a31b9c7546d22dc59a44f24e.zip gcc-6c33409079616051a31b9c7546d22dc59a44f24e.tar.gz gcc-6c33409079616051a31b9c7546d22dc59a44f24e.tar.bz2 |
i386.md (ashift RSP splitter): Remove splitter.
* config/i386/i386.md (ashift RSP splitter): Remove splitter.
(pro_epilogue_adjust_stack_di_2): Use "l" constraint for
alternative 1 of operand 2.
From-SVN: r163414
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 26 |
2 files changed, 11 insertions, 30 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc36545..3674805 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,8 +1,14 @@ +2010-08-20 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (ashift RSP splitter): Remove splitter. + (pro_epilogue_adjust_stack_di_2): Use "l" constraint for + alternative 1 of operand 2. + 2010-08-20 Jakub Jelinek <jakub@redhat.com> Paolo Bonzini <bonzini@gnu.org> * simplify-rtx.c (simplify_unary_operation_1): Optimize - (sign_extend (zero_extend ()) and + (sign_extend (zero_extend (...)) and ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))). 2010-08-20 Jakub Jelinek <jakub@redhat.com> @@ -13,14 +19,13 @@ 2010-08-20 Iain Sandoe <iains@gcc.gnu.org> - * config/rs6000/darwin.h (LIB_SPEC): New. Provide save/restFP by + * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by linking libgcc.a. - + 2010-08-20 Jakub Jelinek <jakub@redhat.com> Michael Matz <matz@suse.de> - * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to - sizetype. + * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype. 2010-08-20 Nathan Froyd <froydnj@codesourcery.com> diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index e5de3b9..4d4e4c9 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -5935,10 +5935,6 @@ (const_string "*"))) (set_attr "mode" "HI")]) -;; %%% After Dave's SUBREG_BYTE stuff goes in, re-enable incb %ah -;; type optimizations enabled by define-splits. This is not important -;; for PII, and in fact harmful because of partial register stalls. - (define_insn "*addhi_1_lea" [(set (match_operand:HI 0 "nonimmediate_operand" "=r,rm,r,r") (plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0,r,r") @@ -9637,26 +9633,6 @@ operands[2] = gen_int_mode (1 << INTVAL (operands[2]), DImode); }) -;; Rare case of shifting RSP is handled by generating move and shift -(define_split - [(set (match_operand 0 "register_operand" "") - (ashift (match_operand 1 "register_operand" "") - (match_operand:QI 2 "const_int_operand" ""))) - (clobber (reg:CC FLAGS_REG))] - "reload_completed - && true_regnum (operands[0]) != true_regnum (operands[1])" - [(const_int 0)] -{ - rtx pat, clob; - emit_move_insn (operands[0], operands[1]); - pat = gen_rtx_SET (VOIDmode, operands[0], - gen_rtx_ASHIFT (GET_MODE (operands[0]), - operands[0], operands[2])); - clob = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG)); - emit_insn (gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, pat, clob))); - DONE; -}) - ;; This pattern can't accept a variable shift count, since shifts by ;; zero don't affect the flags. We assume that shifts by constant ;; zero are optimized away. @@ -16411,7 +16387,7 @@ [(set (match_operand:DI 0 "register_operand" "=r,r") (plus:DI (match_operand:DI 1 "register_operand" "0,r") (match_operand:DI 3 "immediate_operand" "i,i"))) - (use (match_operand:DI 2 "register_operand" "r,r")) + (use (match_operand:DI 2 "register_operand" "r,l")) (clobber (reg:CC FLAGS_REG)) (clobber (mem:BLK (scratch)))] "TARGET_64BIT" |