Revision: 9825
Author: [email protected]
Date: Fri Oct 28 00:45:20 2011
Log: Version 3.7.3
Included a workaround for jslint issue (V8 issue 1789).
Review URL: http://codereview.chromium.org/8414018
http://code.google.com/p/v8/source/detail?r=9825
Modified:
/trunk/ChangeLog
/trunk/src/ia32/codegen-ia32.cc
/trunk/src/ia32/full-codegen-ia32.cc
/trunk/src/version.cc
/trunk/src/x64/codegen-x64.cc
=======================================
--- /trunk/ChangeLog Thu Oct 27 07:20:17 2011
+++ /trunk/ChangeLog Fri Oct 28 00:45:20 2011
@@ -1,3 +1,9 @@
+2011-10-28: Version 3.7.3
+
+ Slight deoptimization as a workaround for issue with jslint: Issue
+ 1789.
+
+
2011-10-27: Version 3.7.2
Fix bug in deoptimization. Known issue with jslint: Issue 1789.
=======================================
--- /trunk/src/ia32/codegen-ia32.cc Thu Oct 27 00:38:48 2011
+++ /trunk/src/ia32/codegen-ia32.cc Fri Oct 28 00:45:20 2011
@@ -355,9 +355,7 @@
// Convert and copy elements
// esi: source FixedArray
- // edi: number of elements to convert/copy
__ bind(&loop);
- __ sub(edi, Immediate(Smi::FromInt(1)));
__ mov(ebx, FieldOperand(esi, edi, times_2, FixedArray::kHeaderSize));
// ebx: current element from source
// edi: index of current element
@@ -390,8 +388,8 @@
}
__ bind(&entry);
- __ test(edi, edi);
- __ j(not_zero, &loop);
+ __ sub(edi, Immediate(Smi::FromInt(1)));
+ __ j(not_sign, &loop);
__ pop(ebx);
__ pop(eax);
@@ -454,7 +452,6 @@
// edi: source FixedDoubleArray
// eax: destination FixedArray
__ bind(&loop);
- __ sub(ebx, Immediate(Smi::FromInt(1)));
// ebx: index of current element (smi-tagged)
uint32_t offset = FixedDoubleArray::kHeaderSize +
sizeof(kHoleNanLower32);
__ cmp(FieldOperand(edi, ebx, times_4, offset),
Immediate(kHoleNanUpper32));
@@ -490,8 +487,8 @@
masm->isolate()->factory()->the_hole_value());
__ bind(&entry);
- __ test(ebx, ebx);
- __ j(not_zero, &loop);
+ __ sub(ebx, Immediate(Smi::FromInt(1)));
+ __ j(not_sign, &loop);
__ pop(ebx);
__ pop(edx);
=======================================
--- /trunk/src/ia32/full-codegen-ia32.cc Thu Oct 27 00:38:48 2011
+++ /trunk/src/ia32/full-codegen-ia32.cc Fri Oct 28 00:45:20 2011
@@ -2185,7 +2185,9 @@
SetSourcePosition(expr->position());
// Record call targets in unoptimized code, but not in the snapshot.
- bool record_call_target = !Serializer::enabled();
+ // TODO(1789): Reenable temporarily disabled recording CallFunctionStub
+ // when the issue is fixed.
+ bool record_call_target = false && !Serializer::enabled();
if (record_call_target) {
flags = static_cast<CallFunctionFlags>(flags | RECORD_CALL_TARGET);
}
=======================================
--- /trunk/src/version.cc Thu Oct 27 07:20:17 2011
+++ /trunk/src/version.cc Fri Oct 28 00:45:20 2011
@@ -34,7 +34,7 @@
// cannot be changed without changing the SCons build script.
#define MAJOR_VERSION 3
#define MINOR_VERSION 7
-#define BUILD_NUMBER 2
+#define BUILD_NUMBER 3
#define PATCH_LEVEL 0
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
=======================================
--- /trunk/src/x64/codegen-x64.cc Thu Oct 27 00:38:48 2011
+++ /trunk/src/x64/codegen-x64.cc Fri Oct 28 00:45:20 2011
@@ -243,7 +243,6 @@
// Conversion loop.
__ bind(&loop);
- __ decq(r9);
__ movq(rbx,
FieldOperand(r8, r9, times_8, FixedArray::kHeaderSize));
// r9 : current element's index
@@ -257,8 +256,8 @@
__ bind(&convert_hole);
__ movq(FieldOperand(r14, r9, times_8, FixedDoubleArray::kHeaderSize),
r15);
__ bind(&entry);
- __ testq(r9, r9);
- __ j(not_zero, &loop);
+ __ decq(r9);
+ __ j(not_sign, &loop);
}
@@ -301,7 +300,6 @@
// Box doubles into heap numbers.
__ bind(&loop);
- __ decq(r9);
__ movq(r14, FieldOperand(r8,
r9,
times_pointer_size,
@@ -338,8 +336,8 @@
rdi);
__ bind(&entry);
- __ testq(r9, r9);
- __ j(not_zero, &loop);
+ __ decq(r9);
+ __ j(not_sign, &loop);
// Set transitioned map.
__ movq(FieldOperand(rdx, HeapObject::kMapOffset), rbx);
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev