Revision 6a385343
b/target-mips/op_helper.c | ||
---|---|---|
2874 | 2874 |
#define FOP_COND_D(op, cond) \ |
2875 | 2875 |
void helper_cmp_d_ ## op (uint64_t fdt0, uint64_t fdt1, int cc) \ |
2876 | 2876 |
{ \ |
2877 |
int c = cond; \ |
|
2877 |
int c; \ |
|
2878 |
set_float_exception_flags(0, &env->active_fpu.fp_status); \ |
|
2879 |
c = cond; \ |
|
2878 | 2880 |
update_fcr31(); \ |
2879 | 2881 |
if (c) \ |
2880 | 2882 |
SET_FP_COND(cc, env->active_fpu); \ |
... | ... | |
2884 | 2886 |
void helper_cmpabs_d_ ## op (uint64_t fdt0, uint64_t fdt1, int cc) \ |
2885 | 2887 |
{ \ |
2886 | 2888 |
int c; \ |
2889 |
set_float_exception_flags(0, &env->active_fpu.fp_status); \ |
|
2887 | 2890 |
fdt0 = float64_abs(fdt0); \ |
2888 | 2891 |
fdt1 = float64_abs(fdt1); \ |
2889 | 2892 |
c = cond; \ |
... | ... | |
2918 | 2921 |
#define FOP_COND_S(op, cond) \ |
2919 | 2922 |
void helper_cmp_s_ ## op (uint32_t fst0, uint32_t fst1, int cc) \ |
2920 | 2923 |
{ \ |
2921 |
int c = cond; \ |
|
2924 |
int c; \ |
|
2925 |
set_float_exception_flags(0, &env->active_fpu.fp_status); \ |
|
2926 |
c = cond; \ |
|
2922 | 2927 |
update_fcr31(); \ |
2923 | 2928 |
if (c) \ |
2924 | 2929 |
SET_FP_COND(cc, env->active_fpu); \ |
... | ... | |
2928 | 2933 |
void helper_cmpabs_s_ ## op (uint32_t fst0, uint32_t fst1, int cc) \ |
2929 | 2934 |
{ \ |
2930 | 2935 |
int c; \ |
2936 |
set_float_exception_flags(0, &env->active_fpu.fp_status); \ |
|
2931 | 2937 |
fst0 = float32_abs(fst0); \ |
2932 | 2938 |
fst1 = float32_abs(fst1); \ |
2933 | 2939 |
c = cond; \ |
... | ... | |
2962 | 2968 |
#define FOP_COND_PS(op, condl, condh) \ |
2963 | 2969 |
void helper_cmp_ps_ ## op (uint64_t fdt0, uint64_t fdt1, int cc) \ |
2964 | 2970 |
{ \ |
2965 |
uint32_t fst0 = fdt0 & 0XFFFFFFFF; \ |
|
2966 |
uint32_t fsth0 = fdt0 >> 32; \ |
|
2967 |
uint32_t fst1 = fdt1 & 0XFFFFFFFF; \ |
|
2968 |
uint32_t fsth1 = fdt1 >> 32; \ |
|
2969 |
int cl = condl; \ |
|
2970 |
int ch = condh; \ |
|
2971 |
\ |
|
2971 |
uint32_t fst0, fsth0, fst1, fsth1; \ |
|
2972 |
int ch, cl; \ |
|
2973 |
set_float_exception_flags(0, &env->active_fpu.fp_status); \ |
|
2974 |
fst0 = fdt0 & 0XFFFFFFFF; \ |
|
2975 |
fsth0 = fdt0 >> 32; \ |
|
2976 |
fst1 = fdt1 & 0XFFFFFFFF; \ |
|
2977 |
fsth1 = fdt1 >> 32; \ |
|
2978 |
cl = condl; \ |
|
2979 |
ch = condh; \ |
|
2972 | 2980 |
update_fcr31(); \ |
2973 | 2981 |
if (cl) \ |
2974 | 2982 |
SET_FP_COND(cc, env->active_fpu); \ |
... | ... | |
2981 | 2989 |
} \ |
2982 | 2990 |
void helper_cmpabs_ps_ ## op (uint64_t fdt0, uint64_t fdt1, int cc) \ |
2983 | 2991 |
{ \ |
2984 |
uint32_t fst0 = float32_abs(fdt0 & 0XFFFFFFFF); \ |
|
2985 |
uint32_t fsth0 = float32_abs(fdt0 >> 32); \ |
|
2986 |
uint32_t fst1 = float32_abs(fdt1 & 0XFFFFFFFF); \ |
|
2987 |
uint32_t fsth1 = float32_abs(fdt1 >> 32); \ |
|
2988 |
int cl = condl; \ |
|
2989 |
int ch = condh; \ |
|
2990 |
\ |
|
2992 |
uint32_t fst0, fsth0, fst1, fsth1; \ |
|
2993 |
int ch, cl; \ |
|
2994 |
fst0 = float32_abs(fdt0 & 0XFFFFFFFF); \ |
|
2995 |
fsth0 = float32_abs(fdt0 >> 32); \ |
|
2996 |
fst1 = float32_abs(fdt1 & 0XFFFFFFFF); \ |
|
2997 |
fsth1 = float32_abs(fdt1 >> 32); \ |
|
2998 |
cl = condl; \ |
|
2999 |
ch = condh; \ |
|
2991 | 3000 |
update_fcr31(); \ |
2992 | 3001 |
if (cl) \ |
2993 | 3002 |
SET_FP_COND(cc, env->active_fpu); \ |
Also available in: Unified diff