re PR target/15551 (-mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on windows32 targets)
2004-06-21 Kelley Cook <kcook@gcc.gnu.org> PR target/15551 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. (allocate_stack_worker): Make unspec_volatile. (allocate_stack_worker_rex64): Likewise. (allocate_stack_worker_postreload): Likewise. (allocate_stack_worker_rex64_postreload): Likewise. From-SVN: r83458
This commit is contained in:
parent
f648d1e451
commit
8e2cd6dda7
2 changed files with 19 additions and 7 deletions
|
@ -1,3 +1,12 @@
|
|||
2004-06-21 Kelley Cook <kcook@gcc.gnu.org>
|
||||
|
||||
PR target/15551
|
||||
* config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
|
||||
(allocate_stack_worker): Make unspec_volatile.
|
||||
(allocate_stack_worker_rex64): Likewise.
|
||||
(allocate_stack_worker_postreload): Likewise.
|
||||
(allocate_stack_worker_rex64_postreload): Likewise.
|
||||
|
||||
2004-06-21 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
Fix PR optimization/15982
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
;; GCC machine description for IA-32 and x86-64.
|
||||
;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
;; 2001, 2002, 2003, 2004
|
||||
|
@ -63,7 +64,6 @@
|
|||
(UNSPEC_INDNTPOFF 8)
|
||||
|
||||
; Prologue support
|
||||
(UNSPEC_STACK_PROBE 10)
|
||||
(UNSPEC_STACK_ALLOC 11)
|
||||
(UNSPEC_SET_GOT 12)
|
||||
(UNSPEC_SSE_PROLOGUE_SAVE 13)
|
||||
|
@ -143,6 +143,7 @@
|
|||
|
||||
(define_constants
|
||||
[(UNSPECV_BLOCKAGE 0)
|
||||
(UNSPECV_STACK_PROBE 10)
|
||||
(UNSPECV_EMMS 31)
|
||||
(UNSPECV_LDMXCSR 37)
|
||||
(UNSPECV_STMXCSR 40)
|
||||
|
@ -18310,7 +18311,8 @@
|
|||
})
|
||||
|
||||
(define_insn "allocate_stack_worker_1"
|
||||
[(unspec:SI [(match_operand:SI 0 "register_operand" "a")] UNSPEC_STACK_PROBE)
|
||||
[(unspec_volatile:SI [(match_operand:SI 0 "register_operand" "a")]
|
||||
UNSPECV_STACK_PROBE)
|
||||
(set (reg:SI SP_REG) (minus:SI (reg:SI SP_REG) (match_dup 0)))
|
||||
(clobber (match_scratch:SI 1 "=0"))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
|
@ -18320,8 +18322,8 @@
|
|||
(set_attr "length" "5")])
|
||||
|
||||
(define_expand "allocate_stack_worker_postreload"
|
||||
[(parallel [(unspec:SI [(match_operand:SI 0 "register_operand" "a")]
|
||||
UNSPEC_STACK_PROBE)
|
||||
[(parallel [(unspec_volatile:SI [(match_operand:SI 0 "register_operand" "a")]
|
||||
UNSPECV_STACK_PROBE)
|
||||
(set (reg:SI SP_REG) (minus:SI (reg:SI SP_REG) (match_dup 0)))
|
||||
(clobber (match_dup 0))
|
||||
(clobber (reg:CC FLAGS_REG))])]
|
||||
|
@ -18329,7 +18331,8 @@
|
|||
"")
|
||||
|
||||
(define_insn "allocate_stack_worker_rex64"
|
||||
[(unspec:DI [(match_operand:DI 0 "register_operand" "a")] UNSPEC_STACK_PROBE)
|
||||
[(unspec_volatile:DI [(match_operand:DI 0 "register_operand" "a")]
|
||||
UNSPECV_STACK_PROBE)
|
||||
(set (reg:DI SP_REG) (minus:DI (reg:DI SP_REG) (match_dup 0)))
|
||||
(clobber (match_scratch:DI 1 "=0"))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
|
@ -18339,8 +18342,8 @@
|
|||
(set_attr "length" "5")])
|
||||
|
||||
(define_expand "allocate_stack_worker_rex64_postreload"
|
||||
[(parallel [(unspec:DI [(match_operand:DI 0 "register_operand" "a")]
|
||||
UNSPEC_STACK_PROBE)
|
||||
[(parallel [(unspec_volatile:DI [(match_operand:DI 0 "register_operand" "a")]
|
||||
UNSPECV_STACK_PROBE)
|
||||
(set (reg:DI SP_REG) (minus:DI (reg:DI SP_REG) (match_dup 0)))
|
||||
(clobber (match_dup 0))
|
||||
(clobber (reg:CC FLAGS_REG))])]
|
||||
|
|
Loading…
Add table
Reference in a new issue