This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
i386 cleanup
- To: rth at cygnus dot com, gcc-patches at gcc dot gnu dot org, patches at x86-64 dot org
- Subject: i386 cleanup
- From: Jan Hubicka <jh at suse dot cz>
- Date: Wed, 21 Mar 2001 10:19:39 +0100
Hi,
After last patches to expr.c, I think we can safely remove pushqi1, since it
will be never used (and i386 don't have such instruction anyway).
While I was looking on that, I found that we also do have popqi/pophi patterns,
that are completely unneeded.
OK?
Honza
Wed Mar 21 10:17:14 CET 2001 Jan Hubicka <jh@suse.cz>
* i386.md (pophi1, popqi1, pushqi1): Remove.
Index: i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.238
diff -c -3 -p -r1.238 i386.md
*** i386.md 2001/03/19 17:56:32 1.238
--- i386.md 2001/03/21 09:16:42
***************
*** 1745,1760 ****
[(set_attr "type" "push")
(set_attr "mode" "HI")])
- (define_insn "*pophi1"
- [(set (match_operand:HI 0 "nonimmediate_operand" "=r*m")
- (mem:HI (reg:SI 7)))
- (set (reg:SI 7)
- (plus:SI (reg:SI 7) (const_int 2)))]
- "!TARGET_64BIT"
- "pop{w}\\t%0"
- [(set_attr "type" "pop")
- (set_attr "mode" "HI")])
-
(define_insn "*movhi_1"
[(set (match_operand:HI 0 "nonimmediate_operand" "=*a,r,r,*a,r,m")
(match_operand:HI 1 "general_operand" "i,r,rn,rm,rm,rn"))]
--- 1745,1750 ----
***************
*** 1867,1896 ****
(match_operand:QI 1 "general_operand" ""))]
""
"ix86_expand_move (QImode, operands); DONE;")
-
- ;; emit_push_insn when it calls move_by_pieces requires an insn to
- ;; "push a byte". But actually we use pushw, which has the effect
- ;; of rounding the amount pushed up to a halfword.
-
- (define_insn "*pushqi2"
- [(set (match_operand:QI 0 "push_operand" "=<,<")
- (match_operand:QI 1 "nonmemory_no_elim_operand" "n,r"))]
- "!TARGET_64BIT"
- "@
- push{w}\\t{|word ptr }%1
- push{w}\\t%w1"
- [(set_attr "type" "push")
- (set_attr "mode" "HI")])
-
- (define_insn "*popqi1"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=r*m")
- (mem:QI (reg:SI 7)))
- (set (reg:SI 7)
- (plus:SI (reg:SI 7) (const_int 2)))]
- "!TARGET_64BIT"
- "pop{w}\\t%0"
- [(set_attr "type" "pop")
- (set_attr "mode" "HI")])
;; Situation is quite tricky about when to choose full sized (SImode) move
;; over QImode moves. For Q_REG -> Q_REG move we use full size only for
--- 1857,1862 ----