summaryrefslogtreecommitdiff
path: root/libgcc/config/pa
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2014-11-24 23:39:47 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2014-11-24 23:39:47 +0000
commit17f6e9a357a2a55601fc237e08d91fe7f24bb7c3 (patch)
treeeaa1132734c93f0c8559037f073f339a07610468 /libgcc/config/pa
parent67c4c164202205321e843f2345a0f786d8b30aa6 (diff)
linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap() instead.
* config/pa/linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap() instead. From-SVN: r218033
Diffstat (limited to 'libgcc/config/pa')
-rw-r--r--libgcc/config/pa/linux-atomic.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/libgcc/config/pa/linux-atomic.c b/libgcc/config/pa/linux-atomic.c
index 9a050622ad2..19e37b6f3c4 100644
--- a/libgcc/config/pa/linux-atomic.c
+++ b/libgcc/config/pa/linux-atomic.c
@@ -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)