summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/i386/sleep.S
blob: 356552dc24076990048d4a25619996812de82b71 (plain)
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