diff options
| author | 2017-10-20 20:38:22 +0000 | |
|---|---|---|
| committer | 2017-10-20 20:38:22 +0000 | |
| commit | a59820dc247b220640a738ae7cb3803a4d89829c (patch) | |
| tree | 81cb732e658ec1f836b11e6b3562b50f4899800e /compiler/utils/mips/assembler_mips.h | |
| parent | a30af1640a882924e57dd9a474797c07d7202a36 (diff) | |
| parent | 3309c01e55821f693e3b9cec0ef24969edf2528f (diff) | |
Merge "MIPS: Introduce a few MSA instructions"
Diffstat (limited to 'compiler/utils/mips/assembler_mips.h')
| -rw-r--r-- | compiler/utils/mips/assembler_mips.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/compiler/utils/mips/assembler_mips.h b/compiler/utils/mips/assembler_mips.h index 1c5b442557..c0ea29fbd7 100644 --- a/compiler/utils/mips/assembler_mips.h +++ b/compiler/utils/mips/assembler_mips.h @@ -601,6 +601,14 @@ class MipsAssembler FINAL : public Assembler, public JNIMacroAssembler<PointerSi void SplatiH(VectorRegister wd, VectorRegister ws, int n3); void SplatiW(VectorRegister wd, VectorRegister ws, int n2); void SplatiD(VectorRegister wd, VectorRegister ws, int n1); + void Copy_sB(Register rd, VectorRegister ws, int n4); + void Copy_sH(Register rd, VectorRegister ws, int n3); + void Copy_sW(Register rd, VectorRegister ws, int n2); + void Copy_uB(Register rd, VectorRegister ws, int n4); + void Copy_uH(Register rd, VectorRegister ws, int n3); + void InsertB(VectorRegister wd, Register rs, int n4); + void InsertH(VectorRegister wd, Register rs, int n3); + void InsertW(VectorRegister wd, Register rs, int n2); void FillB(VectorRegister wd, Register rs); void FillH(VectorRegister wd, Register rs); void FillW(VectorRegister wd, Register rs); @@ -618,10 +626,22 @@ class MipsAssembler FINAL : public Assembler, public JNIMacroAssembler<PointerSi void StW(VectorRegister wd, Register rs, int offset); void StD(VectorRegister wd, Register rs, int offset); + void IlvlB(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvlH(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvlW(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvlD(VectorRegister wd, VectorRegister ws, VectorRegister wt); void IlvrB(VectorRegister wd, VectorRegister ws, VectorRegister wt); void IlvrH(VectorRegister wd, VectorRegister ws, VectorRegister wt); void IlvrW(VectorRegister wd, VectorRegister ws, VectorRegister wt); void IlvrD(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvevB(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvevH(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvevW(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvevD(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvodB(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvodH(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvodW(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void IlvodD(VectorRegister wd, VectorRegister ws, VectorRegister wt); void MaddvB(VectorRegister wd, VectorRegister ws, VectorRegister wt); void MaddvH(VectorRegister wd, VectorRegister ws, VectorRegister wt); @@ -636,6 +656,13 @@ class MipsAssembler FINAL : public Assembler, public JNIMacroAssembler<PointerSi void FmsubW(VectorRegister wd, VectorRegister ws, VectorRegister wt); void FmsubD(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void Hadd_sH(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void Hadd_sW(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void Hadd_sD(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void Hadd_uH(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void Hadd_uW(VectorRegister wd, VectorRegister ws, VectorRegister wt); + void Hadd_uD(VectorRegister wd, VectorRegister ws, VectorRegister wt); + // Helper for replicating floating point value in all destination elements. void ReplicateFPToVectorRegister(VectorRegister dst, FRegister src, bool is_double); |