Reviewers: Lasse Reichstein,

Description:
Small tweaks to make the x64 full code generator generate
more compact code.

Please review this at http://codereview.chromium.org/3443022/show

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/x64/full-codegen-x64.cc


Index: src/x64/full-codegen-x64.cc
===================================================================
--- src/x64/full-codegen-x64.cc (revision 5511)
+++ src/x64/full-codegen-x64.cc (working copy)
@@ -376,10 +376,10 @@
     Label* materialize_false) const {
   NearLabel done;
   __ bind(materialize_true);
-  __ Move(result_register(), Factory::true_value());
+  __ LoadRoot(result_register(), Heap::kTrueValueRootIndex);
   __ jmp(&done);
   __ bind(materialize_false);
-  __ Move(result_register(), Factory::false_value());
+  __ LoadRoot(result_register(), Heap::kFalseValueRootIndex);
   __ bind(&done);
 }

@@ -389,10 +389,10 @@
     Label* materialize_false) const {
   NearLabel done;
   __ bind(materialize_true);
-  __ Push(Factory::true_value());
+  __ PushRoot(Heap::kTrueValueRootIndex);
   __ jmp(&done);
   __ bind(materialize_false);
-  __ Push(Factory::false_value());
+  __ PushRoot(Heap::kFalseValueRootIndex);
   __ bind(&done);
 }

@@ -2251,12 +2251,12 @@

   // Functions have class 'Function'.
   __ bind(&function);
-  __ Move(rax, Factory::function_class_symbol());
+  __ LoadRoot(rax, Heap::kFunctionClassSymbolRootIndex);
   __ jmp(&done);

   // Objects with a non-function constructor have class 'Object'.
   __ bind(&non_function_constructor);
-  __ Move(rax, Factory::Object_symbol());
+  __ LoadRoot(rax, Heap::kObjectSymbolRootIndex);
   __ jmp(&done);

   // Non-JS objects have class null.
@@ -2711,10 +2711,10 @@
   __ cmpq(tmp, FieldOperand(right, JSRegExp::kDataOffset));
   __ j(equal, &ok);
   __ bind(&fail);
-  __ Move(rax, Factory::false_value());
+  __ LoadRoot(rax, Heap::kFalseValueRootIndex);
   __ jmp(&done);
   __ bind(&ok);
-  __ Move(rax, Factory::true_value());
+  __ LoadRoot(rax, Heap::kTrueValueRootIndex);
   __ bind(&done);

   context()->Plug(rax);


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to