Revision: 11255
Author: [email protected]
Date: Tue Apr 10 06:39:28 2012
Log: Insert three missing FP register stack pop instructions.
We use fstp(0) already in other places. ffree does not pop the stack,
but only marks a FP register as empty.
BUG=v8:2065
Review URL: https://chromiumcodereview.appspot.com/9960066
http://code.google.com/p/v8/source/detail?r=11255
Modified:
/branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
=======================================
--- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Mon Mar 12 06:56:56
2012
+++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Tue Apr 10 06:39:28
2012
@@ -1734,7 +1734,7 @@
__ fstp_d(FieldOperand(eax, HeapNumber::kValueOffset));
__ ret(0);
__ bind(&after_alloc_failure);
- __ ffree();
+ __ fstp(0); // Pop FPU stack before calling runtime.
__ jmp(&call_runtime);
}
@@ -1957,7 +1957,7 @@
__ fstp_d(FieldOperand(eax, HeapNumber::kValueOffset));
__ ret(0);
__ bind(&after_alloc_failure);
- __ ffree();
+ __ fstp(0); // Pop FPU stack before calling runtime.
__ jmp(&call_runtime);
}
@@ -2161,8 +2161,8 @@
__ fstp_d(FieldOperand(eax, HeapNumber::kValueOffset));
__ ret(0);
__ bind(&after_alloc_failure);
- __ ffree();
- __ jmp(&call_runtime);
+ __ fstp(0); // Pop FPU stack before calling runtime.
+ __ jmp(&call_runtime);
}
__ bind(¬_floats);
break;
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev