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 @@
 #include "core/arm/skyeye_common/armsupp.h"
 
 const InstructionSetEncodingItem arm_instruction[] = {
-    { "vmla", 4, ARMVFP2,      { 23, 27, 0x1C, 20, 21, 0x0, 9, 11, 0x5, 4, 4, 0 }},
-    { "vmls", 7, ARMVFP2,      { 28, 31, 0xF, 25, 27, 0x1, 23, 23, 1, 11, 11, 0, 8, 9, 0x2, 6, 6, 1, 4, 4, 0 }},
-    { "vnmla", 4, ARMVFP2,     { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 4, 4, 0 }},
-    { "vnmla", 5, ARMVFP2,     { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
+    { "vmla", 5, ARMVFP2,      { 23, 27, 0x1C, 20, 21, 0x0, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }},
+    { "vmls", 5, ARMVFP2,      { 23, 27, 0x1C, 20, 21, 0x0, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
+    { "vnmla", 5, ARMVFP2,     { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
     { "vnmls", 5, ARMVFP2,     { 23, 27, 0x1C, 20, 21, 0x1, 9, 11, 0x5, 6, 6, 0, 4, 4, 0 }},
     { "vnmul", 5, ARMVFP2,     { 23, 27, 0x1C, 20, 21, 0x2, 9, 11, 0x5, 6, 6, 1, 4, 4, 0 }},
     { "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[] = {
     { "vmla", 0, ARMVFP2,      { 0 }},
     { "vmls", 0, ARMVFP2,      { 0 }},
     { "vnmla", 0, ARMVFP2,     { 0 }},
-    { "vnmla", 0, ARMVFP2,     { 0 }},
     { "vnmls", 0, ARMVFP2,     { 0 }},
     { "vnmul", 0, ARMVFP2,     { 0 }},
     { "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[] = {
     INTERPRETER_TRANSLATE(vmla),
     INTERPRETER_TRANSLATE(vmls),
     INTERPRETER_TRANSLATE(vnmla),
-    INTERPRETER_TRANSLATE(vnmla),
     INTERPRETER_TRANSLATE(vnmls),
     INTERPRETER_TRANSLATE(vnmul),
     INTERPRETER_TRANSLATE(vmul),
@@ -3594,209 +3593,208 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
     case 0: goto VMLA_INST; \
     case 1: goto VMLS_INST; \
     case 2: goto VNMLA_INST; \
-    case 3: goto VNMLA_INST; \
-    case 4: goto VNMLS_INST; \
-    case 5: goto VNMUL_INST; \
-    case 6: goto VMUL_INST; \
-    case 7: goto VADD_INST; \
-    case 8: goto VSUB_INST; \
-    case 9: goto VDIV_INST; \
-    case 10: goto VMOVI_INST; \
-    case 11: goto VMOVR_INST; \
-    case 12: goto VABS_INST; \
-    case 13: goto VNEG_INST; \
-    case 14: goto VSQRT_INST; \
-    case 15: goto VCMP_INST; \
-    case 16: goto VCMP2_INST; \
-    case 17: goto VCVTBDS_INST; \
-    case 18: goto VCVTBFF_INST; \
-    case 19: goto VCVTBFI_INST; \
-    case 20: goto VMOVBRS_INST; \
-    case 21: goto VMSR_INST; \
-    case 22: goto VMOVBRC_INST; \
-    case 23: goto VMRS_INST; \
-    case 24: goto VMOVBCR_INST; \
-    case 25: goto VMOVBRRSS_INST; \
-    case 26: goto VMOVBRRD_INST; \
-    case 27: goto VSTR_INST; \
-    case 28: goto VPUSH_INST; \
-    case 29: goto VSTM_INST; \
-    case 30: goto VPOP_INST; \
-    case 31: goto VLDR_INST; \
-    case 32: goto VLDM_INST ; \
-    case 33: goto SRS_INST; \
-    case 34: goto RFE_INST; \
-    case 35: goto BKPT_INST; \
-    case 36: goto BLX_INST; \
-    case 37: goto CPS_INST; \
-    case 38: goto PLD_INST; \
-    case 39: goto SETEND_INST; \
-    case 40: goto CLREX_INST; \
-    case 41: goto REV16_INST; \
-    case 42: goto USAD8_INST; \
-    case 43: goto SXTB_INST; \
-    case 44: goto UXTB_INST; \
-    case 45: goto SXTH_INST; \
-    case 46: goto SXTB16_INST; \
-    case 47: goto UXTH_INST; \
-    case 48: goto UXTB16_INST; \
-    case 49: goto CPY_INST; \
-    case 50: goto UXTAB_INST; \
-    case 51: goto SSUB8_INST; \
-    case 52: goto SHSUB8_INST; \
-    case 53: goto SSUBADDX_INST; \
-    case 54: goto STREX_INST; \
-    case 55: goto STREXB_INST; \
-    case 56: goto SWP_INST; \
-    case 57: goto SWPB_INST; \
-    case 58: goto SSUB16_INST; \
-    case 59: goto SSAT16_INST; \
-    case 60: goto SHSUBADDX_INST; \
-    case 61: goto QSUBADDX_INST; \
-    case 62: goto SHADDSUBX_INST; \
-    case 63: goto SHADD8_INST; \
-    case 64: goto SHADD16_INST; \
-    case 65: goto SEL_INST; \
-    case 66: goto SADDSUBX_INST; \
-    case 67: goto SADD8_INST; \
-    case 68: goto SADD16_INST; \
-    case 69: goto SHSUB16_INST; \
-    case 70: goto UMAAL_INST; \
-    case 71: goto UXTAB16_INST; \
-    case 72: goto USUBADDX_INST; \
-    case 73: goto USUB8_INST; \
-    case 74: goto USUB16_INST; \
-    case 75: goto USAT16_INST; \
-    case 76: goto USADA8_INST; \
-    case 77: goto UQSUBADDX_INST; \
-    case 78: goto UQSUB8_INST; \
-    case 79: goto UQSUB16_INST; \
-    case 80: goto UQADDSUBX_INST; \
-    case 81: goto UQADD8_INST; \
-    case 82: goto UQADD16_INST; \
-    case 83: goto SXTAB_INST; \
-    case 84: goto UHSUBADDX_INST; \
-    case 85: goto UHSUB8_INST; \
-    case 86: goto UHSUB16_INST; \
-    case 87: goto UHADDSUBX_INST; \
-    case 88: goto UHADD8_INST; \
-    case 89: goto UHADD16_INST; \
-    case 90: goto UADDSUBX_INST; \
-    case 91: goto UADD8_INST; \
-    case 92: goto UADD16_INST; \
-    case 93: goto SXTAH_INST; \
-    case 94: goto SXTAB16_INST; \
-    case 95: goto QADD8_INST; \
-    case 96: goto BXJ_INST; \
-    case 97: goto CLZ_INST; \
-    case 98: goto UXTAH_INST; \
-    case 99: goto BX_INST; \
-    case 100: goto REV_INST; \
-    case 101: goto BLX_INST; \
-    case 102: goto REVSH_INST; \
-    case 103: goto QADD_INST; \
-    case 104: goto QADD16_INST; \
-    case 105: goto QADDSUBX_INST; \
-    case 106: goto LDREX_INST; \
-    case 107: goto QDADD_INST; \
-    case 108: goto QDSUB_INST; \
-    case 109: goto QSUB_INST; \
-    case 110: goto LDREXB_INST; \
-    case 111: goto QSUB8_INST; \
-    case 112: goto QSUB16_INST; \
-    case 113: goto SMUAD_INST; \
-    case 114: goto SMMUL_INST; \
-    case 115: goto SMUSD_INST; \
-    case 116: goto SMLSD_INST; \
-    case 117: goto SMLSLD_INST; \
-    case 118: goto SMMLA_INST; \
-    case 119: goto SMMLS_INST; \
-    case 120: goto SMLALD_INST; \
-    case 121: goto SMLAD_INST; \
-    case 122: goto SMLAW_INST; \
-    case 123: goto SMULW_INST; \
-    case 124: goto PKHTB_INST; \
-    case 125: goto PKHBT_INST; \
-    case 126: goto SMUL_INST; \
-    case 127: goto SMLALXY_INST; \
-    case 128: goto SMLA_INST; \
-    case 129: goto MCRR_INST; \
-    case 130: goto MRRC_INST; \
-    case 131: goto CMP_INST; \
-    case 132: goto TST_INST; \
-    case 133: goto TEQ_INST; \
-    case 134: goto CMN_INST; \
-    case 135: goto SMULL_INST; \
-    case 136: goto UMULL_INST; \
-    case 137: goto UMLAL_INST; \
-    case 138: goto SMLAL_INST; \
-    case 139: goto MUL_INST; \
-    case 140: goto MLA_INST; \
-    case 141: goto SSAT_INST; \
-    case 142: goto USAT_INST; \
-    case 143: goto MRS_INST; \
-    case 144: goto MSR_INST; \
-    case 145: goto AND_INST; \
-    case 146: goto BIC_INST; \
-    case 147: goto LDM_INST; \
-    case 148: goto EOR_INST; \
-    case 149: goto ADD_INST; \
-    case 150: goto RSB_INST; \
-    case 151: goto RSC_INST; \
-    case 152: goto SBC_INST; \
-    case 153: goto ADC_INST; \
-    case 154: goto SUB_INST; \
-    case 155: goto ORR_INST; \
-    case 156: goto MVN_INST; \
-    case 157: goto MOV_INST; \
-    case 158: goto STM_INST; \
-    case 159: goto LDM_INST; \
-    case 160: goto LDRSH_INST; \
-    case 161: goto STM_INST; \
-    case 162: goto LDM_INST; \
-    case 163: goto LDRSB_INST; \
-    case 164: goto STRD_INST; \
-    case 165: goto LDRH_INST; \
-    case 166: goto STRH_INST; \
-    case 167: goto LDRD_INST; \
-    case 168: goto STRT_INST; \
-    case 169: goto STRBT_INST; \
-    case 170: goto LDRBT_INST; \
-    case 171: goto LDRT_INST; \
-    case 172: goto MRC_INST; \
-    case 173: goto MCR_INST; \
+    case 3: goto VNMLS_INST; \
+    case 4: goto VNMUL_INST; \
+    case 5: goto VMUL_INST; \
+    case 6: goto VADD_INST; \
+    case 7: goto VSUB_INST; \
+    case 8: goto VDIV_INST; \
+    case 9: goto VMOVI_INST; \
+    case 10: goto VMOVR_INST; \
+    case 11: goto VABS_INST; \
+    case 12: goto VNEG_INST; \
+    case 13: goto VSQRT_INST; \
+    case 14: goto VCMP_INST; \
+    case 15: goto VCMP2_INST; \
+    case 16: goto VCVTBDS_INST; \
+    case 17: goto VCVTBFF_INST; \
+    case 18: goto VCVTBFI_INST; \
+    case 19: goto VMOVBRS_INST; \
+    case 20: goto VMSR_INST; \
+    case 21: goto VMOVBRC_INST; \
+    case 22: goto VMRS_INST; \
+    case 23: goto VMOVBCR_INST; \
+    case 24: goto VMOVBRRSS_INST; \
+    case 25: goto VMOVBRRD_INST; \
+    case 26: goto VSTR_INST; \
+    case 27: goto VPUSH_INST; \
+    case 28: goto VSTM_INST; \
+    case 29: goto VPOP_INST; \
+    case 30: goto VLDR_INST; \
+    case 31: goto VLDM_INST ; \
+    case 32: goto SRS_INST; \
+    case 33: goto RFE_INST; \
+    case 34: goto BKPT_INST; \
+    case 35: goto BLX_INST; \
+    case 36: goto CPS_INST; \
+    case 37: goto PLD_INST; \
+    case 38: goto SETEND_INST; \
+    case 39: goto CLREX_INST; \
+    case 40: goto REV16_INST; \
+    case 41: goto USAD8_INST; \
+    case 42: goto SXTB_INST; \
+    case 43: goto UXTB_INST; \
+    case 44: goto SXTH_INST; \
+    case 45: goto SXTB16_INST; \
+    case 46: goto UXTH_INST; \
+    case 47: goto UXTB16_INST; \
+    case 48: goto CPY_INST; \
+    case 49: goto UXTAB_INST; \
+    case 50: goto SSUB8_INST; \
+    case 51: goto SHSUB8_INST; \
+    case 52: goto SSUBADDX_INST; \
+    case 53: goto STREX_INST; \
+    case 54: goto STREXB_INST; \
+    case 55: goto SWP_INST; \
+    case 56: goto SWPB_INST; \
+    case 57: goto SSUB16_INST; \
+    case 58: goto SSAT16_INST; \
+    case 59: goto SHSUBADDX_INST; \
+    case 60: goto QSUBADDX_INST; \
+    case 61: goto SHADDSUBX_INST; \
+    case 62: goto SHADD8_INST; \
+    case 63: goto SHADD16_INST; \
+    case 64: goto SEL_INST; \
+    case 65: goto SADDSUBX_INST; \
+    case 66: goto SADD8_INST; \
+    case 67: goto SADD16_INST; \
+    case 68: goto SHSUB16_INST; \
+    case 69: goto UMAAL_INST; \
+    case 70: goto UXTAB16_INST; \
+    case 71: goto USUBADDX_INST; \
+    case 72: goto USUB8_INST; \
+    case 73: goto USUB16_INST; \
+    case 74: goto USAT16_INST; \
+    case 75: goto USADA8_INST; \
+    case 76: goto UQSUBADDX_INST; \
+    case 77: goto UQSUB8_INST; \
+    case 78: goto UQSUB16_INST; \
+    case 79: goto UQADDSUBX_INST; \
+    case 80: goto UQADD8_INST; \
+    case 81: goto UQADD16_INST; \
+    case 82: goto SXTAB_INST; \
+    case 83: goto UHSUBADDX_INST; \
+    case 84: goto UHSUB8_INST; \
+    case 85: goto UHSUB16_INST; \
+    case 86: goto UHADDSUBX_INST; \
+    case 87: goto UHADD8_INST; \
+    case 88: goto UHADD16_INST; \
+    case 89: goto UADDSUBX_INST; \
+    case 90: goto UADD8_INST; \
+    case 91: goto UADD16_INST; \
+    case 92: goto SXTAH_INST; \
+    case 93: goto SXTAB16_INST; \
+    case 94: goto QADD8_INST; \
+    case 95: goto BXJ_INST; \
+    case 96: goto CLZ_INST; \
+    case 97: goto UXTAH_INST; \
+    case 98: goto BX_INST; \
+    case 99: goto REV_INST; \
+    case 100: goto BLX_INST; \
+    case 101: goto REVSH_INST; \
+    case 102: goto QADD_INST; \
+    case 103: goto QADD16_INST; \
+    case 104: goto QADDSUBX_INST; \
+    case 105: goto LDREX_INST; \
+    case 106: goto QDADD_INST; \
+    case 107: goto QDSUB_INST; \
+    case 108: goto QSUB_INST; \
+    case 109: goto LDREXB_INST; \
+    case 110: goto QSUB8_INST; \
+    case 111: goto QSUB16_INST; \
+    case 112: goto SMUAD_INST; \
+    case 113: goto SMMUL_INST; \
+    case 114: goto SMUSD_INST; \
+    case 115: goto SMLSD_INST; \
+    case 116: goto SMLSLD_INST; \
+    case 117: goto SMMLA_INST; \
+    case 118: goto SMMLS_INST; \
+    case 119: goto SMLALD_INST; \
+    case 120: goto SMLAD_INST; \
+    case 121: goto SMLAW_INST; \
+    case 122: goto SMULW_INST; \
+    case 123: goto PKHTB_INST; \
+    case 124: goto PKHBT_INST; \
+    case 125: goto SMUL_INST; \
+    case 126: goto SMLALXY_INST; \
+    case 127: goto SMLA_INST; \
+    case 128: goto MCRR_INST; \
+    case 129: goto MRRC_INST; \
+    case 130: goto CMP_INST; \
+    case 131: goto TST_INST; \
+    case 132: goto TEQ_INST; \
+    case 133: goto CMN_INST; \
+    case 134: goto SMULL_INST; \
+    case 135: goto UMULL_INST; \
+    case 136: goto UMLAL_INST; \
+    case 137: goto SMLAL_INST; \
+    case 138: goto MUL_INST; \
+    case 139: goto MLA_INST; \
+    case 140: goto SSAT_INST; \
+    case 141: goto USAT_INST; \
+    case 142: goto MRS_INST; \
+    case 143: goto MSR_INST; \
+    case 144: goto AND_INST; \
+    case 145: goto BIC_INST; \
+    case 146: goto LDM_INST; \
+    case 147: goto EOR_INST; \
+    case 148: goto ADD_INST; \
+    case 149: goto RSB_INST; \
+    case 150: goto RSC_INST; \
+    case 151: goto SBC_INST; \
+    case 152: goto ADC_INST; \
+    case 153: goto SUB_INST; \
+    case 154: goto ORR_INST; \
+    case 155: goto MVN_INST; \
+    case 156: goto MOV_INST; \
+    case 157: goto STM_INST; \
+    case 158: goto LDM_INST; \
+    case 159: goto LDRSH_INST; \
+    case 160: goto STM_INST; \
+    case 161: goto LDM_INST; \
+    case 162: goto LDRSB_INST; \
+    case 163: goto STRD_INST; \
+    case 164: goto LDRH_INST; \
+    case 165: goto STRH_INST; \
+    case 166: goto LDRD_INST; \
+    case 167: goto STRT_INST; \
+    case 168: goto STRBT_INST; \
+    case 169: goto LDRBT_INST; \
+    case 170: goto LDRT_INST; \
+    case 171: goto MRC_INST; \
+    case 172: goto MCR_INST; \
+    case 173: goto MSR_INST; \
     case 174: goto MSR_INST; \
     case 175: goto MSR_INST; \
     case 176: goto MSR_INST; \
     case 177: goto MSR_INST; \
-    case 178: goto MSR_INST; \
-    case 179: goto LDRB_INST; \
-    case 180: goto STRB_INST; \
-    case 181: goto LDR_INST; \
-    case 182: goto LDRCOND_INST ; \
-    case 183: goto STR_INST; \
-    case 184: goto CDP_INST; \
-    case 185: goto STC_INST; \
-    case 186: goto LDC_INST; \
-    case 187: goto LDREXD_INST; \
-    case 188: goto STREXD_INST; \
-    case 189: goto LDREXH_INST; \
-    case 190: goto STREXH_INST; \
-    case 191: goto NOP_INST; \
-    case 192: goto YIELD_INST; \
-    case 193: goto WFE_INST; \
-    case 194: goto WFI_INST; \
-    case 195: goto SEV_INST; \
-    case 196: goto SWI_INST; \
-    case 197: goto BBL_INST; \
-    case 198: goto B_2_THUMB ; \
-    case 199: goto B_COND_THUMB ; \
-    case 200: goto BL_1_THUMB ; \
-    case 201: goto BL_2_THUMB ; \
-    case 202: goto BLX_1_THUMB ; \
-    case 203: goto DISPATCH; \
-    case 204: goto INIT_INST_LENGTH; \
-    case 205: goto END; \
+    case 178: goto LDRB_INST; \
+    case 179: goto STRB_INST; \
+    case 180: goto LDR_INST; \
+    case 181: goto LDRCOND_INST ; \
+    case 182: goto STR_INST; \
+    case 183: goto CDP_INST; \
+    case 184: goto STC_INST; \
+    case 185: goto LDC_INST; \
+    case 186: goto LDREXD_INST; \
+    case 187: goto STREXD_INST; \
+    case 188: goto LDREXH_INST; \
+    case 189: goto STREXH_INST; \
+    case 190: goto NOP_INST; \
+    case 191: goto YIELD_INST; \
+    case 192: goto WFE_INST; \
+    case 193: goto WFI_INST; \
+    case 194: goto SEV_INST; \
+    case 195: goto SWI_INST; \
+    case 196: goto BBL_INST; \
+    case 197: goto B_2_THUMB ; \
+    case 198: goto B_COND_THUMB ; \
+    case 199: goto BL_1_THUMB ; \
+    case 200: goto BL_2_THUMB ; \
+    case 201: goto BLX_1_THUMB ; \
+    case 202: goto DISPATCH; \
+    case 203: goto INIT_INST_LENGTH; \
+    case 204: goto END; \
     }
 #endif
 
@@ -3823,7 +3821,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
     // to a clunky switch statement.
 #if defined __GNUC__ || defined __clang__
     void *InstLabel[] = {
-        &&VMLA_INST, &&VMLS_INST, &&VNMLA_INST, &&VNMLA_INST, &&VNMLS_INST, &&VNMUL_INST, &&VMUL_INST, &&VADD_INST, &&VSUB_INST,
+        &&VMLA_INST, &&VMLS_INST, &&VNMLA_INST, &&VNMLS_INST, &&VNMUL_INST, &&VMUL_INST, &&VADD_INST, &&VSUB_INST,
         &&VDIV_INST, &&VMOVI_INST, &&VMOVR_INST, &&VABS_INST, &&VNEG_INST, &&VSQRT_INST, &&VCMP_INST, &&VCMP2_INST, &&VCVTBDS_INST,
         &&VCVTBFF_INST, &&VCVTBFI_INST, &&VMOVBRS_INST, &&VMSR_INST, &&VMOVBRC_INST, &&VMRS_INST, &&VMOVBCR_INST, &&VMOVBRRSS_INST,
         &&VMOVBRRD_INST, &&VSTR_INST, &&VPUSH_INST, &&VSTM_INST, &&VPOP_INST, &&VLDR_INST, &&VLDM_INST,