Commit 79f91c27bad7cf39ff336f1b2ed418942f65bab6
1 parent
dc9543dc
more fpu functions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1233 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
39 additions
and
0 deletions
target-i386/exec.h
... | ... | @@ -142,6 +142,44 @@ extern int loglevel; |
142 | 142 | #include "cpu.h" |
143 | 143 | #include "exec-all.h" |
144 | 144 | |
145 | +/* XXX: add a generic FPU library */ | |
146 | + | |
147 | +static inline double float32_to_float64(float a) | |
148 | +{ | |
149 | + return a; | |
150 | +} | |
151 | + | |
152 | +static inline float float64_to_float32(double a) | |
153 | +{ | |
154 | + return a; | |
155 | +} | |
156 | + | |
157 | +#if defined(__powerpc__) | |
158 | +/* better to call an helper on ppc */ | |
159 | +float int32_to_float32(int32_t a); | |
160 | +double int32_to_float64(int32_t a); | |
161 | +#else | |
162 | +static inline float int32_to_float32(int32_t a) | |
163 | +{ | |
164 | + return (float)a; | |
165 | +} | |
166 | + | |
167 | +static inline double int32_to_float64(int32_t a) | |
168 | +{ | |
169 | + return (double)a; | |
170 | +} | |
171 | +#endif | |
172 | + | |
173 | +static inline float int64_to_float32(int64_t a) | |
174 | +{ | |
175 | + return (float)a; | |
176 | +} | |
177 | + | |
178 | +static inline double int64_to_float64(int64_t a) | |
179 | +{ | |
180 | + return (double)a; | |
181 | +} | |
182 | + | |
145 | 183 | typedef struct CCTable { |
146 | 184 | int (*compute_all)(void); /* return all the flags */ |
147 | 185 | int (*compute_c)(void); /* return the C flag */ |
... | ... | @@ -559,6 +597,7 @@ void restore_native_fp_state(CPUState *env); |
559 | 597 | void save_native_fp_state(CPUState *env); |
560 | 598 | float approx_rsqrt(float a); |
561 | 599 | float approx_rcp(float a); |
600 | +double helper_sqrt(double a); | |
562 | 601 | int fpu_isnan(double a); |
563 | 602 | |
564 | 603 | extern const uint8_t parity_table[256]; | ... | ... |