]> Git Repo - uclibc-ng.git/commit
arc: fix signal handler restorer
authorSergey Matyukevich <[email protected]>
Sat, 8 Jan 2022 20:53:42 +0000 (23:53 +0300)
committerWaldemar Brodkorb <[email protected]>
Mon, 10 Jan 2022 12:42:17 +0000 (13:42 +0100)
commitb7dd4df2c97fda8e639e1cbe4ba9ad313a271105
tree6b97e7359f30517b786714d04fe6af5f84010744
parent373a21c2df7aaa1c668a014c86181bbbd0650777
arc: fix signal handler restorer

When MD_FALLBACK_FRAME_STATE_FOR handler in libgcc unwind code checks
the second instruction opcode in __default_rt_sa_restorer function,
it expects to see the following values for ARC cores:
- 0x7ee0781e for ARCv2 LE
- 0x003f226f for ARC700 LE

ARC700 value correspond to trap0 instruction. ARCv2 value corresponds
to the following code:
        traps_0
        j_s     [blink]

However, unlike glibc, uClibc implementation of __default_rt_sa_restorer
for ARC does not have that jump. Hence libgcc unwind code is not able
to recognize signal frame correctly on ARCv2 and completes too early.

This change fixes libgcc unwinding over signal frame on ARCv2 adding
missing jump to __default_rt_sa_restorer.

Signed-off-by: Sergey Matyukevich <[email protected]>
libc/sysdeps/linux/arc/sigrestorer.S
This page took 0.025788 seconds and 4 git commands to generate.