From b764068347c9514e960a24b7dcbb14db4516bd2c Mon Sep 17 00:00:00 2001 From: "ulan@chromium.org" Date: Tue, 17 Dec 2013 09:09:55 +0000 Subject: [PATCH] Fix NotifyStubFailureSaveDoubles generation for ia32. R=jkummerow@chromium.org Review URL: https://chromiumcodereview.appspot.com/112833002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arguments.cc | 1 + src/ia32/builtins-ia32.cc | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/arguments.cc b/src/arguments.cc index ae06bd0..205da7c 100644 --- a/src/arguments.cc +++ b/src/arguments.cc @@ -120,6 +120,7 @@ FOR_EACH_CALLBACK_TABLE_MAPPING_2_VOID_RETURN(WRITE_CALL_2_VOID) double ClobberDoubleRegisters(double x1, double x2, double x3, double x4) { // TODO(ulan): This clobbers only subset of registers depending on compiler, // Rewrite this in assembly to really clobber all registers. + // GCC for ia32 uses the FPU and does not touch XMM registers. return x1 * 1.01 + x2 * 2.02 + x3 * 3.03 + x4 * 4.04; } diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc index 7b44bc0..2de5ef8 100644 --- a/src/ia32/builtins-ia32.cc +++ b/src/ia32/builtins-ia32.cc @@ -627,7 +627,12 @@ void Builtins::Generate_NotifyStubFailure(MacroAssembler* masm) { void Builtins::Generate_NotifyStubFailureSaveDoubles(MacroAssembler* masm) { - Generate_NotifyStubFailureHelper(masm, kSaveFPRegs); + if (Serializer::enabled()) { + PlatformFeatureScope sse2(SSE2); + Generate_NotifyStubFailureHelper(masm, kSaveFPRegs); + } else { + Generate_NotifyStubFailureHelper(masm, kSaveFPRegs); + } } -- 2.7.4