e2k: Gen illopc for mirrored ld+st.
Signed-off-by: Denis Drakhnya <numas13@gmail.com>
This commit is contained in:
parent
75583b5082
commit
0a0655109a
|
@ -1071,34 +1071,34 @@ static AlopDesc alops[] = {
|
|||
{ X(OP_FXSQRTTXX), ALOPF1, ARGS_XXX, ALOP_SHORT, 0x5d, 1, -1, CHAN_5, { -1 } },
|
||||
{ X(OP_MOVIF), ALOPF1, ARGS_DSX, ALOP_SHORT, 0x5e, 1, -1, CHAN_14, { -1 } },
|
||||
{ X(OP_VFSI), ALOPF1, ARGS_SDD, ALOP_SHORT, 0x63, 1, -1, CHAN_14, { -1 } },
|
||||
{ X(OP_LDCSB), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x68, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSB), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x6c, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESB), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x70, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSB), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x74, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSB), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x78, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSB), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x7c, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSH), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x69, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSH), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x6d, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESH), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x71, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSH), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x75, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSH), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x79, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSH), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x7d, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSW), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x6a, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSW), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x6e, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESW), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x72, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSW), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x76, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSW), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x7a, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSW), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x7e, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSD), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x6b, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSD), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x6f, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESD), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x73, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSD), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x77, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSD), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x7b, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSD), ALOPF1, ARGS_SSD, ALOP_SHORT, 0x7f, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDB), ALOPF1, ARGS_DDD, ALOP_SHORT, 0x64, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDH), ALOPF1, ARGS_DDD, ALOP_SHORT, 0x65, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDW), ALOPF1, ARGS_DDD, ALOP_SHORT, 0x66, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDD), ALOPF1, ARGS_DDD, ALOP_SHORT, 0x67, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSB), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x68, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSB), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x6c, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESB), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x70, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSB), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x74, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSB), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x78, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSB), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x7c, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSH), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x69, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSH), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x6d, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESH), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x71, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSH), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x75, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSH), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x79, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSH), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x7d, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSW), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x6a, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSW), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x6e, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESW), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x72, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSW), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x76, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSW), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x7a, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSW), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x7e, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDCSD), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x6b, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDDSD), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x6f, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDESD), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x73, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDFSD), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x77, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDGSD), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x7b, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDSSD), ALOPF1_MAS, ARGS_SSD, ALOP_SHORT, 0x7f, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDB), ALOPF1_MAS, ARGS_DDD, ALOP_SHORT, 0x64, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDH), ALOPF1_MAS, ARGS_DDD, ALOP_SHORT, 0x65, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDW), ALOPF1_MAS, ARGS_DDD, ALOP_SHORT, 0x66, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_LDD), ALOPF1_MAS, ARGS_DDD, ALOP_SHORT, 0x67, 1, -1, CHAN_0235, { -1 } },
|
||||
{ X(OP_FXSQRTISX), ALOPF2, ARGS_SX, ALOP_SHORT, 0x52, 1, -1, CHAN_5, { -1 }, 0xc0 },
|
||||
{ X(OP_FXSQRTIDX), ALOPF2, ARGS_DX, ALOP_SHORT, 0x53, 1, -1, CHAN_5, { -1 }, 0xc0 },
|
||||
{ X(OP_FXSQRTIXX), ALOPF2, ARGS_XX, ALOP_SHORT, 0x57, 1, -1, CHAN_5, { -1 }, 0xc0 },
|
||||
|
@ -1392,42 +1392,42 @@ static AlopDesc alops[] = {
|
|||
{ X(OP_PUNPCKLBH), ALOPF11, ARGS_DDD, ALOP_EXT, 0x01, 1, -1, CHAN_14, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_PUNPCKLHW), ALOPF11, ARGS_DDD, ALOP_EXT, 0x03, 1, -1, CHAN_14, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_PUNPCKLWD), ALOPF11, ARGS_DDD, ALOP_EXT, 0x05, 1, -1, CHAN_14, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDB), ALOPF11, ARGS_SSD, ALOP_EXT, 0x64, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDH), ALOPF11, ARGS_SSD, ALOP_EXT, 0x65, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDW), ALOPF11, ARGS_SSD, ALOP_EXT, 0x66, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDD), ALOPF11, ARGS_SSD, ALOP_EXT, 0x67, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDQ), ALOPF11, ARGS_SSQ, ALOP_EXT, 0x79, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDB), ALOPF11, ARGS_SSD, ALOP_EXT, 0x60, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDH), ALOPF11, ARGS_SSD, ALOP_EXT, 0x61, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDW), ALOPF11, ARGS_SSD, ALOP_EXT, 0x62, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDD), ALOPF11, ARGS_SSD, ALOP_EXT, 0x63, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDQ), ALOPF11, ARGS_SSQ, ALOP_EXT, 0x78, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x68, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x69, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6a, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6b, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7a, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x70, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x73, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x71, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7c, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x72, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x74, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x77, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x75, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7d, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x76, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6c, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6f, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6d, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7b, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6e, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCSQ), ALOPF11, ARGS_DDQ, ALOP_EXT, 0x42, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDDSQ), ALOPF11, ARGS_DDQ, ALOP_EXT, 0x43, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDESQ), ALOPF11, ARGS_SSQ, ALOP_EXT, 0x44, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDFSQ), ALOPF11, ARGS_DDQ, ALOP_EXT, 0x45, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGSQ), ALOPF11, ARGS_DDQ, ALOP_EXT, 0x46, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDSSQ), ALOPF11, ARGS_DDQ, ALOP_EXT, 0x47, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDB), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x64, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDH), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x65, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDW), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x66, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDD), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x67, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDQ), ALOPF11_MAS, ARGS_SSQ, ALOP_EXT, 0x79, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDB), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x60, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDH), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x61, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDW), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x62, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDD), ALOPF11_MAS, ARGS_SSD, ALOP_EXT, 0x63, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDQ), ALOPF11_MAS, ARGS_SSQ, ALOP_EXT, 0x78, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x68, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x69, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6a, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6b, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7a, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x70, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x73, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x71, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7c, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x72, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x74, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x77, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x75, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7d, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x76, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6c, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6f, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6d, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7b, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6e, 1, 1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCSQ), ALOPF11_MAS, ARGS_DDQ, ALOP_EXT, 0x42, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDDSQ), ALOPF11_MAS, ARGS_DDQ, ALOP_EXT, 0x43, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDESQ), ALOPF11_MAS, ARGS_SSQ, ALOP_EXT, 0x44, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDFSQ), ALOPF11_MAS, ARGS_DDQ, ALOP_EXT, 0x45, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGSQ), ALOPF11_MAS, ARGS_DDQ, ALOP_EXT, 0x46, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDSSQ), ALOPF11_MAS, ARGS_DDQ, ALOP_EXT, 0x47, 1, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_FRCPS), ALOPF12, ARGS_SS, ALOP_EXT, 0x50, 1, -1, CHAN_5, { -1 }, 0xc0, 0xc0 },
|
||||
{ X(OP_FSQRTS), ALOPF12, ARGS_SS, ALOP_EXT, 0x4c, 1, -1, CHAN_5, { -1 }, 0xc0, 0xc0 },
|
||||
{ X(OP_FSQRTID), ALOPF12, ARGS_DD, ALOP_EXT, 0x4d, 1, -1, CHAN_5, { -1 }, 0xc0, 0xc0 },
|
||||
|
@ -1500,21 +1500,21 @@ static AlopDesc alops[] = {
|
|||
{ X(OP_CAST), ALOPF11, ARGS_QQQ, ALOP_EXT, 0x55, 2, 2, CHAN_0134, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_TDTOMP), ALOPF11, ARGS_DDD, ALOP_EXT, 0x53, 2, 2, CHAN_0134, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_ODTOAP), ALOPF11, ARGS_QDQ, ALOP_EXT, 0x54, 2, 2, CHAN_0134, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x70, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x73, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x71, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7c, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x72, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x74, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x77, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x75, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7d, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x76, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRB), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6c, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRD), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6f, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRH), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6d, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRQ), ALOPF11, ARGS_QSQ, ALOP_EXT, 0x7b, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRW), ALOPF11, ARGS_QSD, ALOP_EXT, 0x6e, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x70, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x73, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x71, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7c, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODWW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x72, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x74, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x77, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x75, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7d, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODPW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x76, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRB), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6c, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRD), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6f, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRH), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6d, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRQ), ALOPF11_MAS, ARGS_QSQ, ALOP_EXT, 0x7b, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDODRW), ALOPF11_MAS, ARGS_QSD, ALOP_EXT, 0x6e, 2, 2, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_GETTD), ALOPF12, ARGS_DD, ALOP_EXT, 0x56, 2, 2, CHAN_03, { -1 }, 0xc0, 0xc0 },
|
||||
{ X(OP_GETSOD), ALOPF12, ARGS_QQ, ALOP_EXT, 0x5a, 2, 2, CHAN_0134, { -1 }, 0xec, 0xc0 },
|
||||
{ X(OP_STODPB), ALOPF13, ARGS_QSS, ALOP_EXT, 0x34, 2, 2, CHAN_25, { -1 }, 0xc0 },
|
||||
|
@ -1706,18 +1706,18 @@ static AlopDesc alops[] = {
|
|||
{ X(OP_QPFCMPNLTD), ALOPF11, ARGS_PPP, ALOP_EXT1, 0x7b, 5, -1, CHAN_0134, { -1 }, 0xc5, 0 },
|
||||
{ X(OP_QPFCMPNLED), ALOPF11, ARGS_PPP, ALOP_EXT1, 0x7b, 5, -1, CHAN_0134, { -1 }, 0xc6, 0 },
|
||||
{ X(OP_QPFCMPODD), ALOPF11, ARGS_PPP, ALOP_EXT1, 0x7b, 5, -1, CHAN_0134, { -1 }, 0xc7, 0 },
|
||||
{ X(OP_LDQ), ALOPF11, ARGS_DDQ, ALOP_EXT, 0x41, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x61, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDQP), ALOPF11, ARGS_SSP, ALOP_EXT1, 0x69, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDQP), ALOPF11, ARGS_SSP, ALOP_EXT1, 0x68, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCSQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x62, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDDSQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x63, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDESQP), ALOPF11, ARGS_SSP, ALOP_EXT1, 0x64, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDFSQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x65, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGSQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x66, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDSSQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x67, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPQP), ALOPF11, ARGS_QSP, ALOP_EXT1, 0x6a, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDRQP), ALOPF11, ARGS_DDP, ALOP_EXT1, 0x6b, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDQ), ALOPF11_MAS, ARGS_DDQ, ALOP_EXT, 0x41, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x61, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGDQP), ALOPF11_MAS, ARGS_SSP, ALOP_EXT1, 0x69, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCUDQP), ALOPF11_MAS, ARGS_SSP, ALOP_EXT1, 0x68, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDCSQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x62, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDDSQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x63, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDESQP), ALOPF11_MAS, ARGS_SSP, ALOP_EXT1, 0x64, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDFSQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x65, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDGSQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x66, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDSSQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x67, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDAPQP), ALOPF11_MAS, ARGS_QSP, ALOP_EXT1, 0x6a, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_LDRQP), ALOPF11_MAS, ARGS_DDP, ALOP_EXT1, 0x6b, 5, -1, CHAN_0235, { -1 }, 0xc0, 0 },
|
||||
{ X(OP_QPSGN2MSKB), ALOPF12, ARGS_PS, ALOP_EXT1, 0x3c, 5, -1, CHAN_0134, { -1 }, 0xc0, 0xc0 },
|
||||
{ X(OP_QPSWITCHW), ALOPF12, ARGS_PP, ALOP_EXT1, 0x3e, 5, -1, CHAN_0134, { -1 }, 0xc0, 0xc0 },
|
||||
{ X(OP_QPSWITCHD), ALOPF12, ARGS_PP, ALOP_EXT1, 0x3f, 5, -1, CHAN_0134, { -1 }, 0xc0, 0xc0 },
|
||||
|
|
|
@ -292,6 +292,7 @@ typedef struct {
|
|||
typedef enum {
|
||||
ALOPF_NONE,
|
||||
ALOPF1,
|
||||
ALOPF1_MAS,
|
||||
ALOPF1_MERGE,
|
||||
ALOPF2,
|
||||
ALOPF3,
|
||||
|
@ -299,6 +300,7 @@ typedef enum {
|
|||
ALOPF8,
|
||||
ALOPF10,
|
||||
ALOPF11,
|
||||
ALOPF11_MAS,
|
||||
ALOPF11_MERGE,
|
||||
ALOPF11_LIT8,
|
||||
ALOPF12,
|
||||
|
@ -2136,9 +2138,11 @@ static ArgSize alop_opn_max_size(Alop *alop, uint8_t src)
|
|||
case ALOPF_NONE:
|
||||
break;
|
||||
case ALOPF1:
|
||||
case ALOPF1_MAS:
|
||||
case ALOPF1_MERGE:
|
||||
case ALOPF7:
|
||||
case ALOPF11:
|
||||
case ALOPF11_MAS:
|
||||
case ALOPF11_MERGE:
|
||||
case ALOPF11_LIT8:
|
||||
case ALOPF17:
|
||||
|
@ -2279,10 +2283,19 @@ static void gen_alop_save_dst(Alop *alop)
|
|||
uint8_t dst;
|
||||
|
||||
switch (alop->format) {
|
||||
case ALOPF_NONE:
|
||||
case ALOPF3:
|
||||
case ALOPF10:
|
||||
case ALOPF13:
|
||||
case ALOPF15:
|
||||
/* no dst reg */
|
||||
break;
|
||||
case ALOPF1:
|
||||
case ALOPF1_MAS:
|
||||
case ALOPF1_MERGE:
|
||||
case ALOPF2:
|
||||
case ALOPF11:
|
||||
case ALOPF11_MAS:
|
||||
case ALOPF11_MERGE:
|
||||
case ALOPF11_LIT8:
|
||||
case ALOPF12:
|
||||
|
@ -2337,6 +2350,7 @@ static void gen_alop_save_dst(Alop *alop)
|
|||
#endif
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -5412,6 +5426,7 @@ static void alop_table_find(DisasContext *ctx, Alop *alop, AlesFlag ales_present
|
|||
AlopDesc *desc = &alops[index];
|
||||
switch(desc->alopf) {
|
||||
case ALOPF1:
|
||||
case ALOPF1_MAS:
|
||||
case ALOPF1_MERGE:
|
||||
case ALOPF3:
|
||||
case ALOPF10:
|
||||
|
@ -5432,6 +5447,7 @@ static void alop_table_find(DisasContext *ctx, Alop *alop, AlesFlag ales_present
|
|||
&& alop->als.opce1 == 0xc0;
|
||||
break;
|
||||
case ALOPF11:
|
||||
case ALOPF11_MAS:
|
||||
case ALOPF11_MERGE:
|
||||
case ALOPF13:
|
||||
case ALOPF17:
|
||||
|
@ -6895,8 +6911,10 @@ static void alop_find_max_reg_indices(Alop *alop, int *max_r_src,
|
|||
case ALOPF_NONE:
|
||||
break;
|
||||
case ALOPF1:
|
||||
case ALOPF1_MAS:
|
||||
case ALOPF1_MERGE:
|
||||
case ALOPF11:
|
||||
case ALOPF11_MAS:
|
||||
case ALOPF11_MERGE:
|
||||
case ALOPF11_LIT8:
|
||||
check_reg_src(max_r_src, max_b, alop->als.src1);
|
||||
|
@ -6942,7 +6960,7 @@ static void alop_find_max_reg_indices(Alop *alop, int *max_r_src,
|
|||
check_reg_dst(max_r_dst, max_b, alop->als.dst);
|
||||
break;
|
||||
default:
|
||||
e2k_todo(alop->ctx, "check_args %d", alop->format);
|
||||
g_assert_not_reached();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -7800,6 +7818,19 @@ static void validate_bundle(DisasContext *ctx)
|
|||
Alop *alop = &ctx->alops[i];
|
||||
|
||||
switch (alop->format) {
|
||||
case ALOPF3:
|
||||
case ALOPF13:
|
||||
switch (ctx->alops[i == 2 ? 3 : 0].format) {
|
||||
case ALOPF1_MAS:
|
||||
case ALOPF11_MAS:
|
||||
/* Read and write operations cannot be executed simultaneously
|
||||
* on the mirrored channels (2+3 or 0+5). */
|
||||
gen_tr_excp_illopc(alop->ctx);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ALOPF15:
|
||||
if (!validate_state_reg(ctx, alop->als.dst, true)) {
|
||||
gen_tr_excp_illopc(alop->ctx);
|
||||
|
|
Loading…
Reference in New Issue