Index: src/mips/assembler-mips.cc |
diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc |
index 96373579d8e098df42c9950aff67f02a1a343e0e..5f0ceb8801710b377173c314e0e786616c2a6054 100644 |
--- a/src/mips/assembler-mips.cc |
+++ b/src/mips/assembler-mips.cc |
@@ -1920,28 +1920,39 @@ void Assembler::movf(Register rd, Register rs, uint16_t cc) { |
} |
-void Assembler::seleqz(Register rs, Register rt, Register rd) { |
+void Assembler::sel(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
+ DCHECK(IsMipsArchVariant(kMips32r6)); |
+ DCHECK((fmt == D) || (fmt == S)); |
+ |
+ Instr instr = COP1 | fmt << kRsShift | ft.code() << kFtShift | |
+ fs.code() << kFsShift | fd.code() << kFdShift | SEL; |
+ emit(instr); |
+} |
+ |
+ |
+void Assembler::seleqz(Register rd, Register rs, Register rt) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
GenInstrRegister(SPECIAL, rs, rt, rd, 0, SELEQZ_S); |
} |
-void Assembler::seleqz(SecondaryField fmt, FPURegister fd, FPURegister ft, |
- FPURegister fs) { |
+void Assembler::seleqz(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
DCHECK((fmt == D) || (fmt == S)); |
GenInstrRegister(COP1, fmt, ft, fs, fd, SELEQZ_C); |
} |
-void Assembler::selnez(Register rs, Register rt, Register rd) { |
+void Assembler::selnez(Register rd, Register rs, Register rt) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
GenInstrRegister(SPECIAL, rs, rt, rd, 0, SELNEZ_S); |
} |
-void Assembler::selnez(SecondaryField fmt, FPURegister fd, FPURegister ft, |
- FPURegister fs) { |
+void Assembler::selnez(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
DCHECK((fmt == D) || (fmt == S)); |
GenInstrRegister(COP1, fmt, ft, fs, fd, SELNEZ_C); |
@@ -2261,32 +2272,32 @@ void Assembler::ceil_l_d(FPURegister fd, FPURegister fs) { |
} |
-void Assembler::min(SecondaryField fmt, FPURegister fd, FPURegister ft, |
- FPURegister fs) { |
+void Assembler::min(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
DCHECK((fmt == D) || (fmt == S)); |
GenInstrRegister(COP1, fmt, ft, fs, fd, MIN); |
} |
-void Assembler::mina(SecondaryField fmt, FPURegister fd, FPURegister ft, |
- FPURegister fs) { |
+void Assembler::mina(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
DCHECK((fmt == D) || (fmt == S)); |
GenInstrRegister(COP1, fmt, ft, fs, fd, MINA); |
} |
-void Assembler::max(SecondaryField fmt, FPURegister fd, FPURegister ft, |
- FPURegister fs) { |
+void Assembler::max(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
DCHECK((fmt == D) || (fmt == S)); |
GenInstrRegister(COP1, fmt, ft, fs, fd, MAX); |
} |
-void Assembler::maxa(SecondaryField fmt, FPURegister fd, FPURegister ft, |
- FPURegister fs) { |
+void Assembler::maxa(SecondaryField fmt, FPURegister fd, FPURegister fs, |
+ FPURegister ft) { |
DCHECK(IsMipsArchVariant(kMips32r6)); |
DCHECK((fmt == D) || (fmt == S)); |
GenInstrRegister(COP1, fmt, ft, fs, fd, MAXA); |