aboutsummaryrefslogtreecommitdiff
path: root/target-mips/exec.h
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-05-19 20:29:41 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-05-19 20:29:41 +0000
commit57fa1fb31c23f1bf78664159d5813206bf2e4d0e (patch)
tree77bee20de232837daf13873e025093efb17ddd9c /target-mips/exec.h
parentf469b9db01a1287ae8946159beace6285c2e213a (diff)
More MIPS 64-bit FPU support.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2834 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/exec.h')
-rw-r--r--target-mips/exec.h96
1 files changed, 50 insertions, 46 deletions
diff --git a/target-mips/exec.h b/target-mips/exec.h
index 7ebfd78e71..6d004102bb 100644
--- a/target-mips/exec.h
+++ b/target-mips/exec.h
@@ -166,6 +166,36 @@ void cpu_mips_clock_init (CPUState *env);
void cpu_mips_tlb_flush (CPUState *env, int flush_global);
void do_ctc1 (void);
+
+#define FOP_PROTO(op) \
+void do_float_ ## op ## _s(void); \
+void do_float_ ## op ## _d(void);
+FOP_PROTO(roundl)
+FOP_PROTO(roundw)
+FOP_PROTO(truncl)
+FOP_PROTO(truncw)
+FOP_PROTO(ceill)
+FOP_PROTO(ceilw)
+FOP_PROTO(floorl)
+FOP_PROTO(floorw)
+FOP_PROTO(rsqrt)
+FOP_PROTO(recip)
+#undef FOP_PROTO
+
+#define FOP_PROTO(op) \
+void do_float_ ## op ## _s(void); \
+void do_float_ ## op ## _d(void); \
+void do_float_ ## op ## _ps(void);
+FOP_PROTO(add)
+FOP_PROTO(sub)
+FOP_PROTO(mul)
+FOP_PROTO(div)
+FOP_PROTO(recip1)
+FOP_PROTO(recip2)
+FOP_PROTO(rsqrt1)
+FOP_PROTO(rsqrt2)
+#undef FOP_PROTO
+
void do_float_cvtd_s(void);
void do_float_cvtd_w(void);
void do_float_cvtd_l(void);
@@ -180,37 +210,11 @@ void do_float_cvts_pl(void);
void do_float_cvts_pu(void);
void do_float_cvtw_s(void);
void do_float_cvtw_d(void);
-void do_float_roundl_d(void);
-void do_float_roundl_s(void);
-void do_float_roundw_d(void);
-void do_float_roundw_s(void);
-void do_float_truncl_d(void);
-void do_float_truncl_s(void);
-void do_float_truncw_d(void);
-void do_float_truncw_s(void);
-void do_float_ceill_d(void);
-void do_float_ceill_s(void);
-void do_float_ceilw_d(void);
-void do_float_ceilw_s(void);
-void do_float_floorl_d(void);
-void do_float_floorl_s(void);
-void do_float_floorw_d(void);
-void do_float_floorw_s(void);
-void do_float_add_d(void);
-void do_float_add_s(void);
-void do_float_add_ps(void);
-void do_float_sub_d(void);
-void do_float_sub_s(void);
-void do_float_sub_ps(void);
-void do_float_mul_d(void);
-void do_float_mul_s(void);
-void do_float_mul_ps(void);
-void do_float_div_d(void);
-void do_float_div_s(void);
-void do_float_div_ps(void);
+
void do_float_addr_ps(void);
+void do_float_mulr_ps(void);
-#define CMP_OPS(op) \
+#define FOP_PROTO(op) \
void do_cmp_d_ ## op(long cc); \
void do_cmpabs_d_ ## op(long cc); \
void do_cmp_s_ ## op(long cc); \
@@ -218,22 +222,22 @@ void do_cmpabs_s_ ## op(long cc); \
void do_cmp_ps_ ## op(long cc); \
void do_cmpabs_ps_ ## op(long cc);
-CMP_OPS(f)
-CMP_OPS(un)
-CMP_OPS(eq)
-CMP_OPS(ueq)
-CMP_OPS(olt)
-CMP_OPS(ult)
-CMP_OPS(ole)
-CMP_OPS(ule)
-CMP_OPS(sf)
-CMP_OPS(ngle)
-CMP_OPS(seq)
-CMP_OPS(ngl)
-CMP_OPS(lt)
-CMP_OPS(nge)
-CMP_OPS(le)
-CMP_OPS(ngt)
-#undef CMP_OPS
+FOP_PROTO(f)
+FOP_PROTO(un)
+FOP_PROTO(eq)
+FOP_PROTO(ueq)
+FOP_PROTO(olt)
+FOP_PROTO(ult)
+FOP_PROTO(ole)
+FOP_PROTO(ule)
+FOP_PROTO(sf)
+FOP_PROTO(ngle)
+FOP_PROTO(seq)
+FOP_PROTO(ngl)
+FOP_PROTO(lt)
+FOP_PROTO(nge)
+FOP_PROTO(le)
+FOP_PROTO(ngt)
+#undef FOP_PROTO
#endif /* !defined(__QEMU_MIPS_EXEC_H__) */