Index: src/mips64/assembler-mips64.cc |
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc |
index fa62932e82d24bf28f4fe6be2c3cddaf485c8c07..c83ba7e8686e2271157118079d733aa41377ee91 100644 |
--- a/src/mips64/assembler-mips64.cc |
+++ b/src/mips64/assembler-mips64.cc |
@@ -2336,6 +2336,22 @@ void Assembler::dext_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
} |
+void Assembler::dextm(Register rt, Register rs, uint16_t pos, uint16_t size) { |
+ // Should be called via MacroAssembler::Dextm. |
+ // Dextm instr has 'rt' field as dest, and two uint5: msb, lsb. |
+ DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
+ GenInstrRegister(SPECIAL3, rs, rt, size - 1 - 32, pos, DEXTM); |
+} |
+ |
+ |
+void Assembler::dextu(Register rt, Register rs, uint16_t pos, uint16_t size) { |
+ // Should be called via MacroAssembler::Dextu. |
+ // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. |
+ DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
+ GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos - 32, DEXTU); |
+} |
+ |
+ |
void Assembler::bitswap(Register rd, Register rt) { |
DCHECK(kArchVariant == kMips64r6); |
GenInstrRegister(SPECIAL3, zero_reg, rt, rd, 0, BSHFL); |