syscall.s
来自「klibc精简化的c程序库」· S 代码 · 共 37 行
S
37 行
/* * arch/parisc/syscall.S * * %r20 contains the system call number, %r2 contains whence we came * */ .text .align 64 ; cache-width aligned .globl __syscall_common .type __syscall_common,@function__syscall_common: ldo 0x40(%sp),%sp stw %rp,-0x54(%sp) ; save return pointer ldw -0x74(%sp),%r22 ; %arg4 ldw -0x78(%sp),%r21 ; %arg5 ble 0x100(%sr2, %r0) ; jump to gateway page nop ; can we move a load here? ldi -0x1000,%r19 ; %r19 = -4096 sub %r0,%ret0,%r22 ; %r22 = -%ret0 cmpb,>>=,n %r19,%ret0,1f ; if %ret0 >= -4096UL ldi -1,%ret0 ; nullified on taken forward /* store %r22 to errno... */ ldil L%errno,%r1 ldo R%errno(%r1),%r1 stw %r22,0(%r1)1: ldw -0x54(%sp),%rp ; restore return pointer bv %r0(%rp) ; jump back ldo -0x40(%sp),%sp .size __syscall_common,.-__syscall_common
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?