diff options
author | John David Anglin <danglin@gcc.gnu.org> | 2014-11-24 23:39:47 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2014-11-24 23:39:47 +0000 |
commit | 17f6e9a357a2a55601fc237e08d91fe7f24bb7c3 (patch) | |
tree | eaa1132734c93f0c8559037f073f339a07610468 /libgcc | |
parent | 67c4c164202205321e843f2345a0f786d8b30aa6 (diff) | |
download | gcc-17f6e9a357a2a55601fc237e08d91fe7f24bb7c3.zip gcc-17f6e9a357a2a55601fc237e08d91fe7f24bb7c3.tar.gz gcc-17f6e9a357a2a55601fc237e08d91fe7f24bb7c3.tar.bz2 |
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')
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config/pa/linux-atomic.c | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index e74247d..d35a962 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -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> diff --git a/libgcc/config/pa/linux-atomic.c b/libgcc/config/pa/linux-atomic.c index 9a05062..19e37b6 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) |