Fixed JIT FPU bugs (Starstruck demo corruption, etc.)

This commit is contained in:
Dimitris Panokostas 2018-02-08 20:40:37 +01:00
parent 88316d7916
commit b9dc57af87
14 changed files with 1735 additions and 121 deletions

View file

@ -1246,17 +1246,17 @@ extern const struct comptbl op_smalltbl_0_comp_ff[] = {
{ op_80ba_0_comp_ff, 0x00000002, 32954 }, /* OR */
{ op_80bb_0_comp_ff, 0x00000002, 32955 }, /* OR */
{ op_80bc_0_comp_ff, 0x00000002, 32956 }, /* OR */
{ NULL, 0x00000001, 32960 }, /* DIVU */
{ NULL, 0x00000001, 32976 }, /* DIVU */
{ NULL, 0x00000001, 32984 }, /* DIVU */
{ NULL, 0x00000001, 32992 }, /* DIVU */
{ NULL, 0x00000003, 33000 }, /* DIVU */
{ NULL, 0x00000003, 33008 }, /* DIVU */
{ NULL, 0x00000003, 33016 }, /* DIVU */
{ NULL, 0x00000003, 33017 }, /* DIVU */
{ NULL, 0x00000003, 33018 }, /* DIVU */
{ NULL, 0x00000003, 33019 }, /* DIVU */
{ NULL, 0x00000003, 33020 }, /* DIVU */
{ op_80c0_0_comp_ff, 0x00000000, 32960 }, /* DIVU */
{ op_80d0_0_comp_ff, 0x00000000, 32976 }, /* DIVU */
{ op_80d8_0_comp_ff, 0x00000000, 32984 }, /* DIVU */
{ op_80e0_0_comp_ff, 0x00000000, 32992 }, /* DIVU */
{ op_80e8_0_comp_ff, 0x00000002, 33000 }, /* DIVU */
{ op_80f0_0_comp_ff, 0x00000002, 33008 }, /* DIVU */
{ op_80f8_0_comp_ff, 0x00000002, 33016 }, /* DIVU */
{ op_80f9_0_comp_ff, 0x00000002, 33017 }, /* DIVU */
{ op_80fa_0_comp_ff, 0x00000002, 33018 }, /* DIVU */
{ op_80fb_0_comp_ff, 0x00000002, 33019 }, /* DIVU */
{ op_80fc_0_comp_ff, 0x00000002, 33020 }, /* DIVU */
{ NULL, 0x00000000, 33024 }, /* SBCD */
{ NULL, 0x00000000, 33032 }, /* SBCD */
{ op_8110_0_comp_ff, 0x00000000, 33040 }, /* OR */
@ -1284,17 +1284,17 @@ extern const struct comptbl op_smalltbl_0_comp_ff[] = {
{ op_81b0_0_comp_ff, 0x00000002, 33200 }, /* OR */
{ op_81b8_0_comp_ff, 0x00000002, 33208 }, /* OR */
{ op_81b9_0_comp_ff, 0x00000002, 33209 }, /* OR */
{ NULL, 0x00000001, 33216 }, /* DIVS */
{ NULL, 0x00000001, 33232 }, /* DIVS */
{ NULL, 0x00000001, 33240 }, /* DIVS */
{ NULL, 0x00000001, 33248 }, /* DIVS */
{ NULL, 0x00000001, 33256 }, /* DIVS */
{ NULL, 0x00000001, 33264 }, /* DIVS */
{ NULL, 0x00000001, 33272 }, /* DIVS */
{ NULL, 0x00000001, 33273 }, /* DIVS */
{ NULL, 0x00000001, 33274 }, /* DIVS */
{ NULL, 0x00000001, 33275 }, /* DIVS */
{ NULL, 0x00000001, 33276 }, /* DIVS */
{ op_81c0_0_comp_ff, 0x00000000, 33216 }, /* DIVS */
{ op_81d0_0_comp_ff, 0x00000000, 33232 }, /* DIVS */
{ op_81d8_0_comp_ff, 0x00000000, 33240 }, /* DIVS */
{ op_81e0_0_comp_ff, 0x00000000, 33248 }, /* DIVS */
{ op_81e8_0_comp_ff, 0x00000002, 33256 }, /* DIVS */
{ op_81f0_0_comp_ff, 0x00000002, 33264 }, /* DIVS */
{ op_81f8_0_comp_ff, 0x00000002, 33272 }, /* DIVS */
{ op_81f9_0_comp_ff, 0x00000002, 33273 }, /* DIVS */
{ op_81fa_0_comp_ff, 0x00000002, 33274 }, /* DIVS */
{ op_81fb_0_comp_ff, 0x00000002, 33275 }, /* DIVS */
{ op_81fc_0_comp_ff, 0x00000002, 33276 }, /* DIVS */
{ op_9000_0_comp_ff, 0x00000000, 36864 }, /* SUB */
{ op_9010_0_comp_ff, 0x00000000, 36880 }, /* SUB */
{ op_9018_0_comp_ff, 0x00000000, 36888 }, /* SUB */
@ -3118,17 +3118,17 @@ extern const struct comptbl op_smalltbl_0_comp_nf[] = {
{ op_80ba_0_comp_nf, 0x00000002, 32954 }, /* OR */
{ op_80bb_0_comp_nf, 0x00000002, 32955 }, /* OR */
{ op_80bc_0_comp_nf, 0x00000002, 32956 }, /* OR */
{ NULL, 0x00000001, 32960 }, /* DIVU */
{ NULL, 0x00000001, 32976 }, /* DIVU */
{ NULL, 0x00000001, 32984 }, /* DIVU */
{ NULL, 0x00000001, 32992 }, /* DIVU */
{ NULL, 0x00000003, 33000 }, /* DIVU */
{ NULL, 0x00000003, 33008 }, /* DIVU */
{ NULL, 0x00000003, 33016 }, /* DIVU */
{ NULL, 0x00000003, 33017 }, /* DIVU */
{ NULL, 0x00000003, 33018 }, /* DIVU */
{ NULL, 0x00000003, 33019 }, /* DIVU */
{ NULL, 0x00000003, 33020 }, /* DIVU */
{ op_80c0_0_comp_nf, 0x00000000, 32960 }, /* DIVU */
{ op_80d0_0_comp_nf, 0x00000000, 32976 }, /* DIVU */
{ op_80d8_0_comp_nf, 0x00000000, 32984 }, /* DIVU */
{ op_80e0_0_comp_nf, 0x00000000, 32992 }, /* DIVU */
{ op_80e8_0_comp_nf, 0x00000002, 33000 }, /* DIVU */
{ op_80f0_0_comp_nf, 0x00000002, 33008 }, /* DIVU */
{ op_80f8_0_comp_nf, 0x00000002, 33016 }, /* DIVU */
{ op_80f9_0_comp_nf, 0x00000002, 33017 }, /* DIVU */
{ op_80fa_0_comp_nf, 0x00000002, 33018 }, /* DIVU */
{ op_80fb_0_comp_nf, 0x00000002, 33019 }, /* DIVU */
{ op_80fc_0_comp_nf, 0x00000002, 33020 }, /* DIVU */
{ NULL, 0x00000000, 33024 }, /* SBCD */
{ NULL, 0x00000000, 33032 }, /* SBCD */
{ op_8110_0_comp_nf, 0x00000000, 33040 }, /* OR */
@ -3156,17 +3156,17 @@ extern const struct comptbl op_smalltbl_0_comp_nf[] = {
{ op_81b0_0_comp_nf, 0x00000002, 33200 }, /* OR */
{ op_81b8_0_comp_nf, 0x00000002, 33208 }, /* OR */
{ op_81b9_0_comp_nf, 0x00000002, 33209 }, /* OR */
{ NULL, 0x00000001, 33216 }, /* DIVS */
{ NULL, 0x00000001, 33232 }, /* DIVS */
{ NULL, 0x00000001, 33240 }, /* DIVS */
{ NULL, 0x00000001, 33248 }, /* DIVS */
{ NULL, 0x00000001, 33256 }, /* DIVS */
{ NULL, 0x00000001, 33264 }, /* DIVS */
{ NULL, 0x00000001, 33272 }, /* DIVS */
{ NULL, 0x00000001, 33273 }, /* DIVS */
{ NULL, 0x00000001, 33274 }, /* DIVS */
{ NULL, 0x00000001, 33275 }, /* DIVS */
{ NULL, 0x00000001, 33276 }, /* DIVS */
{ op_81c0_0_comp_nf, 0x00000000, 33216 }, /* DIVS */
{ op_81d0_0_comp_nf, 0x00000000, 33232 }, /* DIVS */
{ op_81d8_0_comp_nf, 0x00000000, 33240 }, /* DIVS */
{ op_81e0_0_comp_nf, 0x00000000, 33248 }, /* DIVS */
{ op_81e8_0_comp_nf, 0x00000002, 33256 }, /* DIVS */
{ op_81f0_0_comp_nf, 0x00000002, 33264 }, /* DIVS */
{ op_81f8_0_comp_nf, 0x00000002, 33272 }, /* DIVS */
{ op_81f9_0_comp_nf, 0x00000002, 33273 }, /* DIVS */
{ op_81fa_0_comp_nf, 0x00000002, 33274 }, /* DIVS */
{ op_81fb_0_comp_nf, 0x00000002, 33275 }, /* DIVS */
{ op_81fc_0_comp_nf, 0x00000002, 33276 }, /* DIVS */
{ op_9000_0_comp_nf, 0x00000000, 36864 }, /* SUB */
{ op_9010_0_comp_nf, 0x00000000, 36880 }, /* SUB */
{ op_9018_0_comp_nf, 0x00000000, 36888 }, /* SUB */