From: Kelley Cook Date: Mon, 21 Jun 2004 22:52:04 +0000 (+0000) Subject: re PR target/15551 (-mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8e2cd6dda72cb630c1efe9036706f92bb3466740;p=gcc.git re PR target/15551 (-mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on windows32 targets) 2004-06-21 Kelley Cook 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index db93898e4b6..3a87ac980e3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-06-21 Kelley Cook + + 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 Fix PR optimization/15982 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 54d327e5727..f7270a8bb46 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -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))])]