mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-28 06:20:30 +00:00
* ppc-opc.c (VA, VB, VC, VD, VS, SIMM, UIMM, SHB): New macros, for
vector unit operands. (VX, VX_MASK, VXA, VXA_MASK, VXR, VXR_MASK): New macros, for vector unit instruction formats. (PPCVEC): New macro, mask for vector instructions. (powerpc_operands): Add table entries for above operand types. (powerpc_opcodes): Add table entries for vector instructions. * ppc-dis.c (print_insn_big_powerpc): Add PPC_OPCODE_ALTIVEC to mask. (print_insn_little_powerpc): Likewise. (print_insn_powerpc): Prepend 'v' when printing vector registers.
This commit is contained in:
parent
7a899fff9a
commit
786e2c0f62
@ -1,3 +1,17 @@
|
||||
2000-05-03 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
* ppc-opc.c (VA, VB, VC, VD, VS, SIMM, UIMM, SHB): New macros, for
|
||||
vector unit operands.
|
||||
(VX, VX_MASK, VXA, VXA_MASK, VXR, VXR_MASK): New macros, for vector
|
||||
unit instruction formats.
|
||||
(PPCVEC): New macro, mask for vector instructions.
|
||||
(powerpc_operands): Add table entries for above operand types.
|
||||
(powerpc_opcodes): Add table entries for vector instructions.
|
||||
|
||||
* ppc-dis.c (print_insn_big_powerpc): Add PPC_OPCODE_ALTIVEC to mask.
|
||||
(print_insn_little_powerpc): Likewise.
|
||||
(print_insn_powerpc): Prepend 'v' when printing vector registers.
|
||||
|
||||
Sun Apr 23 17:54:14 2000 Denis Chertykov <denisc@overta.ru>
|
||||
|
||||
* avr-dis.c (reg_fmul_d): New. Extract destination register from
|
||||
|
@ -33,7 +33,8 @@ static int print_insn_powerpc PARAMS ((bfd_vma, struct disassemble_info *,
|
||||
int bigendian, int dialect));
|
||||
|
||||
/* Print a big endian PowerPC instruction. For convenience, also
|
||||
disassemble instructions supported by the Motorola PowerPC 601. */
|
||||
disassemble instructions supported by the Motorola PowerPC 601
|
||||
and the Altivec vector unit. */
|
||||
|
||||
int
|
||||
print_insn_big_powerpc (memaddr, info)
|
||||
@ -41,11 +42,13 @@ print_insn_big_powerpc (memaddr, info)
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
return print_insn_powerpc (memaddr, info, 1,
|
||||
PPC_OPCODE_PPC | PPC_OPCODE_601);
|
||||
PPC_OPCODE_PPC | PPC_OPCODE_601 |
|
||||
PPC_OPCODE_ALTIVEC);
|
||||
}
|
||||
|
||||
/* Print a little endian PowerPC instruction. For convenience, also
|
||||
disassemble instructions supported by the Motorola PowerPC 601. */
|
||||
disassemble instructions supported by the Motorola PowerPC 601
|
||||
and the Altivec vector unit. */
|
||||
|
||||
int
|
||||
print_insn_little_powerpc (memaddr, info)
|
||||
@ -53,7 +56,8 @@ print_insn_little_powerpc (memaddr, info)
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
return print_insn_powerpc (memaddr, info, 0,
|
||||
PPC_OPCODE_PPC | PPC_OPCODE_601);
|
||||
PPC_OPCODE_PPC | PPC_OPCODE_601 |
|
||||
PPC_OPCODE_ALTIVEC);
|
||||
}
|
||||
|
||||
/* Print a POWER (RS/6000) instruction. */
|
||||
@ -181,6 +185,8 @@ print_insn_powerpc (memaddr, info, bigendian, dialect)
|
||||
(*info->fprintf_func) (info->stream, "r%ld", value);
|
||||
else if ((operand->flags & PPC_OPERAND_FPR) != 0)
|
||||
(*info->fprintf_func) (info->stream, "f%ld", value);
|
||||
else if ((operand->flags & PPC_OPERAND_VR) != 0)
|
||||
(*info->fprintf_func) (info->stream, "v%ld", value);
|
||||
else if ((operand->flags & PPC_OPERAND_RELATIVE) != 0)
|
||||
(*info->print_address_func) (memaddr + value, info);
|
||||
else if ((operand->flags & PPC_OPERAND_ABSOLUTE) != 0)
|
||||
|
@ -396,6 +396,39 @@ const struct powerpc_operand powerpc_operands[] =
|
||||
/* The UI field in a D form instruction. */
|
||||
#define UI U + 1
|
||||
{ 16, 0, 0, 0, 0 },
|
||||
|
||||
/* The VA field in a VA, VX or VXR form instruction. */
|
||||
#define VA UI + 1
|
||||
#define VA_MASK (0x1f << 16)
|
||||
{5, 16, 0, 0, PPC_OPERAND_VR},
|
||||
|
||||
/* The VB field in a VA, VX or VXR form instruction. */
|
||||
#define VB VA + 1
|
||||
#define VB_MASK (0x1f << 11)
|
||||
{5, 11, 0, 0, PPC_OPERAND_VR},
|
||||
|
||||
/* The VC field in a VA form instruction. */
|
||||
#define VC VB + 1
|
||||
#define VC_MASK (0x1f << 6)
|
||||
{5, 6, 0, 0, PPC_OPERAND_VR},
|
||||
|
||||
/* The VD or VS field in a VA, VX, VXR or X form instruction. */
|
||||
#define VD VC + 1
|
||||
#define VS VD
|
||||
#define VD_MASK (0x1f << 21)
|
||||
{5, 21, 0, 0, PPC_OPERAND_VR},
|
||||
|
||||
/* The SIMM field in a VX form instruction. */
|
||||
#define SIMM VD + 1
|
||||
{ 5, 16, 0, 0, PPC_OPERAND_SIGNED},
|
||||
|
||||
/* The UIMM field in a VX form instruction. */
|
||||
#define UIMM SIMM + 1
|
||||
{ 5, 16, 0, 0, 0 },
|
||||
|
||||
/* The SHB field in a VA form instruction. */
|
||||
#define SHB UIMM + 1
|
||||
{ 4, 6, 0, 0, 0 },
|
||||
};
|
||||
|
||||
/* The functions used to insert and extract complicated operands. */
|
||||
@ -1105,6 +1138,24 @@ extract_tbr (insn, invalid)
|
||||
#define SC(op, sa, lk) (OP (op) | ((((unsigned long)(sa)) & 1) << 1) | ((lk) & 1))
|
||||
#define SC_MASK (OP_MASK | (((unsigned long)0x3ff) << 16) | (((unsigned long)1) << 1) | 1)
|
||||
|
||||
/* An VX form instruction. */
|
||||
#define VX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff))
|
||||
|
||||
/* The mask for an VX form instruction. */
|
||||
#define VX_MASK VX(0x3f, 0x7ff)
|
||||
|
||||
/* An VA form instruction. */
|
||||
#define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x07f))
|
||||
|
||||
/* The mask for an VA form instruction. */
|
||||
#define VXA_MASK VXA(0x3f, 0x7f)
|
||||
|
||||
/* An VXR form instruction. */
|
||||
#define VXR(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | (((unsigned long)(xop)) & 0x3ff))
|
||||
|
||||
/* The mask for a VXR form instruction. */
|
||||
#define VXR_MASK VXR(0x3f, 0x3ff, 1)
|
||||
|
||||
/* An X form instruction. */
|
||||
#define X(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1))
|
||||
|
||||
@ -1272,6 +1323,7 @@ extract_tbr (insn, invalid)
|
||||
#define PPC403 PPC
|
||||
#define PPC750 PPC
|
||||
#define PPC860 PPC
|
||||
#define PPCVEC PPC_OPCODE_ALTIVEC | PPC_OPCODE_ANY
|
||||
#define POWER PPC_OPCODE_POWER | PPC_OPCODE_ANY
|
||||
#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_ANY
|
||||
#define PPCPWR2 PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_ANY
|
||||
@ -1348,6 +1400,164 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||||
{ "tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, { RA, SI } },
|
||||
{ "twi", OP(3), OP_MASK, PPCCOM, { TO, RA, SI } },
|
||||
{ "ti", OP(3), OP_MASK, PWRCOM, { TO, RA, SI } },
|
||||
|
||||
{ "mfvscr", VX(4, 1540), VX_MASK, PPCVEC, { VD } },
|
||||
{ "mtvscr", VX(4, 1604), VX_MASK, PPCVEC, { VD } },
|
||||
{ "vaddcuw", VX(4, 384), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vaddfp", VX(4, 10), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vaddsbs", VX(4, 768), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vaddshs", VX(4, 832), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vaddsws", VX(4, 896), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vaddubm", VX(4, 0), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vaddubs", VX(4, 512), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vadduhm", VX(4, 64), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vadduhs", VX(4, 576), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vadduwm", VX(4, 128), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vadduws", VX(4, 640), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vand", VX(4, 1028), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vandc", VX(4, 1092), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vavgsb", VX(4, 1282), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vavgsh", VX(4, 1346), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vavgsw", VX(4, 1410), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vavgub", VX(4, 1026), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vavguh", VX(4, 1090), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vavguw", VX(4, 1154), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcfsx", VX(4, 842), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vcfux", VX(4, 778), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vcmpbfp", VXR(4, 966, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpbfp.", VXR(4, 966, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpeqfp", VXR(4, 198, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpeqfp.", VXR(4, 198, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpequb", VXR(4, 6, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpequb.", VXR(4, 6, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpequh", VXR(4, 70, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpequh.", VXR(4, 70, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpequw", VXR(4, 134, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpequw.", VXR(4, 134, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgefp", VXR(4, 454, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgefp.", VXR(4, 454, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtfp", VXR(4, 710, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtfp.", VXR(4, 710, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtsb", VXR(4, 774, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtsb.", VXR(4, 774, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtsh", VXR(4, 838, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtsh.", VXR(4, 838, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtsw", VXR(4, 902, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtsw.", VXR(4, 902, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtub", VXR(4, 518, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtub.", VXR(4, 518, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtuh", VXR(4, 582, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtuh.", VXR(4, 582, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtuw", VXR(4, 646, 0), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vcmpgtuw.", VXR(4, 646, 1), VXR_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vctsxs", VX(4, 970), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vctuxs", VX(4, 906), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vexptefp", VX(4, 394), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vlogefp", VX(4, 458), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmaxfp", VX(4, 1034), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmaxsb", VX(4, 258), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmaxsh", VX(4, 322), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmaxsw", VX(4, 386), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmaxub", VX(4, 2), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmaxuh", VX(4, 66), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmaxuw", VX(4, 130), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vminfp", VX(4, 1098), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vminsb", VX(4, 770), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vminsh", VX(4, 834), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vminsw", VX(4, 898), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vminub", VX(4, 514), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vminuh", VX(4, 578), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vminuw", VX(4, 642), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmrghb", VX(4, 12), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmrghh", VX(4, 76), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmrghw", VX(4, 140), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmrglb", VX(4, 268), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmrglh", VX(4, 332), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmrglw", VX(4, 396), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vmulesb", VX(4, 776), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmulesh", VX(4, 840), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmuleub", VX(4, 520), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmuleuh", VX(4, 584), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmulosb", VX(4, 264), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmulosh", VX(4, 328), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmuloub", VX(4, 8), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vmulouh", VX(4, 72), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, { VD, VA, VC, VB } },
|
||||
{ "vnor", VX(4, 1284), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vor", VX(4, 1156), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vperm", VXA(4, 43), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vpkpx", VX(4, 782), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkshss", VX(4, 398), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkshus", VX(4, 270), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkswss", VX(4, 462), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkswus", VX(4, 334), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkuhum", VX(4, 14), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkuhus", VX(4, 142), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkuwum", VX(4, 78), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vpkuwus", VX(4, 206), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vrefp", VX(4, 266), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vrfim", VX(4, 714), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vrfin", VX(4, 522), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vrfip", VX(4, 650), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vrfiz", VX(4, 586), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vrlb", VX(4, 4), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vrlh", VX(4, 68), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vrlw", VX(4, 132), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vrsqrtefp", VX(4, 330), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vsel", VXA(4, 42), VXA_MASK, PPCVEC, { VD, VA, VB, VC } },
|
||||
{ "vsl", VX(4, 452), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vslb", VX(4, 260), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsldoi", VXA(4, 44), VXA_MASK, PPCVEC, { VD, VA, VB, SHB } },
|
||||
{ "vslh", VX(4, 324), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vslo", VX(4, 1036), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vslw", VX(4, 338), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vspltb", VX(4, 524), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vsplth", VX(4, 588), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vspltisb", VX(4, 780), VX_MASK, PPCVEC, { VD, SIMM } },
|
||||
{ "vspltish", VX(4, 844), VX_MASK, PPCVEC, { VD, SIMM } },
|
||||
{ "vspltisw", VX(4, 908), VX_MASK, PPCVEC, { VD, SIMM } },
|
||||
{ "vspltw", VX(4, 652), VX_MASK, PPCVEC, { VD, VB, UIMM } },
|
||||
{ "vsr", VX(4, 708), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsrab", VX(4, 772), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsrah", VX(4, 836), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsraw", VX(4, 900), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsrb", VX(4, 516), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsrh", VX(4, 580), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsro", VX(4, 1100), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsrw", VX(4, 644), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubcuw", VX(4, 1408), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubfp", VX(4, 74), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubsbs", VX(4, 1792), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubshs", VX(4, 1856), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubsws", VX(4, 1920), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsububm", VX(4, 1024), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsububs", VX(4, 1536), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubuhm", VX(4, 1088), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubuhs", VX(4, 1600), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubuwm", VX(4, 1152), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsubuws", VX(4, 1664), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsumsws", VX(4, 1928), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsum2sws", VX(4, 1672), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsum4sbs", VX(4, 1800), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsum4shs", VX(4, 1608), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vsum4ubs", VX(4, 1544), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
{ "vupkhpx", VX(4, 846), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vupkhsb", VX(4, 526), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vupkhsh", VX(4, 590), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vupklpx", VX(4, 974), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vupklsb", VX(4, 654), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vupklsh", VX(4, 718), VX_MASK, PPCVEC, { VD, VB } },
|
||||
{ "vxor", VX(4, 1220), VX_MASK, PPCVEC, { VD, VA, VB } },
|
||||
|
||||
{ "mulli", OP(7), OP_MASK, PPCCOM, { RT, RA, SI } },
|
||||
{ "muli", OP(7), OP_MASK, PWRCOM, { RT, RA, SI } },
|
||||
@ -2854,6 +3064,19 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||||
{ "dcbz", X(31,1014), XRT_MASK, PPC, { RA, RB } },
|
||||
{ "dclz", X(31,1014), XRT_MASK, PPC, { RA, RB } },
|
||||
|
||||
{ "lvebx", X(31, 7), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "lvehx", X(31, 39), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "lvewx", X(31, 71), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "lvsl", X(31, 6), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "lvsr", X(31, 38), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "lvx", X(31, 103), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "lvxl", X(31, 359), X_MASK, PPCVEC, { VD, RA, RB } },
|
||||
{ "stvebx", X(31, 135), X_MASK, PPCVEC, { VS, RA, RB } },
|
||||
{ "stvehx", X(31, 167), X_MASK, PPCVEC, { VS, RA, RB } },
|
||||
{ "stvewx", X(31, 199), X_MASK, PPCVEC, { VS, RA, RB } },
|
||||
{ "stvx", X(31, 231), X_MASK, PPCVEC, { VS, RA, RB } },
|
||||
{ "stvxl", X(31, 487), X_MASK, PPCVEC, { VS, RA, RB } },
|
||||
|
||||
{ "lwz", OP(32), OP_MASK, PPCCOM, { RT, D, RA } },
|
||||
{ "l", OP(32), OP_MASK, PWRCOM, { RT, D, RA } },
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user