f850a6df1f
- put /*comments symbols*/ around any chars after #endif. Other compilers do not get it. - fix cases in which a pointer is cast to a 32-bit int, then back to a pointer. This breaks on a machine with 64-bit pointers. Examples: FPU_sub arg 2 and FPU_div arg 2. The int->ptr->int conversions are now done more safely by macros REGNO2PTR and PTR2INT. - use GCC_ATTRIBUTE macro instead of __attribute__. For compilers that do not support __attribute__, the macro can be defined to be nothing. - in fpu_entry.c, arg1 of FPU_load_int32 is (s32*), but the calls to it cast their data to (u32*). - if compiler does NOT inline functions in poly.h, the "extern inline" setting caused duplicate symbols to be created. Changed them to "static inline" so that the mul_32_32 from different .c files do not conflict. - implemented setcc so that it doesn't use curly brackets inside parens - comment out sigcontext structure definition, which conflicts with non-linux or non-intel operating systems. It's not used by bochs anyway.
33 lines
1.0 KiB
C
33 lines
1.0 KiB
C
/*---------------------------------------------------------------------------+
|
|
| fpu_asm.h |
|
|
| |
|
|
| Copyright (C) 1992,1995,1997 |
|
|
| W. Metzenthen, 22 Parker St, Ormond, Vic 3163, |
|
|
| Australia. E-mail billm@suburbia.net |
|
|
| |
|
|
+---------------------------------------------------------------------------*/
|
|
|
|
#ifndef _FPU_ASM_H_
|
|
#define _FPU_ASM_H_
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
#define EXCEPTION SYMBOL_NAME(FPU_exception)
|
|
|
|
|
|
#define PARAM1 8(%ebp)
|
|
#define PARAM2 12(%ebp)
|
|
#define PARAM3 16(%ebp)
|
|
#define PARAM4 20(%ebp)
|
|
#define PARAM5 24(%ebp)
|
|
#define PARAM6 28(%ebp)
|
|
#define PARAM7 32(%ebp)
|
|
|
|
#define SIGL_OFFSET 0
|
|
#define EXP(x) 8(x)
|
|
#define SIG(x) SIGL_OFFSET##(x)
|
|
#define SIGL(x) SIGL_OFFSET##(x)
|
|
#define SIGH(x) 4(x)
|
|
|
|
#endif /* _FPU_ASM_H_ */
|