filename | src/sh4/sh4x86.in |
changeset | 626:a010e30a30e9 |
prev | 604:1024c3a9cb88 |
next | 669:ab344e42bca9 |
author | nkeynes |
date | Fri Feb 08 00:06:56 2008 +0000 (16 years ago) |
permissions | -rw-r--r-- |
last change | Fix LDS/STS to FPUL/FPSCR to check the FPU disabled bit. Fixes the linux 2.4.0-test8 kernel boot (this wasn't exactly very well documented in the original manual) |
file | annotate | diff | log | raw |
1.1 --- a/src/sh4/sh4x86.in Tue Jan 22 11:30:37 2008 +00001.2 +++ b/src/sh4/sh4x86.in Fri Feb 08 00:06:56 2008 +00001.3 @@ -2487,13 +2487,15 @@1.4 store_spreg( R_EAX, REG_OFFSET(r_bank[Rn_BANK]) );1.5 sh4_x86.tstate = TSTATE_NONE;1.6 :}1.7 -LDS Rm, FPSCR {:1.8 +LDS Rm, FPSCR {:1.9 + check_fpuen();1.10 load_reg( R_EAX, Rm );1.11 store_spreg( R_EAX, R_FPSCR );1.12 update_fr_bank( R_EAX );1.13 sh4_x86.tstate = TSTATE_NONE;1.14 :}1.15 LDS.L @Rm+, FPSCR {:1.16 + check_fpuen();1.17 load_reg( R_EAX, Rm );1.18 check_ralign32( R_EAX );1.19 MMU_TRANSLATE_READ( R_EAX );1.20 @@ -2504,10 +2506,12 @@1.21 sh4_x86.tstate = TSTATE_NONE;1.22 :}1.23 LDS Rm, FPUL {:1.24 + check_fpuen();1.25 load_reg( R_EAX, Rm );1.26 store_spreg( R_EAX, R_FPUL );1.27 :}1.28 LDS.L @Rm+, FPUL {:1.29 + check_fpuen();1.30 load_reg( R_EAX, Rm );1.31 check_ralign32( R_EAX );1.32 MMU_TRANSLATE_READ( R_EAX );1.33 @@ -2716,10 +2720,12 @@1.34 sh4_x86.tstate = TSTATE_NONE;1.35 :}1.36 STS FPSCR, Rn {:1.37 + check_fpuen();1.38 load_spreg( R_EAX, R_FPSCR );1.39 store_reg( R_EAX, Rn );1.40 :}1.41 STS.L FPSCR, @-Rn {:1.42 + check_fpuen();1.43 load_reg( R_EAX, Rn );1.44 check_walign32( R_EAX );1.45 ADD_imm8s_r32( -4, R_EAX );1.46 @@ -2730,10 +2736,12 @@1.47 sh4_x86.tstate = TSTATE_NONE;1.48 :}1.49 STS FPUL, Rn {:1.50 + check_fpuen();1.51 load_spreg( R_EAX, R_FPUL );1.52 store_reg( R_EAX, Rn );1.53 :}1.54 STS.L FPUL, @-Rn {:1.55 + check_fpuen();1.56 load_reg( R_EAX, Rn );1.57 check_walign32( R_EAX );1.58 ADD_imm8s_r32( -4, R_EAX );
.