1
2 extern void Un_impl(void);
3 extern void FPU_illegal(void);
4 extern void emu_printall(void);
5 extern void stack_overflow(void);
6 extern void stack_underflow(void);
7 extern void stack_underflow_i(int i);
8 extern void stack_underflow_pop(int i);
9 extern int set_precision_flag(int flags);
10 asmlinkage void exception(int n);
11 asmlinkage int real_2op_NaN(FPU_REG const *a, FPU_REG const *b, FPU_REG *dest);
12 asmlinkage int arith_invalid(FPU_REG *dest);
13 asmlinkage int divide_by_zero(int sign, FPU_REG *dest);
14 asmlinkage void set_precision_flag_up(void);
15 asmlinkage void set_precision_flag_down(void);
16 asmlinkage int denormal_operand(void);
17 asmlinkage int arith_overflow(FPU_REG *dest);
18 asmlinkage int arith_underflow(FPU_REG *dest);
19
20
21 extern void fadd__(void);
22 extern void fmul__(void);
23 extern void fsub__(void);
24 extern void fsubr_(void);
25 extern void fdiv__(void);
26 extern void fdivr_(void);
27 extern void fadd_i(void);
28 extern void fmul_i(void);
29 extern void fsubri(void);
30 extern void fsub_i(void);
31 extern void fdivri(void);
32 extern void fdiv_i(void);
33 extern void faddp_(void);
34 extern void fmulp_(void);
35 extern void fsubrp(void);
36 extern void fsubp_(void);
37 extern void fdivrp(void);
38 extern void fdivp_(void);
39
40
41 extern void fclex(void);
42 extern void finit(void);
43 extern void finit_(void);
44 extern void fstsw_(void);
45 extern void fp_nop(void);
46 extern void fld_i_(void);
47 extern void fxch_i(void);
48 extern void ffree_(void);
49 extern void ffreep(void);
50 extern void fst_i_(void);
51 extern void fstp_i(void);
52
53
54 asmlinkage void math_emulate(long arg);
55 extern void math_abort(struct info *info, unsigned int signal);
56
57
58 extern void fp_etc(void);
59
60
61 extern void convert_l2reg(long const *arg, FPU_REG *dest);
62 extern void trig_a(void);
63 extern void trig_b(void);
64
65
66 extern void *get_address(unsigned char FPU_modrm, unsigned long *fpu_eip,
67 struct address *addr,
68 fpu_addr_modes);
69 extern void *get_address_16(unsigned char FPU_modrm, unsigned long *fpu_eip,
70 struct address *addr,
71 fpu_addr_modes);
72
73
74 extern int load_store_instr(unsigned char type, fpu_addr_modes addr_modes,
75 void *address);
76
77
78 extern int poly_2xm1(FPU_REG const *arg, FPU_REG *result);
79
80
81 extern void poly_atan(FPU_REG *arg1, FPU_REG *arg2, FPU_REG *result);
82
83
84 extern void poly_l2(FPU_REG const *arg, FPU_REG const *y, FPU_REG *result);
85 extern int poly_l2p1(FPU_REG const *arg, FPU_REG const *y, FPU_REG *result);
86
87
88 extern void poly_sine(FPU_REG const *arg, FPU_REG *result);
89 extern void poly_cos(FPU_REG const *arg, FPU_REG *result);
90
91
92 extern void poly_tan(FPU_REG const *arg, FPU_REG *result);
93
94
95 extern int reg_add(FPU_REG const *a, FPU_REG const *b,
96 FPU_REG *dest, int control_w);
97 extern int reg_sub(FPU_REG const *a, FPU_REG const *b,
98 FPU_REG *dest, int control_w);
99
100
101 extern int compare(FPU_REG const *b);
102 extern int compare_st_data(FPU_REG const *b);
103 extern void fcom_st(void);
104 extern void fcompst(void);
105 extern void fcompp(void);
106 extern void fucom_(void);
107 extern void fucomp(void);
108 extern void fucompp(void);
109
110
111 extern void fconst(void);
112
113
114 extern int reg_load_extended(long double *addr, FPU_REG *loaded_data);
115 extern int reg_load_double(double *dfloat, FPU_REG *loaded_data);
116 extern int reg_load_single(float *single, FPU_REG *loaded_data);
117 extern void reg_load_int64(long long *_s, FPU_REG *loaded_data);
118 extern void reg_load_int32(long *_s, FPU_REG *loaded_data);
119 extern void reg_load_int16(short *_s, FPU_REG *loaded_data);
120 extern void reg_load_bcd(char *s, FPU_REG *loaded_data);
121 extern int reg_store_extended(long double *d, FPU_REG *st0_ptr);
122 extern int reg_store_double(double *dfloat, FPU_REG *st0_ptr);
123 extern int reg_store_single(float *single, FPU_REG *st0_ptr);
124 extern int reg_store_int64(long long *d, FPU_REG *st0_ptr);
125 extern int reg_store_int32(long *d, FPU_REG *st0_ptr);
126 extern int reg_store_int16(short *d, FPU_REG *st0_ptr);
127 extern int reg_store_bcd(char *d, FPU_REG *st0_ptr);
128 extern int round_to_int(FPU_REG *r);
129 extern char *fldenv(fpu_addr_modes addr_modes, char *address);
130 extern void frstor(fpu_addr_modes addr_modes, char *address);
131 extern unsigned short tag_word(void);
132 extern char *fstenv(fpu_addr_modes addr_modes, char *address);
133 extern void fsave(fpu_addr_modes addr_modes, char *address);
134
135
136 extern int reg_mul(FPU_REG const *a, FPU_REG const *b,
137 FPU_REG *dest, unsigned int control_w);