Index: src/mips64/assembler-mips64.cc |
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc |
index f70ee313351f29d6bda3bd51d0717a6fc7bd0328..084d5db0367e760118ce449a88ef095a9079a2e6 100644 |
--- a/src/mips64/assembler-mips64.cc |
+++ b/src/mips64/assembler-mips64.cc |
@@ -2497,7 +2497,7 @@ void Assembler::selnez(Register rd, Register rs, Register rt) { |
// Bit twiddling. |
void Assembler::clz(Register rd, Register rs) { |
if (kArchVariant != kMips64r6) { |
- // Clz instr requires same GPR number in 'rd' and 'rt' fields. |
+ // clz instr requires same GPR number in 'rd' and 'rt' fields. |
GenInstrRegister(SPECIAL2, rs, rd, rd, 0, CLZ); |
} else { |
GenInstrRegister(SPECIAL, rs, zero_reg, rd, 1, CLZ_R6); |
@@ -2517,7 +2517,7 @@ void Assembler::dclz(Register rd, Register rs) { |
void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
// Should be called via MacroAssembler::Ins. |
- // Ins instr has 'rt' field as dest, and two uint5: msb, lsb. |
+ // ins instr has 'rt' field as dest, and two uint5: msb, lsb. |
DCHECK((kArchVariant == kMips64r2) || (kArchVariant == kMips64r6)); |
GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, INS); |
} |
@@ -2525,15 +2525,28 @@ void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
void Assembler::dins_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
// Should be called via MacroAssembler::Dins. |
- // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. |
+ // dins instr has 'rt' field as dest, and two uint5: msb, lsb. |
DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, DINS); |
} |
+void Assembler::dinsm_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
+ // Should be called via MacroAssembler::Dins. |
+ // dinsm instr has 'rt' field as dest, and two uint5: msbminus32, lsb. |
+ DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
+ GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1 - 32, pos, DINSM); |
+} |
+ |
+void Assembler::dinsu_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
+ // Should be called via MacroAssembler::Dins. |
+ // dinsu instr has 'rt' field as dest, and two uint5: msbminus32, lsbminus32. |
+ DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
+ GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1 - 32, pos - 32, DINSU); |
+} |
void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
// Should be called via MacroAssembler::Ext. |
- // Ext instr has 'rt' field as dest, and two uint5: msb, lsb. |
+ // ext instr has 'rt' field as dest, and two uint5: msbd, lsb. |
DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, EXT); |
} |
@@ -2541,23 +2554,21 @@ void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
void Assembler::dext_(Register rt, Register rs, uint16_t pos, uint16_t size) { |
// Should be called via MacroAssembler::Dext. |
- // Dext instr has 'rt' field as dest, and two uint5: msb, lsb. |
+ // dext instr has 'rt' field as dest, and two uint5: msbd, lsb. |
DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, DEXT); |
} |
- |
-void Assembler::dextm(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. |
+ // dextm instr has 'rt' field as dest, and two uint5: msbdminus32, 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) { |
+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. |
+ // dextu instr has 'rt' field as dest, and two uint5: msbd, lsbminus32. |
DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6); |
GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos - 32, DEXTU); |
} |