This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH]: Force stack align changes (3/3)
- To: gcc-patches at gcc dot gnu dot org
- Subject: [PATCH]: Force stack align changes (3/3)
- From: Daniel Berlin <dan at www dot cgsoftware dot com>
- Date: Thu, 4 Jan 2001 16:32:43 -0500 (EST)
The i386.md changes necessary, so we can push the new arg pointer, which
is an eliminable register, and so we output the force stack align
prologue/epilogue if we are forcing stack alignment.
--Dan
*** /boot/home/write/egcs/gcc/config/i386/i386.md Tue Jan 2 19:24:27 2001
--- i386.md Wed Jan 3 14:39:17 2001
***************
*** 1559,1564 ****
--- 1559,1572 ----
[(set_attr "type" "push")
(set_attr "mode" "SI")])
+ (define_insn "*pushi2_argpointer"
+ [(set (match_operand:SI 0 "push_operand" "=<")
+ (match_operand:SI 1 "general_operand" "ri*m"))]
+ "reload_completed"
+ "push{l}\\t%1"
+ [(set_attr "type" "push")
+ (set_attr "mode" "SI")])
+
(define_insn "*popsi1_epilogue"
[(set (match_operand:SI 0 "nonimmediate_operand" "=r*m")
(mem:SI (reg:SI 7)))
***************
*** 9804,9810 ****
(define_expand "prologue"
[(const_int 1)]
""
! "ix86_expand_prologue (); DONE;")
(define_insn "prologue_set_got"
[(set (match_operand:SI 0 "register_operand" "=r")
--- 9812,9822 ----
(define_expand "prologue"
[(const_int 1)]
""
! "if (TARGET_FORCE_STACK_ALIGNMENT)
! ix86_expand_prologue_fsa ();
! else
! ix86_expand_prologue ();
! DONE;")
(define_insn "prologue_set_got"
[(set (match_operand:SI 0 "register_operand" "=r")
***************
*** 9850,9861 ****
(define_expand "epilogue"
[(const_int 1)]
""
! "ix86_expand_epilogue (1); DONE;")
(define_expand "sibcall_epilogue"
[(const_int 1)]
""
! "ix86_expand_epilogue (0); DONE;")
(define_insn "leave"
[(set (reg:SI 7) (reg:SI 6))
--- 9862,9881 ----
(define_expand "epilogue"
[(const_int 1)]
""
! "if (TARGET_FORCE_STACK_ALIGNMENT)
! ix86_expand_epilogue_fsa (1);
! else
! ix86_expand_epilogue (1);
! DONE;")
(define_expand "sibcall_epilogue"
[(const_int 1)]
""
! "if (TARGET_FORCE_STACK_ALIGNMENT)
! ix86_expand_epilogue_fsa (0);
! else
! ix86_expand_epilogue (0);
! DONE;")
(define_insn "leave"
[(set (reg:SI 7) (reg:SI 6))