Fix NotifyStubFailureSaveDoubles generation for ia32.
authorulan@chromium.org <ulan@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 17 Dec 2013 09:09:55 +0000 (09:09 +0000)
committerulan@chromium.org <ulan@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 17 Dec 2013 09:09:55 +0000 (09:09 +0000)
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
src/ia32/builtins-ia32.cc

index ae06bd0..205da7c 100644 (file)
@@ -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;
 }
 
index 7b44bc0..2de5ef8 100644 (file)
@@ -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);
+  }
 }