Commit 55e4f6644e32bfb8fe84c8b8eab95ec5984679cf

Authored by bellard
1 parent d8e3326c

FPU fix (Joerg Platte)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1962 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 5 additions and 0 deletions
target-sparc/translate.c
@@ -982,6 +982,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -982,6 +982,7 @@ static void disas_sparc_insn(DisasContext * dc)
982 { 982 {
983 int cc = GET_FIELD_SP(insn, 20, 21); 983 int cc = GET_FIELD_SP(insn, 20, 21);
984 #if !defined(CONFIG_USER_ONLY) 984 #if !defined(CONFIG_USER_ONLY)
  985 + save_state(dc);
985 gen_op_trap_ifnofpu(); 986 gen_op_trap_ifnofpu();
986 #endif 987 #endif
987 target = GET_FIELD_SP(insn, 0, 18); 988 target = GET_FIELD_SP(insn, 0, 18);
@@ -1002,6 +1003,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -1002,6 +1003,7 @@ static void disas_sparc_insn(DisasContext * dc)
1002 case 0x6: /* FBN+x */ 1003 case 0x6: /* FBN+x */
1003 { 1004 {
1004 #if !defined(CONFIG_USER_ONLY) 1005 #if !defined(CONFIG_USER_ONLY)
  1006 + save_state(dc);
1005 gen_op_trap_ifnofpu(); 1007 gen_op_trap_ifnofpu();
1006 #endif 1008 #endif
1007 target = GET_FIELD(insn, 10, 31); 1009 target = GET_FIELD(insn, 10, 31);
@@ -1236,6 +1238,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -1236,6 +1238,7 @@ static void disas_sparc_insn(DisasContext * dc)
1236 #endif 1238 #endif
1237 } else if (xop == 0x34) { /* FPU Operations */ 1239 } else if (xop == 0x34) { /* FPU Operations */
1238 #if !defined(CONFIG_USER_ONLY) 1240 #if !defined(CONFIG_USER_ONLY)
  1241 + save_state(dc);
1239 gen_op_trap_ifnofpu(); 1242 gen_op_trap_ifnofpu();
1240 #endif 1243 #endif
1241 rs1 = GET_FIELD(insn, 13, 17); 1244 rs1 = GET_FIELD(insn, 13, 17);
@@ -1424,6 +1427,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -1424,6 +1427,7 @@ static void disas_sparc_insn(DisasContext * dc)
1424 int cond; 1427 int cond;
1425 #endif 1428 #endif
1426 #if !defined(CONFIG_USER_ONLY) 1429 #if !defined(CONFIG_USER_ONLY)
  1430 + save_state(dc);
1427 gen_op_trap_ifnofpu(); 1431 gen_op_trap_ifnofpu();
1428 #endif 1432 #endif
1429 rs1 = GET_FIELD(insn, 13, 17); 1433 rs1 = GET_FIELD(insn, 13, 17);
@@ -2346,6 +2350,7 @@ static void disas_sparc_insn(DisasContext * dc) @@ -2346,6 +2350,7 @@ static void disas_sparc_insn(DisasContext * dc)
2346 #endif 2350 #endif
2347 } else if (xop >= 0x20 && xop < 0x24) { 2351 } else if (xop >= 0x20 && xop < 0x24) {
2348 #if !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64) 2352 #if !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64)
  2353 + save_state(dc);
2349 gen_op_trap_ifnofpu(); 2354 gen_op_trap_ifnofpu();
2350 #endif 2355 #endif
2351 switch (xop) { 2356 switch (xop) {