ULONG -> IPTR
[cake.git] / arch / x86_64-all / jmpdefs.h
blobb6f1eeb3bb808056644bd4e7bd078819775f7abf
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id: jmpdefs.h 21223 2004-03-15 08:17:05Z iaint $
4 */
6 #ifndef JMPDEFS_H
7 #define JMPDEFS_H
9 #include <setjmp.h>
11 #ifdef __linux__
12 # if defined(__GLIBC__) && (__GLIBC__ >= 2)
13 # define SP(env) (*(APTR*)&(env[0].__jmpbuf[JB_RSP]))
14 # define FP(env) (*(APTR*)&(env[0].__jmpbuf[JB_RBP]))
15 # define PC(env) (*(APTR*)&(env[0].__jmpbuf[JB_PC]))
16 # else
17 # define SP(env) (*(APTR*)&(env[0].__rsp))
18 # define FP(env) (*(APTR*)&(env[0].__rbp))
19 # define PC(env) (*(APTR*)&(env[0].__pc))
20 # endif
21 #endif
22 #ifdef __FreeBSD__
23 # define SP(env) (*(APTR*)&(env[0]._jb[2]))
24 # define FP(env) (*(APTR*)&(env[0]._jb[3]))
25 # define PC(env) (*(APTR*)&(env[0]._jb[0]))
26 #endif
27 #ifdef __NetBSD__
28 # define SP(env) (*(APTR*)&(env[2]))
29 # define FP(env) (*(APTR*)&(env[3]))
30 # define PC(env) (*(APTR*)&(env[0]))
31 #endif
32 #ifdef __OpenBSD__
33 # define SP(env) (*(APTR*)&(env[2]))
34 # define FP(env) (*(APTR*)&(env[3]))
35 # define PC(env) (*(APTR*)&(env[0]))
36 #endif
37 /* The number of stack longs that have to be copied from the old stack */
38 #define NUM_LONGS 4
40 #define _JMPLEN 15 /* or 8 on i386 ??? */
42 #endif /* !JMPDEFS_H */