2021-08-18 21:21:30 +00:00
|
|
|
#ifndef COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_YOINK_H_
|
|
|
|
#define COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_YOINK_H_
|
|
|
|
|
2023-05-14 16:32:15 +00:00
|
|
|
#ifdef __x86_64__
|
2021-09-05 08:20:03 +00:00
|
|
|
#define PYTHON_YOINK(s) \
|
|
|
|
__asm__(".section .yoink\n\t" \
|
|
|
|
"nopl\t\"pyc:" s "\"\n\t" \
|
|
|
|
".previous")
|
2023-05-14 16:32:15 +00:00
|
|
|
#elif defined(__aarch64__)
|
|
|
|
#define PYTHON_YOINK(s) \
|
|
|
|
__asm__(".section .yoink\n\t" \
|
|
|
|
"bl\t\"pyc:" s "\"\n\t" \
|
|
|
|
".previous")
|
|
|
|
#else
|
|
|
|
#error "architecture unsupported"
|
|
|
|
#endif /* __x86_64__ */
|
2021-09-05 08:20:03 +00:00
|
|
|
|
|
|
|
#define PYTHON_PROVIDE(s) \
|
|
|
|
__asm__(".section .yoink\n" \
|
|
|
|
"\"pyc:" s "\":\n\t" \
|
|
|
|
".globl\t\"pyc:" s "\"\n\t" \
|
2021-08-18 21:21:30 +00:00
|
|
|
".previous")
|
|
|
|
|
|
|
|
#endif /* COSMOPOLITAN_THIRD_PARTY_PYTHON_INCLUDE_YOINK_H_ */
|