Reviewers: Lasse Reichstein,

Message:
Lasse, may you have a look?

I am not quite versed in x64 ways and hope of this change is correct it won't
introduce perf regression.

Description:
Turn {mov,add}q into {mov,add}l.

All the cases fixed are safe as registers hold 32-bit value, but that looks
safer to operate on proper sizes.

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

Affected files:
  M src/x64/codegen-x64.cc
  M src/x64/stub-cache-x64.cc


Index: src/x64/codegen-x64.cc
diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc
index 0fdef25c67b39c496e161329e1b2179b1e34de97..55fb03d43b1036f70c00d920150bc0b14df4cd74 100644
--- a/src/x64/codegen-x64.cc
+++ b/src/x64/codegen-x64.cc
@@ -4392,7 +4392,7 @@ void CodeGenerator::GenerateRegExpConstructResult(ZoneList<Expression*>* args) {
     __ Move(FieldOperand(rcx, HeapObject::kMapOffset),
             Factory::fixed_array_map());
     // Set length.
-    __ movq(FieldOperand(rcx, FixedArray::kLengthOffset), rbx);
+    __ movl(FieldOperand(rcx, FixedArray::kLengthOffset), rbx);
     // Fill contents of fixed-array with the-hole.
     __ Move(rdx, Factory::the_hole_value());
     __ lea(rcx, FieldOperand(rcx, FixedArray::kHeaderSize));
@@ -8954,7 +8954,7 @@ void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* masm) {
   __ movq(FieldOperand(rax, JSObject::kElementsOffset), rdi);
   __ LoadRoot(kScratchRegister, Heap::kFixedArrayMapRootIndex);
   __ movq(FieldOperand(rdi, FixedArray::kMapOffset), kScratchRegister);
-  __ movq(FieldOperand(rdi, FixedArray::kLengthOffset), rcx);
+  __ movl(FieldOperand(rdi, FixedArray::kLengthOffset), rcx);

   // Copy the fixed array slots.
   Label loop;
Index: src/x64/stub-cache-x64.cc
diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc
index dbe1c28e4fe81e9dde0eb358af0f5708927926e0..384bca189286cd27b2eacc7bb490f3dd68d76821 100644
--- a/src/x64/stub-cache-x64.cc
+++ b/src/x64/stub-cache-x64.cc
@@ -1194,7 +1194,7 @@ Object* CallStubCompiler::CompileArrayPushCall(Object* object,
       __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));

       // Increment element's and array's sizes.
-      __ addq(FieldOperand(rbx, FixedArray::kLengthOffset),
+      __ addl(FieldOperand(rbx, FixedArray::kLengthOffset),
               Immediate(kAllocationDelta));
       __ movq(FieldOperand(rdx, JSArray::kLengthOffset), rax);



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

Reply via email to