Revision: 10071
Author: yang...@chromium.org
Date: Fri Nov 25 06:26:54 2011
Log: Shorten FP register pops where possible.
Review URL: http://codereview.chromium.org/8699004
http://code.google.com/p/v8/source/detail?r=10071
Modified:
/branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc
/branches/bleeding_edge/src/ia32/macro-assembler-ia32.cc
/branches/bleeding_edge/src/ia32/stub-cache-ia32.cc
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Fri Nov 25
05:15:31 2011
+++ /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Fri Nov 25
06:26:54 2011
@@ -3756,8 +3756,7 @@
__ cmp(Operand(input_reg), Immediate(kTooBigExponent));
__ j(less, &convert, Label::kNear);
// Pop FPU stack before deoptimizing.
- __ ffree(0);
- __ fincstp();
+ __ fstp(0);
DeoptimizeIf(no_condition, instr->environment());
// Reserve space for 64 bit answer.
=======================================
--- /branches/bleeding_edge/src/ia32/macro-assembler-ia32.cc Fri Nov 11
05:48:14 2011
+++ /branches/bleeding_edge/src/ia32/macro-assembler-ia32.cc Fri Nov 25
06:26:54 2011
@@ -540,8 +540,7 @@
void MacroAssembler::FCmp() {
if (CpuFeatures::IsSupported(CMOV)) {
fucomip();
- ffree(0);
- fincstp();
+ fstp(0);
} else {
fucompp();
push(eax);
=======================================
--- /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Thu Nov 24 07:17:04
2011
+++ /branches/bleeding_edge/src/ia32/stub-cache-ia32.cc Fri Nov 25 06:26:54
2011
@@ -3392,8 +3392,7 @@
// If we fail allocation of the HeapNumber, we still have a value on
// top of the FPU stack. Remove it.
__ bind(&failed_allocation);
- __ ffree();
- __ fincstp();
+ __ fstp(0);
// Fall through to slow case.
// Slow case: Jump to runtime.
@@ -3710,8 +3709,7 @@
// A value was pushed on the floating point stack before the allocation,
if
// the allocation fails it needs to be removed.
if (!CpuFeatures::IsSupported(SSE2)) {
- __ ffree();
- __ fincstp();
+ __ fstp(0);
}
Handle<Code> slow_ic =
masm->isolate()->builtins()->KeyedLoadIC_Slow();
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev