mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
- Move FPU exception handling into helper functions, since they are big.
- Fix FP-conditional branches. - Check FPU register mode at runtime, not translation time, as the F64 status bit can change. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2828 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
34ae7b51f5
commit
fd4a04ebb2
5 changed files with 793 additions and 636 deletions
|
@ -165,4 +165,75 @@ void cpu_mips_update_irq (CPUState *env);
|
|||
void cpu_mips_clock_init (CPUState *env);
|
||||
void cpu_mips_tlb_flush (CPUState *env, int flush_global);
|
||||
|
||||
void do_ctc1 (void);
|
||||
void do_float_cvtd_s(void);
|
||||
void do_float_cvtd_w(void);
|
||||
void do_float_cvtd_l(void);
|
||||
void do_float_cvtl_d(void);
|
||||
void do_float_cvtl_s(void);
|
||||
void do_float_cvtps_pw(void);
|
||||
void do_float_cvtpw_ps(void);
|
||||
void do_float_cvts_d(void);
|
||||
void do_float_cvts_w(void);
|
||||
void do_float_cvts_l(void);
|
||||
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);
|
||||
|
||||
#define CMP_OPS(op) \
|
||||
void do_cmp_d_ ## op(long cc); \
|
||||
void do_cmpabs_d_ ## op(long cc); \
|
||||
void do_cmp_s_ ## op(long cc); \
|
||||
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
|
||||
|
||||
#endif /* !defined(__QEMU_MIPS_EXEC_H__) */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue