1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include "PIC.h"
.text
.global sleep
.type sleep,@function
sleep:
movl 4(%esp),%eax # Argument holen
PIC_SAVE # non-PIC: empty line
PIC_INIT # non-PIC: empty line
pushl $0 # 0 ns
pushl %eax # 'x' s warten
movl %esp,%eax
pushl %eax # zweimal ein Zeiger auf das Stackobjekt
pushl %eax # ptr ptr sec nsec return arg
#ifdef __DYN_LIB
call nanosleep@PLT
#else
call nanosleep
#endif
movl 20(%esp),%eax # 'x' holen
subl 8(%esp),%eax # schon abgelaufende Zeit subtrahieren
addl $16,%esp
PIC_RESTORE # non-PIC: empty line
ret
|