| Index: src/ia32/macro-assembler-ia32.cc
|
| diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc
|
| index b65d328435eeb9d22f37504b21aecac83738797f..a2b400ed541f932d44b1565594c662587eeb2ddc 100644
|
| --- a/src/ia32/macro-assembler-ia32.cc
|
| +++ b/src/ia32/macro-assembler-ia32.cc
|
| @@ -2141,8 +2141,10 @@ void MacroAssembler::IndexFromHash(Register hash, Register index) {
|
| }
|
|
|
|
|
| -void MacroAssembler::CallRuntime(Runtime::FunctionId id, int num_arguments) {
|
| - CallRuntime(Runtime::FunctionForId(id), num_arguments);
|
| +void MacroAssembler::CallRuntime(Runtime::FunctionId fid,
|
| + int num_arguments,
|
| + SaveFPRegsMode save_doubles) {
|
| + CallRuntime(Runtime::FunctionForId(fid), num_arguments, save_doubles);
|
| }
|
|
|
|
|
| @@ -2157,7 +2159,8 @@ void MacroAssembler::CallRuntimeSaveDoubles(Runtime::FunctionId id) {
|
|
|
|
|
| void MacroAssembler::CallRuntime(const Runtime::Function* f,
|
| - int num_arguments) {
|
| + int num_arguments,
|
| + SaveFPRegsMode save_doubles) {
|
| // If the expected number of arguments of the runtime function is
|
| // constant, we check that the actual number of arguments match the
|
| // expectation.
|
| @@ -2172,7 +2175,8 @@ void MacroAssembler::CallRuntime(const Runtime::Function* f,
|
| // smarter.
|
| Set(eax, Immediate(num_arguments));
|
| mov(ebx, Immediate(ExternalReference(f, isolate())));
|
| - CEntryStub ces(1);
|
| + CEntryStub ces(1, CpuFeatures::IsSupported(SSE2) ? save_doubles
|
| + : kDontSaveFPRegs);
|
| CallStub(&ces);
|
| }
|
|
|
|
|