Chromium Code Reviews| Index: src/ppc/assembler-ppc.h |
| diff --git a/src/ppc/assembler-ppc.h b/src/ppc/assembler-ppc.h |
| index 810b42f900fd09b5b23b948299e727cd5a1363dc..359b7705e6aa418a11b8f0af28f78810fd74e9b6 100644 |
| --- a/src/ppc/assembler-ppc.h |
| +++ b/src/ppc/assembler-ppc.h |
| @@ -553,6 +553,24 @@ class Assembler : public AssemblerBase { |
| return ((cr.code() * CRWIDTH) + crbit); |
| } |
| +#define DECLARE_PPC_XX3_INSTRUCTIONS(name, instr_name, instr_value) \ |
|
JaideepBajwa
2017/02/24 03:41:39
.h should have the declaration and you should defi
|
| + inline void name(const DoubleRegister rt, const DoubleRegister ra, \ |
| + const DoubleRegister rb) { \ |
| + xx3_form(instr_name, rt, ra, rb); \ |
| + } |
| + |
| + inline void xx3_form(Instr instr, DoubleRegister t, DoubleRegister a, |
| + DoubleRegister b) { |
| + int AX = ((a.code() & 0x20) >> 5) & 0x1; |
| + int BX = ((b.code() & 0x20) >> 5) & 0x1; |
| + int TX = ((t.code() & 0x20) >> 5) & 0x1; |
| + |
| + emit(instr | (t.code() & 0x1F) * B21 | (a.code() & 0x1F) * B16 | |
| + (b.code() & 0x1F) * B11 | AX * B2 | BX * B1 | TX); |
| + } |
| + |
| + PPC_XX3_OPCODE_LIST(DECLARE_PPC_XX3_INSTRUCTIONS) |
| +#undef DECLARE_PPC_XX3_INSTRUCTIONS |
| // --------------------------------------------------------------------------- |
| // Code generation |
| @@ -1102,17 +1120,6 @@ class Assembler : public AssemblerBase { |
| const DoubleRegister frc, const DoubleRegister frb, |
| RCBit rc = LeaveRC); |
| - // Support for VSX instructions |
| - |
| - void xsadddp(const DoubleRegister frt, const DoubleRegister fra, |
| - const DoubleRegister frb); |
| - void xssubdp(const DoubleRegister frt, const DoubleRegister fra, |
| - const DoubleRegister frb); |
| - void xsdivdp(const DoubleRegister frt, const DoubleRegister fra, |
| - const DoubleRegister frb); |
| - void xsmuldp(const DoubleRegister frt, const DoubleRegister fra, |
| - const DoubleRegister frc); |
| - |
| // Pseudo instructions |
| // Different nop operations are used by the code generator to detect certain |
| @@ -1415,8 +1422,6 @@ class Assembler : public AssemblerBase { |
| void x_form(Instr instr, Register ra, Register rs, Register rb, RCBit r); |
| void xo_form(Instr instr, Register rt, Register ra, Register rb, OEBit o, |
| RCBit r); |
| - void xx3_form(Instr instr, DoubleRegister t, DoubleRegister a, |
| - DoubleRegister b); |
| void md_form(Instr instr, Register ra, Register rs, int shift, int maskbit, |
| RCBit r); |
| void mds_form(Instr instr, Register ra, Register rs, Register rb, int maskbit, |