summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar bunnei2015-12-30 21:29:35 -0500
committerGravatar bunnei2015-12-30 21:29:35 -0500
commit54bdba750a2fe8a4af1408f9e9c0a4b17049c3ad (patch)
treeaca4168d5790b5c71650435218099c74dfd4c516 /src/core
parentMerge pull request #1309 from lioncash/render (diff)
parentarm_dyncom_dec: Fix decoding of VMLS (diff)
downloadyuzu-54bdba750a2fe8a4af1408f9e9c0a4b17049c3ad.tar.gz
yuzu-54bdba750a2fe8a4af1408f9e9c0a4b17049c3ad.tar.xz
yuzu-54bdba750a2fe8a4af1408f9e9c0a4b17049c3ad.zip
Merge pull request #1316 from lioncash/decode
arm_dyncom_dec: Fix decoding of VMLS
Diffstat (limited to 'src/core')
-rw-r--r--src/core/arm/dyncom/arm_dyncom_dec.cpp8
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp400
2 files changed, 202 insertions, 206 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_dec.cpp b/src/core/arm/dyncom/arm_dyncom_dec.cpp
index ee4288314..8cd6755cb 100644
--- a/src/core/arm/dyncom/arm_dyncom_dec.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_dec.cpp
@@ -6,10 +6,9 @@
6#include "core/arm/skyeye_common/armsupp.h" 6#include "core/arm/skyeye_common/armsupp.h"
7 7
8const InstructionSetEncodingItem arm_instruction[] = { 8const InstructionSetEncodingItem arm_instruction[] = {
9 { "vmla", 4, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x0, 9, 11, 0x5, 4, 4, 0 }}, 9 { "vmla", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x0, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }},
10 { "vmls", 7, ARMVFP2, { 28, 31, 0xF, 25, 27, 0x1, 23, 23, 1, 11, 11, 0, 8, 9, 0x2, 6, 6, 1, 4, 4, 0 }}, 10 { "vmls", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x0, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
11 { "vnmla", 4, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 4, 4, 0 }}, 11 { "vnmla", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
12 { "vnmla", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
13 { "vnmls", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }}, 12 { "vnmls", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }},
14 { "vnmul", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }}, 13 { "vnmul", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
15 { "vmul", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }}, 14 { "vmul", 5, ARMVFP2, { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }},
@@ -211,7 +210,6 @@ const InstructionSetEncodingItem arm_exclusion_code[] = {
211 { "vmla", 0, ARMVFP2, { 0 }}, 210 { "vmla", 0, ARMVFP2, { 0 }},
212 { "vmls", 0, ARMVFP2, { 0 }}, 211 { "vmls", 0, ARMVFP2, { 0 }},
213 { "vnmla", 0, ARMVFP2, { 0 }}, 212 { "vnmla", 0, ARMVFP2, { 0 }},
214 { "vnmla", 0, ARMVFP2, { 0 }},
215 { "vnmls", 0, ARMVFP2, { 0 }}, 213 { "vnmls", 0, ARMVFP2, { 0 }},
216 { "vnmul", 0, ARMVFP2, { 0 }}, 214 { "vnmul", 0, ARMVFP2, { 0 }},
217 { "vmul", 0, ARMVFP2, { 0 }}, 215 { "vmul", 0, ARMVFP2, { 0 }},
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index 87b2b715b..5f8826034 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -3202,7 +3202,6 @@ const transop_fp_t arm_instruction_trans[] = {
3202 INTERPRETER_TRANSLATE(vmla), 3202 INTERPRETER_TRANSLATE(vmla),
3203 INTERPRETER_TRANSLATE(vmls), 3203 INTERPRETER_TRANSLATE(vmls),
3204 INTERPRETER_TRANSLATE(vnmla), 3204 INTERPRETER_TRANSLATE(vnmla),
3205 INTERPRETER_TRANSLATE(vnmla),
3206 INTERPRETER_TRANSLATE(vnmls), 3205 INTERPRETER_TRANSLATE(vnmls),
3207 INTERPRETER_TRANSLATE(vnmul), 3206 INTERPRETER_TRANSLATE(vnmul),
3208 INTERPRETER_TRANSLATE(vmul), 3207 INTERPRETER_TRANSLATE(vmul),
@@ -3594,209 +3593,208 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
3594 case 0: goto VMLA_INST; \ 3593 case 0: goto VMLA_INST; \
3595 case 1: goto VMLS_INST; \ 3594 case 1: goto VMLS_INST; \
3596 case 2: goto VNMLA_INST; \ 3595 case 2: goto VNMLA_INST; \
3597 case 3: goto VNMLA_INST; \ 3596 case 3: goto VNMLS_INST; \
3598 case 4: goto VNMLS_INST; \ 3597 case 4: goto VNMUL_INST; \
3599 case 5: goto VNMUL_INST; \ 3598 case 5: goto VMUL_INST; \
3600 case 6: goto VMUL_INST; \ 3599 case 6: goto VADD_INST; \
3601 case 7: goto VADD_INST; \ 3600 case 7: goto VSUB_INST; \
3602 case 8: goto VSUB_INST; \ 3601 case 8: goto VDIV_INST; \
3603 case 9: goto VDIV_INST; \ 3602 case 9: goto VMOVI_INST; \
3604 case 10: goto VMOVI_INST; \ 3603 case 10: goto VMOVR_INST; \
3605 case 11: goto VMOVR_INST; \ 3604 case 11: goto VABS_INST; \
3606 case 12: goto VABS_INST; \ 3605 case 12: goto VNEG_INST; \
3607 case 13: goto VNEG_INST; \ 3606 case 13: goto VSQRT_INST; \
3608 case 14: goto VSQRT_INST; \ 3607 case 14: goto VCMP_INST; \
3609 case 15: goto VCMP_INST; \ 3608 case 15: goto VCMP2_INST; \
3610 case 16: goto VCMP2_INST; \ 3609 case 16: goto VCVTBDS_INST; \
3611 case 17: goto VCVTBDS_INST; \ 3610 case 17: goto VCVTBFF_INST; \
3612 case 18: goto VCVTBFF_INST; \ 3611 case 18: goto VCVTBFI_INST; \
3613 case 19: goto VCVTBFI_INST; \ 3612 case 19: goto VMOVBRS_INST; \
3614 case 20: goto VMOVBRS_INST; \ 3613 case 20: goto VMSR_INST; \
3615 case 21: goto VMSR_INST; \ 3614 case 21: goto VMOVBRC_INST; \
3616 case 22: goto VMOVBRC_INST; \ 3615 case 22: goto VMRS_INST; \
3617 case 23: goto VMRS_INST; \ 3616 case 23: goto VMOVBCR_INST; \
3618 case 24: goto VMOVBCR_INST; \ 3617 case 24: goto VMOVBRRSS_INST; \
3619 case 25: goto VMOVBRRSS_INST; \ 3618 case 25: goto VMOVBRRD_INST; \
3620 case 26: goto VMOVBRRD_INST; \ 3619 case 26: goto VSTR_INST; \
3621 case 27: goto VSTR_INST; \ 3620 case 27: goto VPUSH_INST; \
3622 case 28: goto VPUSH_INST; \ 3621 case 28: goto VSTM_INST; \
3623 case 29: goto VSTM_INST; \ 3622 case 29: goto VPOP_INST; \
3624 case 30: goto VPOP_INST; \ 3623 case 30: goto VLDR_INST; \
3625 case 31: goto VLDR_INST; \ 3624 case 31: goto VLDM_INST ; \
3626 case 32: goto VLDM_INST ; \ 3625 case 32: goto SRS_INST; \
3627 case 33: goto SRS_INST; \ 3626 case 33: goto RFE_INST; \
3628 case 34: goto RFE_INST; \ 3627 case 34: goto BKPT_INST; \
3629 case 35: goto BKPT_INST; \ 3628 case 35: goto BLX_INST; \
3630 case 36: goto BLX_INST; \ 3629 case 36: goto CPS_INST; \
3631 case 37: goto CPS_INST; \ 3630 case 37: goto PLD_INST; \
3632 case 38: goto PLD_INST; \ 3631 case 38: goto SETEND_INST; \
3633 case 39: goto SETEND_INST; \ 3632 case 39: goto CLREX_INST; \
3634 case 40: goto CLREX_INST; \ 3633 case 40: goto REV16_INST; \
3635 case 41: goto REV16_INST; \ 3634 case 41: goto USAD8_INST; \
3636 case 42: goto USAD8_INST; \ 3635 case 42: goto SXTB_INST; \
3637 case 43: goto SXTB_INST; \ 3636 case 43: goto UXTB_INST; \
3638 case 44: goto UXTB_INST; \ 3637 case 44: goto SXTH_INST; \
3639 case 45: goto SXTH_INST; \ 3638 case 45: goto SXTB16_INST; \
3640 case 46: goto SXTB16_INST; \ 3639 case 46: goto UXTH_INST; \
3641 case 47: goto UXTH_INST; \ 3640 case 47: goto UXTB16_INST; \
3642 case 48: goto UXTB16_INST; \ 3641 case 48: goto CPY_INST; \
3643 case 49: goto CPY_INST; \ 3642 case 49: goto UXTAB_INST; \
3644 case 50: goto UXTAB_INST; \ 3643 case 50: goto SSUB8_INST; \
3645 case 51: goto SSUB8_INST; \ 3644 case 51: goto SHSUB8_INST; \
3646 case 52: goto SHSUB8_INST; \ 3645 case 52: goto SSUBADDX_INST; \
3647 case 53: goto SSUBADDX_INST; \ 3646 case 53: goto STREX_INST; \
3648 case 54: goto STREX_INST; \ 3647 case 54: goto STREXB_INST; \
3649 case 55: goto STREXB_INST; \ 3648 case 55: goto SWP_INST; \
3650 case 56: goto SWP_INST; \ 3649 case 56: goto SWPB_INST; \
3651 case 57: goto SWPB_INST; \ 3650 case 57: goto SSUB16_INST; \
3652 case 58: goto SSUB16_INST; \ 3651 case 58: goto SSAT16_INST; \
3653 case 59: goto SSAT16_INST; \ 3652 case 59: goto SHSUBADDX_INST; \
3654 case 60: goto SHSUBADDX_INST; \ 3653 case 60: goto QSUBADDX_INST; \
3655 case 61: goto QSUBADDX_INST; \ 3654 case 61: goto SHADDSUBX_INST; \
3656 case 62: goto SHADDSUBX_INST; \ 3655 case 62: goto SHADD8_INST; \
3657 case 63: goto SHADD8_INST; \ 3656 case 63: goto SHADD16_INST; \
3658 case 64: goto SHADD16_INST; \ 3657 case 64: goto SEL_INST; \
3659 case 65: goto SEL_INST; \ 3658 case 65: goto SADDSUBX_INST; \
3660 case 66: goto SADDSUBX_INST; \ 3659 case 66: goto SADD8_INST; \
3661 case 67: goto SADD8_INST; \ 3660 case 67: goto SADD16_INST; \
3662 case 68: goto SADD16_INST; \ 3661 case 68: goto SHSUB16_INST; \
3663 case 69: goto SHSUB16_INST; \ 3662 case 69: goto UMAAL_INST; \
3664 case 70: goto UMAAL_INST; \ 3663 case 70: goto UXTAB16_INST; \
3665 case 71: goto UXTAB16_INST; \ 3664 case 71: goto USUBADDX_INST; \
3666 case 72: goto USUBADDX_INST; \ 3665 case 72: goto USUB8_INST; \
3667 case 73: goto USUB8_INST; \ 3666 case 73: goto USUB16_INST; \
3668 case 74: goto USUB16_INST; \ 3667 case 74: goto USAT16_INST; \
3669 case 75: goto USAT16_INST; \ 3668 case 75: goto USADA8_INST; \
3670 case 76: goto USADA8_INST; \ 3669 case 76: goto UQSUBADDX_INST; \
3671 case 77: goto UQSUBADDX_INST; \ 3670 case 77: goto UQSUB8_INST; \
3672 case 78: goto UQSUB8_INST; \ 3671 case 78: goto UQSUB16_INST; \
3673 case 79: goto UQSUB16_INST; \ 3672 case 79: goto UQADDSUBX_INST; \
3674 case 80: goto UQADDSUBX_INST; \ 3673 case 80: goto UQADD8_INST; \
3675 case 81: goto UQADD8_INST; \ 3674 case 81: goto UQADD16_INST; \
3676 case 82: goto UQADD16_INST; \ 3675 case 82: goto SXTAB_INST; \
3677 case 83: goto SXTAB_INST; \ 3676 case 83: goto UHSUBADDX_INST; \
3678 case 84: goto UHSUBADDX_INST; \ 3677 case 84: goto UHSUB8_INST; \
3679 case 85: goto UHSUB8_INST; \ 3678 case 85: goto UHSUB16_INST; \
3680 case 86: goto UHSUB16_INST; \ 3679 case 86: goto UHADDSUBX_INST; \
3681 case 87: goto UHADDSUBX_INST; \ 3680 case 87: goto UHADD8_INST; \
3682 case 88: goto UHADD8_INST; \ 3681 case 88: goto UHADD16_INST; \
3683 case 89: goto UHADD16_INST; \ 3682 case 89: goto UADDSUBX_INST; \
3684 case 90: goto UADDSUBX_INST; \ 3683 case 90: goto UADD8_INST; \
3685 case 91: goto UADD8_INST; \ 3684 case 91: goto UADD16_INST; \
3686 case 92: goto UADD16_INST; \ 3685 case 92: goto SXTAH_INST; \
3687 case 93: goto SXTAH_INST; \ 3686 case 93: goto SXTAB16_INST; \
3688 case 94: goto SXTAB16_INST; \ 3687 case 94: goto QADD8_INST; \
3689 case 95: goto QADD8_INST; \ 3688 case 95: goto BXJ_INST; \
3690 case 96: goto BXJ_INST; \ 3689 case 96: goto CLZ_INST; \
3691 case 97: goto CLZ_INST; \ 3690 case 97: goto UXTAH_INST; \
3692 case 98: goto UXTAH_INST; \ 3691 case 98: goto BX_INST; \
3693 case 99: goto BX_INST; \ 3692 case 99: goto REV_INST; \
3694 case 100: goto REV_INST; \ 3693 case 100: goto BLX_INST; \
3695 case 101: goto BLX_INST; \ 3694 case 101: goto REVSH_INST; \
3696 case 102: goto REVSH_INST; \ 3695 case 102: goto QADD_INST; \
3697 case 103: goto QADD_INST; \ 3696 case 103: goto QADD16_INST; \
3698 case 104: goto QADD16_INST; \ 3697 case 104: goto QADDSUBX_INST; \
3699 case 105: goto QADDSUBX_INST; \ 3698 case 105: goto LDREX_INST; \
3700 case 106: goto LDREX_INST; \ 3699 case 106: goto QDADD_INST; \
3701 case 107: goto QDADD_INST; \ 3700 case 107: goto QDSUB_INST; \
3702 case 108: goto QDSUB_INST; \ 3701 case 108: goto QSUB_INST; \
3703 case 109: goto QSUB_INST; \ 3702 case 109: goto LDREXB_INST; \
3704 case 110: goto LDREXB_INST; \ 3703 case 110: goto QSUB8_INST; \
3705 case 111: goto QSUB8_INST; \ 3704 case 111: goto QSUB16_INST; \
3706 case 112: goto QSUB16_INST; \ 3705 case 112: goto SMUAD_INST; \
3707 case 113: goto SMUAD_INST; \ 3706 case 113: goto SMMUL_INST; \
3708 case 114: goto SMMUL_INST; \ 3707 case 114: goto SMUSD_INST; \
3709 case 115: goto SMUSD_INST; \ 3708 case 115: goto SMLSD_INST; \
3710 case 116: goto SMLSD_INST; \ 3709 case 116: goto SMLSLD_INST; \
3711 case 117: goto SMLSLD_INST; \ 3710 case 117: goto SMMLA_INST; \
3712 case 118: goto SMMLA_INST; \ 3711 case 118: goto SMMLS_INST; \
3713 case 119: goto SMMLS_INST; \ 3712 case 119: goto SMLALD_INST; \
3714 case 120: goto SMLALD_INST; \ 3713 case 120: goto SMLAD_INST; \
3715 case 121: goto SMLAD_INST; \ 3714 case 121: goto SMLAW_INST; \
3716 case 122: goto SMLAW_INST; \ 3715 case 122: goto SMULW_INST; \
3717 case 123: goto SMULW_INST; \ 3716 case 123: goto PKHTB_INST; \
3718 case 124: goto PKHTB_INST; \ 3717 case 124: goto PKHBT_INST; \
3719 case 125: goto PKHBT_INST; \ 3718 case 125: goto SMUL_INST; \
3720 case 126: goto SMUL_INST; \ 3719 case 126: goto SMLALXY_INST; \
3721 case 127: goto SMLALXY_INST; \ 3720 case 127: goto SMLA_INST; \
3722 case 128: goto SMLA_INST; \ 3721 case 128: goto MCRR_INST; \
3723 case 129: goto MCRR_INST; \ 3722 case 129: goto MRRC_INST; \
3724 case 130: goto MRRC_INST; \ 3723 case 130: goto CMP_INST; \
3725 case 131: goto CMP_INST; \ 3724 case 131: goto TST_INST; \
3726 case 132: goto TST_INST; \ 3725 case 132: goto TEQ_INST; \
3727 case 133: goto TEQ_INST; \ 3726 case 133: goto CMN_INST; \
3728 case 134: goto CMN_INST; \ 3727 case 134: goto SMULL_INST; \
3729 case 135: goto SMULL_INST; \ 3728 case 135: goto UMULL_INST; \
3730 case 136: goto UMULL_INST; \ 3729 case 136: goto UMLAL_INST; \
3731 case 137: goto UMLAL_INST; \ 3730 case 137: goto SMLAL_INST; \
3732 case 138: goto SMLAL_INST; \ 3731 case 138: goto MUL_INST; \
3733 case 139: goto MUL_INST; \ 3732 case 139: goto MLA_INST; \
3734 case 140: goto MLA_INST; \ 3733 case 140: goto SSAT_INST; \
3735 case 141: goto SSAT_INST; \ 3734 case 141: goto USAT_INST; \
3736 case 142: goto USAT_INST; \ 3735 case 142: goto MRS_INST; \
3737 case 143: goto MRS_INST; \ 3736 case 143: goto MSR_INST; \
3738 case 144: goto MSR_INST; \ 3737 case 144: goto AND_INST; \
3739 case 145: goto AND_INST; \ 3738 case 145: goto BIC_INST; \
3740 case 146: goto BIC_INST; \ 3739 case 146: goto LDM_INST; \
3741 case 147: goto LDM_INST; \ 3740 case 147: goto EOR_INST; \
3742 case 148: goto EOR_INST; \ 3741 case 148: goto ADD_INST; \
3743 case 149: goto ADD_INST; \ 3742 case 149: goto RSB_INST; \
3744 case 150: goto RSB_INST; \ 3743 case 150: goto RSC_INST; \
3745 case 151: goto RSC_INST; \ 3744 case 151: goto SBC_INST; \
3746 case 152: goto SBC_INST; \ 3745 case 152: goto ADC_INST; \
3747 case 153: goto ADC_INST; \ 3746 case 153: goto SUB_INST; \
3748 case 154: goto SUB_INST; \ 3747 case 154: goto ORR_INST; \
3749 case 155: goto ORR_INST; \ 3748 case 155: goto MVN_INST; \
3750 case 156: goto MVN_INST; \ 3749 case 156: goto MOV_INST; \
3751 case 157: goto MOV_INST; \ 3750 case 157: goto STM_INST; \
3752 case 158: goto STM_INST; \ 3751 case 158: goto LDM_INST; \
3753 case 159: goto LDM_INST; \ 3752 case 159: goto LDRSH_INST; \
3754 case 160: goto LDRSH_INST; \ 3753 case 160: goto STM_INST; \
3755 case 161: goto STM_INST; \ 3754 case 161: goto LDM_INST; \
3756 case 162: goto LDM_INST; \ 3755 case 162: goto LDRSB_INST; \
3757 case 163: goto LDRSB_INST; \ 3756 case 163: goto STRD_INST; \
3758 case 164: goto STRD_INST; \ 3757 case 164: goto LDRH_INST; \
3759 case 165: goto LDRH_INST; \ 3758 case 165: goto STRH_INST; \
3760 case 166: goto STRH_INST; \ 3759 case 166: goto LDRD_INST; \
3761 case 167: goto LDRD_INST; \ 3760 case 167: goto STRT_INST; \
3762 case 168: goto STRT_INST; \ 3761 case 168: goto STRBT_INST; \
3763 case 169: goto STRBT_INST; \ 3762 case 169: goto LDRBT_INST; \
3764 case 170: goto LDRBT_INST; \ 3763 case 170: goto LDRT_INST; \
3765 case 171: goto LDRT_INST; \ 3764 case 171: goto MRC_INST; \
3766 case 172: goto MRC_INST; \ 3765 case 172: goto MCR_INST; \
3767 case 173: goto MCR_INST; \ 3766 case 173: goto MSR_INST; \
3768 case 174: goto MSR_INST; \ 3767 case 174: goto MSR_INST; \
3769 case 175: goto MSR_INST; \ 3768 case 175: goto MSR_INST; \
3770 case 176: goto MSR_INST; \ 3769 case 176: goto MSR_INST; \
3771 case 177: goto MSR_INST; \ 3770 case 177: goto MSR_INST; \
3772 case 178: goto MSR_INST; \ 3771 case 178: goto LDRB_INST; \
3773 case 179: goto LDRB_INST; \ 3772 case 179: goto STRB_INST; \
3774 case 180: goto STRB_INST; \ 3773 case 180: goto LDR_INST; \
3775 case 181: goto LDR_INST; \ 3774 case 181: goto LDRCOND_INST ; \
3776 case 182: goto LDRCOND_INST ; \ 3775 case 182: goto STR_INST; \
3777 case 183: goto STR_INST; \ 3776 case 183: goto CDP_INST; \
3778 case 184: goto CDP_INST; \ 3777 case 184: goto STC_INST; \
3779 case 185: goto STC_INST; \ 3778 case 185: goto LDC_INST; \
3780 case 186: goto LDC_INST; \ 3779 case 186: goto LDREXD_INST; \
3781 case 187: goto LDREXD_INST; \ 3780 case 187: goto STREXD_INST; \
3782 case 188: goto STREXD_INST; \ 3781 case 188: goto LDREXH_INST; \
3783 case 189: goto LDREXH_INST; \ 3782 case 189: goto STREXH_INST; \
3784 case 190: goto STREXH_INST; \ 3783 case 190: goto NOP_INST; \
3785 case 191: goto NOP_INST; \ 3784 case 191: goto YIELD_INST; \
3786 case 192: goto YIELD_INST; \ 3785 case 192: goto WFE_INST; \
3787 case 193: goto WFE_INST; \ 3786 case 193: goto WFI_INST; \
3788 case 194: goto WFI_INST; \ 3787 case 194: goto SEV_INST; \
3789 case 195: goto SEV_INST; \ 3788 case 195: goto SWI_INST; \
3790 case 196: goto SWI_INST; \ 3789 case 196: goto BBL_INST; \
3791 case 197: goto BBL_INST; \ 3790 case 197: goto B_2_THUMB ; \
3792 case 198: goto B_2_THUMB ; \ 3791 case 198: goto B_COND_THUMB ; \
3793 case 199: goto B_COND_THUMB ; \ 3792 case 199: goto BL_1_THUMB ; \
3794 case 200: goto BL_1_THUMB ; \ 3793 case 200: goto BL_2_THUMB ; \
3795 case 201: goto BL_2_THUMB ; \ 3794 case 201: goto BLX_1_THUMB ; \
3796 case 202: goto BLX_1_THUMB ; \ 3795 case 202: goto DISPATCH; \
3797 case 203: goto DISPATCH; \ 3796 case 203: goto INIT_INST_LENGTH; \
3798 case 204: goto INIT_INST_LENGTH; \ 3797 case 204: goto END; \
3799 case 205: goto END; \
3800 } 3798 }
3801#endif 3799#endif
3802 3800
@@ -3823,7 +3821,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
3823 // to a clunky switch statement. 3821 // to a clunky switch statement.
3824#if defined __GNUC__ || defined __clang__ 3822#if defined __GNUC__ || defined __clang__
3825 void *InstLabel[] = { 3823 void *InstLabel[] = {
3826 &&VMLA_INST, &&VMLS_INST, &&VNMLA_INST, &&VNMLA_INST, &&VNMLS_INST, &&VNMUL_INST, &&VMUL_INST, &&VADD_INST, &&VSUB_INST, 3824 &&VMLA_INST, &&VMLS_INST, &&VNMLA_INST, &&VNMLS_INST, &&VNMUL_INST, &&VMUL_INST, &&VADD_INST, &&VSUB_INST,
3827 &&VDIV_INST, &&VMOVI_INST, &&VMOVR_INST, &&VABS_INST, &&VNEG_INST, &&VSQRT_INST, &&VCMP_INST, &&VCMP2_INST, &&VCVTBDS_INST, 3825 &&VDIV_INST, &&VMOVI_INST, &&VMOVR_INST, &&VABS_INST, &&VNEG_INST, &&VSQRT_INST, &&VCMP_INST, &&VCMP2_INST, &&VCVTBDS_INST,
3828 &&VCVTBFF_INST, &&VCVTBFI_INST, &&VMOVBRS_INST, &&VMSR_INST, &&VMOVBRC_INST, &&VMRS_INST, &&VMOVBCR_INST, &&VMOVBRRSS_INST, 3826 &&VCVTBFF_INST, &&VCVTBFI_INST, &&VMOVBRS_INST, &&VMSR_INST, &&VMOVBRC_INST, &&VMRS_INST, &&VMOVBCR_INST, &&VMOVBRRSS_INST,
3829 &&VMOVBRRD_INST, &&VSTR_INST, &&VPUSH_INST, &&VSTM_INST, &&VPOP_INST, &&VLDR_INST, &&VLDM_INST, 3827 &&VMOVBRRD_INST, &&VSTR_INST, &&VPUSH_INST, &&VSTM_INST, &&VPOP_INST, &&VLDR_INST, &&VLDM_INST,