1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #ifndef __SDCC_SETJMP_H
- #define __SDCC_SETJMP_H
- #define SP_SIZE 1
- #ifdef __SDCC_STACK_AUTO
- #define BP_SIZE SP_SIZE
- #else
- #define BP_SIZE 0
- #endif
- #ifdef __SDCC_USE_XSTACK
- #define SPX_SIZE 1
- #else
- #define SPX_SIZE 0
- #endif
- #define BPX_SIZE SPX_SIZE
- #ifdef __SDCC_MODEL_HUGE
- #define RET_SIZE 3
- #else
- #define RET_SIZE 2
- #endif
- #if defined (__SDCC_z80) || defined (__SDCC_z180) || defined (__SDCC_r2k) || defined (__SDCC_r3ka)
- typedef unsigned char jmp_buf[6];
- #else
- typedef unsigned char jmp_buf[RET_SIZE + SP_SIZE + BP_SIZE + SPX_SIZE + BPX_SIZE];
- #endif
- int __setjmp (jmp_buf);
- #define setjmp(jump_buf) __setjmp(jump_buf)
- #ifndef __SDCC_HIDE_LONGJMP
- _Noreturn void longjmp(jmp_buf, int);
- #endif
- #undef RET_SIZE
- #undef SP_SIZE
- #undef BP_SIZE
- #undef SPX_SIZE
- #undef BPX_SIZE
- #endif
|