Commit a4d17f1992cd04bb4c1c65e239e6921b66363fc3
1 parent
803b3c7b
Fix co-processor branch and store ops (Aurelien Jarno)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2603 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
13 additions
and
9 deletions
target-sparc/translate.c
... | ... | @@ -1012,6 +1012,11 @@ static void disas_sparc_insn(DisasContext * dc) |
1012 | 1012 | do_fbranch(dc, target, insn, cc); |
1013 | 1013 | goto jmp_insn; |
1014 | 1014 | } |
1015 | +#else | |
1016 | + case 0x7: /* CBN+x */ | |
1017 | + { | |
1018 | + goto ncp_insn; | |
1019 | + } | |
1015 | 1020 | #endif |
1016 | 1021 | case 0x2: /* BN+x */ |
1017 | 1022 | { |
... | ... | @@ -2444,12 +2449,7 @@ static void disas_sparc_insn(DisasContext * dc) |
2444 | 2449 | case 0x30: /* ldc */ |
2445 | 2450 | case 0x31: /* ldcsr */ |
2446 | 2451 | case 0x33: /* lddc */ |
2447 | - case 0x34: /* stc */ | |
2448 | - case 0x35: /* stcsr */ | |
2449 | - case 0x36: /* stdcq */ | |
2450 | - case 0x37: /* stdc */ | |
2451 | 2452 | goto ncp_insn; |
2452 | - break; | |
2453 | 2453 | /* avoid warnings */ |
2454 | 2454 | (void) &gen_op_stfa; |
2455 | 2455 | (void) &gen_op_stdfa; |
... | ... | @@ -2612,8 +2612,8 @@ static void disas_sparc_insn(DisasContext * dc) |
2612 | 2612 | goto illegal_insn; |
2613 | 2613 | } |
2614 | 2614 | } else if (xop > 0x33 && xop < 0x3f) { |
2615 | -#ifdef TARGET_SPARC64 | |
2616 | 2615 | switch (xop) { |
2616 | +#ifdef TARGET_SPARC64 | |
2617 | 2617 | case 0x34: /* V9 stfa */ |
2618 | 2618 | gen_op_stfa(insn, 0, 0, 0); // XXX |
2619 | 2619 | break; |
... | ... | @@ -2628,12 +2628,16 @@ static void disas_sparc_insn(DisasContext * dc) |
2628 | 2628 | break; |
2629 | 2629 | case 0x36: /* V9 stqfa */ |
2630 | 2630 | goto nfpu_insn; |
2631 | +#else | |
2632 | + case 0x34: /* stc */ | |
2633 | + case 0x35: /* stcsr */ | |
2634 | + case 0x36: /* stdcq */ | |
2635 | + case 0x37: /* stdc */ | |
2636 | + goto ncp_insn; | |
2637 | +#endif | |
2631 | 2638 | default: |
2632 | 2639 | goto illegal_insn; |
2633 | 2640 | } |
2634 | -#else | |
2635 | - goto illegal_insn; | |
2636 | -#endif | |
2637 | 2641 | } |
2638 | 2642 | else |
2639 | 2643 | goto illegal_insn; | ... | ... |