re PR target/15551 (-mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on...
authorKelley Cook <kcook@gcc.gnu.org>
Mon, 21 Jun 2004 22:52:04 +0000 (22:52 +0000)
committerR. Kelley Cook <kcook@gcc.gnu.org>
Mon, 21 Jun 2004 22:52:04 +0000 (22:52 +0000)
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

gcc/ChangeLog
gcc/config/i386/i386.md

index db93898e4b60312a6cf99d0664aebb7c1c5a01e4..3a87ac980e3e148afc0a0943d1a2186a568c7265 100644 (file)
@@ -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
index 54d327e572708db8eea3e2b0db847d38c619b31e..f7270a8bb463e41058d16c40db1d6a968c6cb8a9 100644 (file)
@@ -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)
 
 (define_constants
   [(UNSPECV_BLOCKAGE           0)
+   (UNSPECV_STACK_PROBE                10)
    (UNSPECV_EMMS               31)
    (UNSPECV_LDMXCSR            37)
    (UNSPECV_STMXCSR            40)
 })
 
 (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))]
    (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))])]
   "")
 
 (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))]
    (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))])]