e2k: update disassembler
This commit is contained in:
parent
9e855a1ead
commit
16fd915344
@ -68,6 +68,8 @@ struct e2k_private_data
|
||||
|
||||
unsigned short version;
|
||||
int lines;
|
||||
|
||||
int align;
|
||||
};
|
||||
|
||||
#define implement_me(c) assert((c) && "implement me");
|
||||
@ -82,7 +84,7 @@ struct e2k_private_data
|
||||
print_styled (info, dis_style_mnemonic, __VA_ARGS__)
|
||||
|
||||
#define print_align(info) \
|
||||
print_text (info, "\t")
|
||||
print_text (info, " ")
|
||||
|
||||
#define print_aligned_text(info, ...) \
|
||||
print_align (info); \
|
||||
@ -93,7 +95,7 @@ struct e2k_private_data
|
||||
print_styled (info, dis_style_mnemonic, __VA_ARGS__)
|
||||
|
||||
#define print_operand_alignment(info, width) \
|
||||
print_text (info, "%c", width < 8 ? '\t' : ' ');
|
||||
print_text (info, "%*c", width < 8 ? 8 - width % 8 : 4 - width % 4, ' ')
|
||||
|
||||
#define print_sub_mnemonic(info, ...) \
|
||||
print_styled (info, dis_style_sub_mnemonic, __VA_ARGS__)
|
||||
@ -488,7 +490,7 @@ print_syllable_impl (struct disassemble_info *info)
|
||||
|
||||
if (pd->syll_cur >= pd->syll_len)
|
||||
{
|
||||
print_text (info, "%20c", ' ');
|
||||
print_text (info, "%16c", ' ');
|
||||
return;
|
||||
}
|
||||
|
||||
@ -698,7 +700,8 @@ static void
|
||||
print_nl (struct disassemble_info *info)
|
||||
{
|
||||
struct e2k_private_data *pd = info->private_data;
|
||||
print_styled (info, dis_style_comment_stop, "\n\t");
|
||||
print_styled (info, dis_style_comment_stop, "\n");
|
||||
print_text (info, "%*c", pd->align, ' ');
|
||||
print_syllable (pd, info);
|
||||
++pd->lines;
|
||||
}
|
||||
@ -891,7 +894,7 @@ decode_pls (struct disassemble_info *info,
|
||||
if (!used[i + 4])
|
||||
continue;
|
||||
|
||||
print_text (info, "plu%d\t", i);
|
||||
print_text (info, "plu%d ", i);
|
||||
switch (pls & LP_OPC_MASK)
|
||||
{
|
||||
case LP_ANDP:
|
||||
@ -1735,10 +1738,13 @@ decode_al (bfd_vma memaddr, struct disassemble_info *info,
|
||||
return;
|
||||
}
|
||||
|
||||
print_text (info, "alc%d", ch);
|
||||
if (ALS_DECODE_SM (als))
|
||||
{
|
||||
print_text (info, "alc%d", ch);
|
||||
print_sub_mnemonic (info, ".sm ");
|
||||
print_text (info, "\t");
|
||||
}
|
||||
else
|
||||
print_text (info, "alc%d ", ch);
|
||||
print_mnemonic (info, "%s", opcode->name);
|
||||
width = strlen (opcode->name);
|
||||
|
||||
@ -1947,7 +1953,7 @@ decode_al (bfd_vma memaddr, struct disassemble_info *info,
|
||||
/* Special case for staa instructions. */
|
||||
if (opcode->format == ALF10_MAS && ALS_DECODE_AA_INC (als))
|
||||
{
|
||||
print_text (info, "alc%d\t", ch);
|
||||
print_text (info, "alc%d ", ch);
|
||||
print_mnemonic (info, "incr");
|
||||
print_operand_alignment (info, 4);
|
||||
print_aaincr (info, ALS_DECODE_AA_INCR (als));
|
||||
@ -2007,7 +2013,6 @@ print_bundle (bfd_vma memaddr, struct disassemble_info *info)
|
||||
return status;
|
||||
}
|
||||
|
||||
print_text (info, "\n\t");
|
||||
len = HS_DECODE_BSZ (packet[0]);
|
||||
status = (*info->read_memory_func) (memaddr, packet, len, info);
|
||||
if (status != 0 || !bundle_unpack (pd, packet, len, &bundle))
|
||||
@ -2069,7 +2074,7 @@ print_bundle (bfd_vma memaddr, struct disassemble_info *info)
|
||||
decode_nop (info, bundle.hs);
|
||||
}
|
||||
|
||||
//print_aligned_text (info, "--");
|
||||
print_aligned_text (info, "--");
|
||||
|
||||
/* Force print tail syllables. */
|
||||
if (pd->show_syllables)
|
||||
@ -2093,6 +2098,8 @@ print_insn_e2k (bfd_vma memaddr, struct disassemble_info *info)
|
||||
|
||||
pd = info->private_data;
|
||||
|
||||
pd->align = MAX((64 - clz64(memaddr) + 3) / 4, 8) + 5;
|
||||
|
||||
if (info->disassembler_options != NULL)
|
||||
{
|
||||
set_isa_version (pd, info->mach);
|
||||
|
@ -848,7 +848,7 @@ const struct al_format_info al_format_info[ALF_MAX] =
|
||||
/* ALF13_MAS */ {0x7f000000, 0xffff, {U,U,5,U,U,2}, "4,1,2m?"},
|
||||
/* ALF15 */ {0x7fff0000, 0xffff, {U,U,U,U,U,U}, "S,2?"},
|
||||
/* ALF16 */ {0x7f00ff00, 0xffff, {U,U,U,U,U,U}, "D,s?"},
|
||||
/* ALF17 */ {0x7f000000, 0xffff, {U,U,U,U,U,U}, "P,1,2?"},
|
||||
/* ALF17 */ {0x7f0000e0, 0xffff, {U,U,U,U,U,U}, "P,1,2?"},
|
||||
/* ALF21 */ {0x7f000000, 0xff00, {U,U,U,U,U,U}, "D,1,2,3?"},
|
||||
/* ALF21_LT3 */ {0x7f000000, 0xff00, {U,U,U,U,U,U}, "D,1,2,L?"},
|
||||
/* ALF21_MERGE */ {0x7f000000, 0xff00, {U,U,U,U,U,U}, "D,1,2,3,p?"},
|
||||
@ -895,7 +895,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"addw", 0x10000000, 0x0000, { 1, 1, 1, 1, 1, 1}, S,S,S,0, ALF1, 0},
|
||||
{"addd", 0x11000000, 0x0000, { 1, 1, 1, 1, 1, 1}, D,D,D,0, ALF1, 0},
|
||||
{"negw", 0x12c00000, 0x0000, { 1, 1, 1, 1, 1, 1}, S,S,S,0, ALF2, AF_ALIAS},
|
||||
{"subs", 0x12000000, 0x0000, { 1, 1, 1, 1, 1, 1}, S,S,S,0, ALF1, 0},
|
||||
{"subw", 0x12000000, 0x0000, { 1, 1, 1, 1, 1, 1}, S,S,S,0, ALF1, 0},
|
||||
{"negd", 0x13c00000, 0x0000, { 1, 1, 1, 1, 1, 1}, D,D,D,0, ALF2, AF_ALIAS},
|
||||
{"subd", 0x13000000, 0x0000, { 1, 1, 1, 1, 1, 1}, D,D,D,0, ALF1, 0},
|
||||
{"sclw", 0x14000000, 0x0000, { 1, 1, 1, 1, 1, 1}, S,S,S,0, ALF1, 0},
|
||||
@ -935,7 +935,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"cmpandpdb", 0x230000a0, 0x0000, { 1, 1, 0, 1, 1, 0}, 0,D,D,0, ALF7, 0},
|
||||
{"cmpandledb", 0x230000e0, 0x0000, { 1, 1, 0, 1, 1, 0}, 0,D,D,0, ALF7, 0},
|
||||
{"cctopo", 0x24c00000, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
{"stb", 0x24000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,D,D,0, ALF3_MAS, 0},
|
||||
{"sb", 0x24000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,D,D,0, ALF3_MAS, 0},
|
||||
{"cctopb", 0x24c00020, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
{"cctope", 0x24c00040, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
{"cctopbe", 0x24c00060, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
@ -943,10 +943,10 @@ const struct al_opcode al_opcodes[] =
|
||||
{"cctopp", 0x24c000a0, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
{"cctopl", 0x24c000c0, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
{"cctople", 0x24c000e0, 0x0000, { 1, 0, 0, 1, 0, 0}, 0,0,S,0, ALF8, 0},
|
||||
{"sth", 0x25000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,D,D,0, ALF3_MAS, 0},
|
||||
{"stw", 0x26000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,D,D,0, ALF3_MAS, 0},
|
||||
{"sh", 0x25000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,D,D,0, ALF3_MAS, 0},
|
||||
{"sw", 0x26000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,D,D,0, ALF3_MAS, 0},
|
||||
{"bitrevw", 0x26c00000, 0x0000, { 2, 2, 0, 2, 2, 0}, S,0,S,0, ALF2, 0},
|
||||
{"std", 0x27000000, 0x0000, { 0, 0, 1, 0, 0, 1}, D,D,D,0, ALF3_MAS, 0},
|
||||
{"sd", 0x27000000, 0x0000, { 0, 0, 1, 0, 0, 1}, D,D,D,0, ALF3_MAS, 0},
|
||||
{"bitrevd", 0x27c00000, 0x0000, { 2, 2, 0, 2, 2, 0}, D,0,D,0, ALF2, 0},
|
||||
{"fxcmpeqsb", 0x28000000, 0x0000, { 1, 1, 0, 1, 1, 0}, 0,X,S,0, ALF7, 0},
|
||||
{"stcsb", 0x28000000, 0x0000, { 0, 0, 1, 0, 0, 1}, S,S,S,0, ALF3_MAS, 0},
|
||||
@ -1096,41 +1096,41 @@ const struct al_opcode al_opcodes[] =
|
||||
{"fxrsubdd", 0x59000000, 0x0000, { 1, 1, 0, 1, 1, 0}, D,X,D,0, ALF1, 0},
|
||||
{"fxsqrtuxx", 0x59000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,X,0, ALF1, 0},
|
||||
{"fxrsubsx", 0x5a000000, 0x0000, { 1, 1, 0, 1, 1, 0}, X,X,S,0, ALF1, 0},
|
||||
{"fxsqrtusx", 0x5a000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,S,0, ALF1, 0},
|
||||
{"fxsqrtusx", 0x5a000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,S,X,0, ALF1, 0},
|
||||
{"fxrsubdx", 0x5b000000, 0x0000, { 1, 1, 0, 1, 1, 0}, X,X,D,0, ALF1, 0},
|
||||
{"fxsqrtudx", 0x5b000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,D,0, ALF1, 0},
|
||||
{"fxsqrtudx", 0x5b000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,D,X,0, ALF1, 0},
|
||||
{"movfi", 0x5cc00000, 0x0000, { 2, 1, 0, 2, 1, 0}, S,0,X,0, ALF2, 0},
|
||||
{"fxsqrttxx", 0x5d000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,X,0, ALF1, 0},
|
||||
{"fxsqrttsx", 0x5e000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,S,0, ALF1, 0},
|
||||
{"fxsqrttsx", 0x5e000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,S,X,0, ALF1, 0},
|
||||
{"movif", 0x5e000000, 0x0000, { 2, 1, 0, 2, 1, 0}, X,D,S,0, ALF1, 0},
|
||||
{"fxsqrttdx", 0x5f000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,D,0, ALF1, 0},
|
||||
{"fxsqrttdx", 0x5f000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,D,X,0, ALF1, 0},
|
||||
{"movx", 0x5fc00000, 0x0000, { 2, 2, 0, 2, 2, 0}, X,0,X,0, ALF2, 0},
|
||||
{"movxa", 0x5fc10000, 0x0000, { 2, 2, 0, 2, 2, 0}, X,0,X,0, ALF2, 0},
|
||||
{"movxc", 0x5fc20000, 0x0000, { 2, 2, 0, 2, 2, 0}, X,0,X,0, ALF2, 0},
|
||||
{"fxdivtss", 0x60000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,S,S,0, ALF1, 0},
|
||||
{"fxdivtss", 0x60000000, 0x0000, { 0, 0, 0, 0, 0, 1}, S,S,X,0, ALF1, 0},
|
||||
{"movts", 0x60c00000, 0x0000, { 1, 1, 0, 1, 1, 0}, S,0,S,0, ALF2, 0},
|
||||
{"movtcs", 0x60c10000, 0x0000, { 1, 1, 0, 1, 1, 0}, S,0,S,0, ALF2, 0},
|
||||
{"movtrs", 0x60c20000, 0x0000, { 1, 1, 0, 1, 1, 0}, S,0,S,0, ALF2, 0},
|
||||
{"movtrcs", 0x60c30000, 0x0000, { 1, 1, 0, 1, 1, 0}, S,0,S,0, ALF2, 0},
|
||||
{"fxdivtdd", 0x61000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,D,D,0, ALF1, 0},
|
||||
{"fxdivtdd", 0x61000000, 0x0000, { 0, 0, 0, 0, 0, 1}, D,D,X,0, ALF1, 0},
|
||||
{"movtd", 0x61c00000, 0x0000, { 1, 1, 0, 1, 1, 0}, D,0,D,0, ALF2_MOVTD, 0},
|
||||
{"movtcd", 0x61c10000, 0x0000, { 1, 1, 0, 1, 1, 0}, D,0,D,0, ALF2_MOVTD, 0},
|
||||
{"movtrd", 0x61c20000, 0x0000, { 1, 1, 0, 1, 1, 0}, D,0,D,0, ALF2_MOVTD, 0},
|
||||
{"movtrcd", 0x61c30000, 0x0000, { 1, 1, 0, 1, 1, 0}, D,0,D,0, ALF2_MOVTD, 0},
|
||||
{"fxdivtsx", 0x62000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,S,0, ALF1, 0},
|
||||
{"fxdivtsx", 0x62000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,S,X,0, ALF1, 0},
|
||||
{"getsap", 0x62ec0000, 0x0000, { 1, 1, 0, 0, 0, 0}, Q,0,S,0, ALF2, AF_PAIR},
|
||||
{"cudtoap", 0x62f00000, 0x0000, { 1, 1, 0, 1, 1, 0}, Q,0,S,0, ALF2, AF_PAIR},
|
||||
{"gdtoap", 0x62f20000, 0x0000, { 1, 1, 0, 1, 1, 0}, Q,0,S,0, ALF2, AF_PAIR},
|
||||
{"fxdivtdx", 0x63000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,X,D,0, ALF1, 0},
|
||||
{"fxdivtdx", 0x63000000, 0x0000, { 0, 0, 0, 0, 0, 1}, X,D,X,0, ALF1, 0},
|
||||
{"vfsi", 0x63000000, 0x0000, { 0, 1, 0, 0, 1, 0}, D,S,D,0, ALF1, 0},
|
||||
{"getpl", 0x63f00000, 0x0000, { 1, 0, 0, 1, 0, 0}, D,0,S,0, ALF2, 0},
|
||||
{"ldb", 0x64000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"lb", 0x64000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"lzcnts", 0x64c00000, 0x0000, { 0, 2, 0, 0, 2, 0}, S,0,S,0, ALF2, 0},
|
||||
{"ldh", 0x65000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"lh", 0x65000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"lzcntd", 0x65c00000, 0x0000, { 0, 2, 0, 0, 2, 0}, D,0,D,0, ALF2, 0},
|
||||
{"ldw", 0x66000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"lw", 0x66000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"popcnts", 0x66c00000, 0x0000, { 0, 2, 0, 0, 2, 0}, S,0,S,0, ALF2, 0},
|
||||
{"ldd", 0x67000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"ld", 0x67000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,D,D,0, ALF1_MAS, 0},
|
||||
{"popcntd", 0x67c00000, 0x0000, { 0, 2, 0, 0, 2, 0}, D,0,D,0, ALF2, 0},
|
||||
{"ldcsb", 0x68000000, 0x0000, { 1, 0, 1, 1, 0, 1}, D,S,S,0, ALF1_MAS, 0},
|
||||
{"vfbgv", 0x68000000, 0x0000, { 0, 6, 0, 0, 6, 0}, S,S,S,0, ALF1, 0},
|
||||
@ -1163,7 +1163,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"punpckhbh", 0x00000000, 0x01c0, { 0, 1, 0, 0, 1, 0}, D,D,D,0, ALF11, 0},
|
||||
{"pminsh", 0x01000000, 0x01c0, { 1, 0, 0, 1, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"punpcklbh", 0x01000000, 0x01c0, { 0, 1, 0, 0, 1, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stq", 0x01000000, 0x01c0, { 0, 0, 5, 0, 0, 5}, Q,D,D,0, ALF13_MAS, AF_PAIR},
|
||||
{"sq", 0x01000000, 0x01c0, { 0, 0, 5, 0, 0, 5}, Q,D,D,0, ALF13_MAS, AF_PAIR},
|
||||
{"pmaxub", 0x02000000, 0x01c0, { 1, 0, 0, 1, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"punpckhhw", 0x02000000, 0x01c0, { 0, 1, 0, 0, 1, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stcsq", 0x02000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, Q,S,S,0, ALF13_MAS, AF_PAIR},
|
||||
@ -1235,7 +1235,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"pmulubhh", 0x1d000000, 0x01c0, { 0, 2, 0, 0, 2, 0}, D,D,D,0, ALF11, 0},
|
||||
{"aaurww", 0x1e000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,0,0,0, AAURW, 0},
|
||||
{"staaw", 0x1e000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,0,0,0, ALF10_MAS, 0},
|
||||
{"pextrh", 0x1e000000, 0x0100, { 0, 1, 0, 0, 1, 0}, S,D,D,0, ALF11_LIT8, 0},
|
||||
{"pextrh", 0x1e000000, 0x0100, { 0, 1, 0, 0, 1, 0}, D,D,D,0, ALF11_LIT8, 0},
|
||||
{"pavgusb", 0x1e000000, 0x01c0, { 1, 0, 0, 1, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"aaurwd", 0x1f000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, D,0,0,0, AAURW, 0},
|
||||
{"staad", 0x1f000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, D,0,0,0, ALF10_MAS, 0},
|
||||
@ -1248,7 +1248,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"fscales", 0x24000000, 0x01c0, { 0, 4, 0, 0, 4, 0}, S,S,S,0, ALF11, 0},
|
||||
{"stgdb", 0x24000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,S,S,0, ALF13_MAS, 0},
|
||||
{"gettc", 0x24c00000, 0x01c0, { 1, 0, 0, 0, 0, 0}, D,0,S,0, ALF12, 0},
|
||||
{"fscaled", 0x25000000, 0x01c0, { 0, 4, 0, 0, 4, 0}, D,S,D,0, ALF11, 0},
|
||||
{"fscaled", 0x25000000, 0x01c0, { 0, 4, 0, 0, 4, 0}, D,D,S,0, ALF11, 0},
|
||||
{"puttc", 0x25000000, 0x01c0, { 1, 0, 0, 0, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stgdh", 0x25000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,S,S,0, ALF13_MAS, 0},
|
||||
{"puttst", 0x25c00000, 0x01c0, { 0, 0, 0, 3, 0, 0}, D,0,D,0, ALF12, 0},
|
||||
@ -1259,11 +1259,11 @@ const struct al_opcode al_opcodes[] =
|
||||
{"fxscalesx", 0x27000000, 0x01c0, { 0, 4, 0, 0, 4, 0}, X,X,S,0, ALF11, 0},
|
||||
{"stgdd", 0x27000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, D,S,S,0, ALF13_MAS, 0},
|
||||
{"stapb", 0x28000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,Q,S,0, ALF13_MAS, 0},
|
||||
{"fxcmpudsf", 0x28000000, 0x01c3, { 1, 1, 0, 1, 1, 0}, S,X,X,0, ALF11, 0},
|
||||
{"fxcmpodsf", 0x28000000, 0x01c7, { 1, 1, 0, 1, 1, 0}, S,X,X,0, ALF11, 0},
|
||||
{"fxcmpudsf", 0x28000000, 0x01c3, { 1, 1, 0, 1, 1, 0}, S,X,S,0, ALF11, 0},
|
||||
{"fxcmpodsf", 0x28000000, 0x01c7, { 1, 1, 0, 1, 1, 0}, S,X,S,0, ALF11, 0},
|
||||
{"staph", 0x29000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,Q,S,0, ALF13_MAS, 0},
|
||||
{"fxcmpuddf", 0x29000000, 0x01c3, { 1, 1, 0, 1, 1, 0}, S,X,X,0, ALF11, 0},
|
||||
{"fxcmpoddf", 0x29000000, 0x01c7, { 1, 1, 0, 1, 1, 0}, S,X,X,0, ALF11, 0},
|
||||
{"fxcmpuddf", 0x29000000, 0x01c3, { 1, 1, 0, 1, 1, 0}, S,X,D,0, ALF11, 0},
|
||||
{"fxcmpoddf", 0x29000000, 0x01c7, { 1, 1, 0, 1, 1, 0}, S,X,D,0, ALF11, 0},
|
||||
{"stapw", 0x2a000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, S,Q,S,0, ALF13_MAS, 0},
|
||||
{"stapd", 0x2b000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, D,Q,S,0, ALF13_MAS, 0},
|
||||
{"fxcmpudxf", 0x2b000000, 0x01c3, { 1, 1, 0, 1, 1, 0}, S,X,X,0, ALF11, 0},
|
||||
@ -1333,12 +1333,12 @@ const struct al_opcode al_opcodes[] =
|
||||
{"rww", 0x3cc00000, 0x01c0, { 1, 0, 0, 0, 0, 0}, 0,0,S,0, ALF15, 0},
|
||||
{"stodpq", 0x3d000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, Q,Q,S,0, ALF13_MAS, AF_PAIR | AF_REMOVED_IN_V3},
|
||||
{"rwd", 0x3dc00000, 0x01c0, { 1, 0, 0, 0, 0, 0}, 0,0,D,0, ALF15, 0},
|
||||
{"rrs", 0x3e00c000, 0x01c0, { 1, 0, 0, 0, 0, 0}, S,0,0,0, ALF16, 0},
|
||||
{"rrw", 0x3e00c000, 0x01c0, { 1, 0, 0, 0, 0, 0}, S,0,0,0, ALF16, 0},
|
||||
{"aaurwq", 0x3f000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, Q,0,0,0, AAURW, AF_PAIR},
|
||||
{"staaq", 0x3f000000, 0x01c0, { 0, 0, 1, 0, 0, 1}, Q,0,0,0, ALF10_MAS, AF_PAIR},
|
||||
{"rrd", 0x3f00c000, 0x01c0, { 1, 0, 0, 0, 0, 0}, D,0,0,0, ALF16, 0},
|
||||
{"pmrgp", 0x40000000, 0x01c0, { 6, 6, 0, 6, 6, 0}, D,D,D,0, ALF11_MERGE, 0},
|
||||
{"ldq", 0x41000000, 0x01c0, { 5, 0, 5, 5, 0, 5}, Q,D,D,0, ALF11_MAS, AF_PAIR},
|
||||
{"lq", 0x41000000, 0x01c0, { 5, 0, 5, 5, 0, 5}, Q,D,D,0, ALF11_MAS, AF_PAIR},
|
||||
{"ldfsq", 0x45000000, 0x01c0, { 1, 0, 1, 1, 0, 1}, Q,D,D,0, ALF11_MAS, AF_PAIR},
|
||||
{"ldgsq", 0x46000000, 0x01c0, { 1, 0, 1, 1, 0, 1}, Q,D,D,0, ALF11_MAS, AF_PAIR},
|
||||
{"ldssq", 0x47000000, 0x01c0, { 1, 0, 1, 1, 0, 1}, Q,D,D,0, ALF11_MAS, AF_PAIR},
|
||||
@ -1467,17 +1467,17 @@ const struct al_opcode al_opcodes[] =
|
||||
{"pminuw", 0x20000000, 0x02c0, { 3, 0, 0, 3, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"staaqp", 0x20000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,0,0,0, ALF10_MAS, 0},
|
||||
{"pminsw", 0x21000000, 0x02c0, { 3, 0, 0, 3, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stqp", 0x21000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"sqp", 0x21000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"pmaxuw", 0x22000000, 0x02c0, { 3, 0, 0, 3, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stcsqp", 0x22000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"pmaxsw", 0x23000000, 0x02c0, { 3, 0, 0, 3, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stdsqp", 0x23000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"stesqp", 0x24000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"qpsrad", 0x25000000, 0x02c0, { 6, 6, 0, 6, 6, 0}, P,D,P,0, ALF11, 0},
|
||||
{"qpsrad", 0x25000000, 0x02c0, { 6, 6, 0, 6, 6, 0}, P,P,D,0, ALF11, 0},
|
||||
{"stfsqp", 0x25000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"qpsrcw", 0x26000000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,D,P,0, ALF11, 0},
|
||||
{"qpsrcw", 0x26000000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,P,D,0, ALF11, 0},
|
||||
{"stgsqp", 0x26000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"qpsrcd", 0x27000000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,D,P,0, ALF11, 0},
|
||||
{"qpsrcd", 0x27000000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,P,D,0, ALF11, 0},
|
||||
{"stssqp", 0x27000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"pcmpeqbop", 0x28000000, 0x02c0, { 6, 0, 0, 6, 0, 0}, 0,D,D,0, ALF17, 0},
|
||||
{"pcmpeqhop", 0x28000000, 0x02c1, { 6, 0, 0, 6, 0, 0}, 0,D,D,0, ALF17, 0},
|
||||
@ -1500,7 +1500,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"phaddw", 0x2a000000, 0x02c0, { 3, 0, 0, 3, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"stapqp", 0x2a000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,Q,S,0, ALF13_MAS, 0},
|
||||
{"phaddsh", 0x2b000000, 0x02c0, { 3, 0, 0, 3, 0, 0}, D,D,D,0, ALF11, 0},
|
||||
{"strqp", 0x2b000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"srqp", 0x2b000000, 0x02c0, { 0, 0, 5, 0, 0, 5}, P,D,D,0, ALF13_MAS, 0},
|
||||
{"qpcmpeqbop", 0x2c000000, 0x02c0, { 6, 0, 0, 6, 0, 0}, 0,P,P,0, ALF17, 0},
|
||||
{"qpcmpeqhop", 0x2c000000, 0x02c1, { 6, 0, 0, 6, 0, 0}, 0,P,P,0, ALF17, 0},
|
||||
{"qpcmpeqwop", 0x2c000000, 0x02c2, { 6, 0, 0, 6, 0, 0}, 0,P,P,0, ALF17, 0},
|
||||
@ -1593,12 +1593,12 @@ const struct al_opcode al_opcodes[] =
|
||||
{"qpcmpgth", 0x5c000000, 0x02c0, { 5, 0, 0, 5, 0, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpsadbw", 0x5c000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpcmpgtw", 0x5d000000, 0x02c0, { 5, 0, 0, 5, 0, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpmulubhh", 0x5d000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpmulubhh", 0x5d000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,D,P,0, ALF11, 0},
|
||||
{"qpavgusb", 0x5e000000, 0x02c0, { 5, 0, 0, 5, 0, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpmullw", 0x5e000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpavgush", 0x5f000000, 0x02c0, { 5, 0, 0, 5, 0, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qpmrgp", 0x60000000, 0x02c0, { 6, 6, 0, 6, 6, 0}, P,P,P,0, ALF11_MERGE, 0},
|
||||
{"ldqp", 0x61000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"lqp", 0x61000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"ldcsqp", 0x62000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"lddsqp", 0x63000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"ldesqp", 0x64000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
@ -1610,9 +1610,9 @@ const struct al_opcode al_opcodes[] =
|
||||
{"ldgdqp", 0x69000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"qpmulhrsh", 0x69000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,P,0, ALF11, 0},
|
||||
{"ldapqp", 0x6a000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"qphminposuh", 0x6a000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,P,0, ALF11, 0},
|
||||
{"ldrqp", 0x6b000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"qpmpsadbh", 0x6b000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,P,0, ALF11, 0},
|
||||
{"qphminposuh", 0x6a000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, D,P,P,0, ALF11, 0},
|
||||
{"lrqp", 0x6b000000, 0x02c0, { 5, 0, 5, 5, 0, 5}, P,D,D,0, ALF11_MAS, 0},
|
||||
{"qpmpsadbh", 0x6b000000, 0x02c0, { 0, 5, 0, 0, 5, 0}, P,P,S,0, ALF11, 0},
|
||||
{"puttagqp", 0x6c000000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,P,S,0, ALF11, 0},
|
||||
{"qpfstois", 0x6dc80000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,0,P,0, ALF12, 0},
|
||||
{"qpfstoistr", 0x6dca0000, 0x02c0, { 5, 5, 0, 5, 5, 0}, P,0,P,0, ALF12, 0},
|
||||
@ -2320,7 +2320,7 @@ const struct al_opcode al_opcodes[] =
|
||||
{"pfhsub_addsubs", 0x66000000, 0x0f00, { 3, 3, 4, 3, 3, 4}, D,D,D,D, ALF21, 0},
|
||||
{"pfmul_addsubs", 0x68000000, 0x0f00, { 3, 3, 4, 3, 3, 4}, D,D,D,D, ALF21, 0},
|
||||
{"pmerge", 0x6d000000, 0x0f00, { 2, 2, 0, 2, 2, 0}, D,D,D,D, ALF21_MERGE, 0},
|
||||
{"pfaddsub_addsubs", 0x6e000000, 0x0f00, { 3, 3, 4, 3, 3, 4}, D,D,D,D, ALF21, AF_ALIAS},
|
||||
{"pfaddsub_addsubs", 0x6e000000, 0x0f00, { 3, 3, 4, 3, 3, 4}, D,D,D,D, ALF21, 0},
|
||||
{"plog_and", 0x00000000, 0x1100, { 5, 5, 0, 5, 5, 0}, D,D,D,D, ALF21, AF_ALIAS},
|
||||
{"plog_xor", 0x16000000, 0x1100, { 5, 5, 0, 5, 5, 0}, D,D,D,D, ALF21, AF_ALIAS},
|
||||
{"plog_sel3", 0x58000000, 0x1100, { 5, 5, 0, 5, 5, 0}, D,D,D,D, ALF21, AF_ALIAS},
|
||||
|
Loading…
Reference in New Issue
Block a user