2014-11-07 98 views
3

说我有一个简单的aarch64功能,可通过SVC系统调用,看起来像这样(的iOS目标):ARMv8 AArch64 SVC保存寄存器

make_syscall: 
    stp fp, lr, [sp, #-16]! 
    add fp, sp, #0    
    mov x16, SYSCALL_NUM  
    svC#128     
    ldp fp, lr, [sp], #16  
    ret       

问题:因为函数只修改X16,这是调用者保存,是否有任何需要保存/恢复除帧指针和链接寄存器以外的任何其他寄存器?换句话说,是否可以假定SVC处理程序遵守ABI过程调用约定?

感谢

回答