diff options
| author | 2017-05-12 23:46:13 +0000 | |
|---|---|---|
| committer | 2017-05-12 23:46:15 +0000 | |
| commit | a152c4b160f5f296e55c545d37c29d17b4db2212 (patch) | |
| tree | 5496a518583c525f04b5e490f0d7b82630ddb4ff /compiler/utils/mips64/assembler_mips64.cc | |
| parent | 54db2e2ff3a5520e75480f5ce2cf25b8dd37588c (diff) | |
| parent | 3837011236058617292bee831708449e5100c08c (diff) | |
Merge "MIPS64: Add ilvr.df MSA instructions"
Diffstat (limited to 'compiler/utils/mips64/assembler_mips64.cc')
| -rw-r--r-- | compiler/utils/mips64/assembler_mips64.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler/utils/mips64/assembler_mips64.cc b/compiler/utils/mips64/assembler_mips64.cc index 99febe2467..c03b98c5c2 100644 --- a/compiler/utils/mips64/assembler_mips64.cc +++ b/compiler/utils/mips64/assembler_mips64.cc @@ -1775,6 +1775,26 @@ void Mips64Assembler::StD(VectorRegister wd, GpuRegister rs, int offset) { EmitMsaMI10((offset >> TIMES_8) & kMsaS10Mask, rs, wd, 0x9, 0x3); } +void Mips64Assembler::IlvrB(VectorRegister wd, VectorRegister ws, VectorRegister wt) { + CHECK(HasMsa()); + EmitMsa3R(0x5, 0x0, wt, ws, wd, 0x14); +} + +void Mips64Assembler::IlvrH(VectorRegister wd, VectorRegister ws, VectorRegister wt) { + CHECK(HasMsa()); + EmitMsa3R(0x5, 0x1, wt, ws, wd, 0x14); +} + +void Mips64Assembler::IlvrW(VectorRegister wd, VectorRegister ws, VectorRegister wt) { + CHECK(HasMsa()); + EmitMsa3R(0x5, 0x2, wt, ws, wd, 0x14); +} + +void Mips64Assembler::IlvrD(VectorRegister wd, VectorRegister ws, VectorRegister wt) { + CHECK(HasMsa()); + EmitMsa3R(0x5, 0x3, wt, ws, wd, 0x14); +} + void Mips64Assembler::LoadConst32(GpuRegister rd, int32_t value) { TemplateLoadConst32(this, rd, value); } |