.text .globl _Py_trampoline_func_start # The following assembly is equivalent to: # PyObject * # trampoline(PyThreadState *ts, _PyInterpreterFrame *f, # int throwflag, py_evaluator evaluator) # { # return evaluator(ts, f, throwflag); # } _Py_trampoline_func_start: #ifdef __x86_64__ sub $8, %rsp call *%rcx add $8, %rsp ret #endif // __x86_64__ #if defined(__aarch64__) && defined(__AARCH64EL__) && !defined(__ILP32__) // ARM64 little endian, 64bit ABI // generate with aarch64-linux-gnu-gcc 12.1 stp x29, x30, [sp, -16]! mov x29, sp blr x3 ldp x29, x30, [sp], 16 ret #endif #ifdef __riscv addi sp,sp,-16 sd ra,8(sp) jalr a3 ld ra,8(sp) addi sp,sp,16 jr ra #endif .globl _Py_trampoline_func_end _Py_trampoline_func_end: .section .note.GNU-stack,"",@progbits