Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
2
#ifndef __dj_include_libc_asmdefs_h__
3
#define __dj_include_libc_asmdefs_h__
4
 
5
	.file	__BASE_FILE__
6
 
7
#ifdef USE_EBX
8
#define PUSHL_EBX	pushl %ebx;
9
#define POPL_EBX	popl %ebx;
10
#else
11
#define PUSHL_EBX
12
#define POPL_EBX
13
#endif
14
 
15
#ifdef USE_ESI
16
#define PUSHL_ESI	pushl %esi;
17
#define POPL_ESI	popl %esi;
18
#else
19
#define PUSHL_ESI
20
#define POPL_ESI
21
#endif
22
 
23
#ifdef USE_EDI
24
#define PUSHL_EDI	pushl %edi;
25
#define POPL_EDI	popl %edi;
26
#else
27
#define PUSHL_EDI
28
#define POPL_EDI
29
#endif
30
 
31
#define FUNC(x)		.globl x; \
32
x:
33
 
34
#define ENTER		pushl %ebp; movl %esp,%ebp; PUSHL_EBX PUSHL_ESI PUSHL_EDI
35
 
36
#define LEAVE		L_leave: POPL_EDI POPL_ESI POPL_EBX movl %ebp,%esp; popl %ebp; ret
37
#define LEAVEP(x)	L_leave: x; POPL_EDI POPL_ESI POPL_EBX movl %ebp,%esp; popl %ebp; ret
38
 
39
#define RET		jmp L_leave
40
 
41
#define ARG1		8(%ebp)
42
#define ARG1h		10(%ebp)
43
#define ARG2		12(%ebp)
44
#define ARG2h		14(%ebp)
45
#define ARG3		16(%ebp)
46
#define ARG4		20(%ebp)
47
#define ARG5		24(%ebp)
48
#define ARG6		28(%ebp)
49
#define ARG7		32(%ebp)
50
#define ARG8		36(%ebp)
51
 
52
#endif /* __dj_include_libc_asmdefs_h__ */