Reviewers: Toon Verwaest,
Message:
PTAL
Description:
Disable tracking of double fields during snapshot creation.
Follow-up to r18298.
[email protected]
Please review this at https://chromiumcodereview.appspot.com/101123004/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+7, -4 lines):
M src/bootstrapper.cc
M src/ia32/lithium-codegen-ia32.cc
M src/x64/lithium-codegen-x64.cc
Index: src/bootstrapper.cc
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index
1d2fb8663379ebab158c6abf2c6733bd86529417..5af8b316e56402c530b12315a578f06c2b1822a0
100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -2558,6 +2558,11 @@ Genesis::Genesis(Isolate* isolate,
v8::ExtensionConfiguration* extensions)
: isolate_(isolate),
active_(isolate->bootstrapper()) {
+ if (Serializer::enabled()) {
+ // Disable tracking double fields because heap numbers treated as
+ // immutable by the serializer.
+ FLAG_track_double_fields = false;
+ }
result_ = Handle<Context>::null();
// If V8 cannot be initialized, just return.
if (!V8::Initialize(NULL)) return;
Index: src/ia32/lithium-codegen-ia32.cc
diff --git a/src/ia32/lithium-codegen-ia32.cc
b/src/ia32/lithium-codegen-ia32.cc
index
bba3acaa9a55ac059287d801acc552a7f6f70d69..1a0d8b3ea54d611925d03236c591cad1d108172a
100644
--- a/src/ia32/lithium-codegen-ia32.cc
+++ b/src/ia32/lithium-codegen-ia32.cc
@@ -3279,8 +3279,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField*
instr) {
}
Register object = ToRegister(instr->object());
- if (FLAG_track_double_fields &&
- instr->hydrogen()->representation().IsDouble()) {
+ if (instr->hydrogen()->representation().IsDouble()) {
if (CpuFeatures::IsSupported(SSE2)) {
CpuFeatureScope scope(masm(), SSE2);
XMMRegister result = ToDoubleRegister(instr->result());
Index: src/x64/lithium-codegen-x64.cc
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
index
c6d5a147a76ac8e484273753421cb459158d7500..16b6dbda0643397f5f87cc844285fc3560187a75
100644
--- a/src/x64/lithium-codegen-x64.cc
+++ b/src/x64/lithium-codegen-x64.cc
@@ -2831,8 +2831,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField*
instr) {
}
Register object = ToRegister(instr->object());
- if (FLAG_track_double_fields &&
- instr->hydrogen()->representation().IsDouble()) {
+ if (instr->hydrogen()->representation().IsDouble()) {
XMMRegister result = ToDoubleRegister(instr->result());
__ movsd(result, FieldOperand(object, offset));
return;
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.