mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
0f6fd1b704
This patch implements setjmp and longjmp in riscv using inline asm. The following changes were required: * Omit frame pointer: otherwise gcc won't allow us to use s0 * Use __attribute__((naked)): otherwise both gcc and clang will generate function prologue and epilogue in both functions. This doesn't happen in x86_64, so we guard it to only riscv Furthermore, using __attribute__((naked)) causes two problems: we can't use `return 0` (both gcc and clang) and the function arguments in the function body (clang only), so we had to use a0 and a1 directly. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D145584 |
||
---|---|---|
.. | ||
arpa | ||
llvm-libc-macros | ||
llvm-libc-types | ||
sys | ||
__llvm-libc-common.h | ||
assert.h.def | ||
CMakeLists.txt | ||
ctype.h.def | ||
dirent.h.def | ||
errno.h.def | ||
fcntl.h.def | ||
fenv.h.def | ||
inttypes.h.def | ||
math.h.def | ||
pthread.h.def | ||
sched.h.def | ||
setjmp.h.def | ||
signal.h.def | ||
spawn.h.def | ||
stdio.h.def | ||
stdlib.h.def | ||
string.h.def | ||
strings.h.def | ||
termios.h.def | ||
threads.h.def | ||
time.h.def | ||
unistd.h.def | ||
wchar.h.def |