| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 45e5cb7ef125a82a29af46cc6a7a9817d58599eb..e3f77794ce89845849ea5f8590ca51c3f9a7000d 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -1998,6 +1998,49 @@ void MacroAssembler::Mfhc1(Register rt, FPURegister fs) {
|
| }
|
| }
|
|
|
| +void MacroAssembler::Madd_s(FPURegister fd, FPURegister fr, FPURegister fs,
|
| + FPURegister ft, FPURegister scratch) {
|
| + if (IsMipsArchVariant(kMips32r2)) {
|
| + madd_s(fd, fr, fs, ft);
|
| + } else {
|
| + DCHECK(!fr.is(scratch) && !fs.is(scratch) && !ft.is(scratch));
|
| + mul_s(scratch, fs, ft);
|
| + add_s(fd, fr, scratch);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::Madd_d(FPURegister fd, FPURegister fr, FPURegister fs,
|
| + FPURegister ft, FPURegister scratch) {
|
| + if (IsMipsArchVariant(kMips32r2)) {
|
| + madd_d(fd, fr, fs, ft);
|
| + } else {
|
| + DCHECK(!fr.is(scratch) && !fs.is(scratch) && !ft.is(scratch));
|
| + mul_d(scratch, fs, ft);
|
| + add_d(fd, fr, scratch);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::Msub_s(FPURegister fd, FPURegister fr, FPURegister fs,
|
| + FPURegister ft, FPURegister scratch) {
|
| + if (IsMipsArchVariant(kMips32r2)) {
|
| + msub_s(fd, fr, fs, ft);
|
| + } else {
|
| + DCHECK(!fr.is(scratch) && !fs.is(scratch) && !ft.is(scratch));
|
| + mul_s(scratch, fs, ft);
|
| + sub_s(fd, scratch, fr);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::Msub_d(FPURegister fd, FPURegister fr, FPURegister fs,
|
| + FPURegister ft, FPURegister scratch) {
|
| + if (IsMipsArchVariant(kMips32r2)) {
|
| + msub_d(fd, fr, fs, ft);
|
| + } else {
|
| + DCHECK(!fr.is(scratch) && !fs.is(scratch) && !ft.is(scratch));
|
| + mul_d(scratch, fs, ft);
|
| + sub_d(fd, scratch, fr);
|
| + }
|
| +}
|
|
|
| void MacroAssembler::BranchFCommon(SecondaryField sizeField, Label* target,
|
| Label* nan, Condition cond, FPURegister cmp1,
|
|
|