mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			913 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			913 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
    .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
 |