1.1 --- a/src/sh4/sh4x86.in Thu May 15 10:22:39 2008 +0000
1.2 +++ b/src/sh4/sh4x86.in Mon May 26 10:42:18 2008 +0000
1.3 @@ -1798,18 +1798,11 @@
1.4 /* Floating point moves */
1.7 - /* As horrible as this looks, it's actually covering 5 separate cases:
1.8 - * 1. 32-bit fr-to-fr (PR=0)
1.9 - * 2. 64-bit dr-to-dr (PR=1, FRm&1 == 0, FRn&1 == 0 )
1.10 - * 3. 64-bit dr-to-xd (PR=1, FRm&1 == 0, FRn&1 == 1 )
1.11 - * 4. 64-bit xd-to-dr (PR=1, FRm&1 == 1, FRn&1 == 0 )
1.12 - * 5. 64-bit xd-to-xd (PR=1, FRm&1 == 1, FRn&1 == 1 )
1.15 load_spreg( R_ECX, R_FPSCR );
1.16 TEST_imm32_r32( FPSCR_SZ, R_ECX );
1.17 JNE_rel8(doublesize);
1.18 - load_fr( R_EAX, FRm ); // PR=0 branch
1.19 + load_fr( R_EAX, FRm ); // SZ=0 branch
1.20 store_fr( R_EAX, FRn );
1.22 JMP_TARGET(doublesize);
1.23 @@ -2495,14 +2488,14 @@
1.24 sh4_x86.tstate = TSTATE_NONE;
1.27 - COUNT_INST(I_LDS);
1.28 + COUNT_INST(I_LDSFPSCR);
1.30 load_reg( R_EAX, Rm );
1.31 call_func1( sh4_write_fpscr, R_EAX );
1.32 sh4_x86.tstate = TSTATE_NONE;
1.34 LDS.L @Rm+, FPSCR {:
1.35 - COUNT_INST(I_LDS);
1.36 + COUNT_INST(I_LDSFPSCRM);
1.38 load_reg( R_EAX, Rm );
1.39 check_ralign32( R_EAX );
1.40 @@ -2760,13 +2753,13 @@
1.41 sh4_x86.tstate = TSTATE_NONE;
1.44 - COUNT_INST(I_STS);
1.45 + COUNT_INST(I_STSFPSCR);
1.47 load_spreg( R_EAX, R_FPSCR );
1.48 store_reg( R_EAX, Rn );
1.50 STS.L FPSCR, @-Rn {:
1.51 - COUNT_INST(I_STSM);
1.52 + COUNT_INST(I_STSFPSCRM);
1.54 load_reg( R_EAX, Rn );
1.55 check_walign32( R_EAX );