linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap() instead.
authorJohn David Anglin <danglin@gcc.gnu.org>
Mon, 24 Nov 2014 23:39:47 +0000 (23:39 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Mon, 24 Nov 2014 23:39:47 +0000 (23:39 +0000)
* config/pa/linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap()
instead.

From-SVN: r218033

libgcc/ChangeLog
libgcc/config/pa/linux-atomic.c

index e74247d10b0a18d55a325354abb2c9c12d1cc2fa..d35a962a7b94f728268437ae5b04af4684bad983 100644 (file)
@@ -1,3 +1,8 @@
+2014-11-24  John David Anglin  <danglin@gcc.gnu.org>
+
+       * config/pa/linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap()
+       instead.
+
 2014-11-21  Guy Martin  <gmsoft@tuxicoman.be>
            John David Anglin  <danglin@gcc.gnu.org>
 
index 9a050622ad252921f0f577582edc4b4e67eff2bc..19e37b6f3c4d33e88b8c1ba0fab8dd6ece3da84e 100644 (file)
@@ -41,9 +41,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    using the kernel helper defined below.  There is no support for
    64-bit operations yet.  */
 
-/* A privileged instruction to crash a userspace program with SIGILL.  */
-#define ABORT_INSTRUCTION asm ("iitlbp %r0,(%sr0, %r0)")
-
 /* Determine kernel LWS function call (0=32-bit, 1=64-bit userspace).  */
 #define LWS_CAS (sizeof(long) == 4 ? 0 : 1)
 
@@ -64,7 +61,7 @@ __kernel_cmpxchg (int oldval, int newval, int *mem)
        : "r1", "r20", "r22", "r23", "r29", "r31", "memory"
   );
   if (__builtin_expect (lws_errno == -EFAULT || lws_errno == -ENOSYS, 0))
-    ABORT_INSTRUCTION;
+    __builtin_trap ();
 
   /* If the kernel LWS call succeeded (lws_errno == 0), lws_ret contains
      the old value from memory.  If this value is equal to OLDVAL, the
@@ -91,7 +88,7 @@ __kernel_cmpxchg2 (void * oldval, void * newval, void *mem, int val_size)
        : "r1", "r20", "r22", "r29", "r31", "fr4", "memory"
   );
   if (__builtin_expect (lws_errno == -EFAULT || lws_errno == -ENOSYS, 0))
-    ABORT_INSTRUCTION;
+    __builtin_trap ();
 
   /* If the kernel LWS call fails, retrun EBUSY */
   if (!lws_errno && lws_ret)