Revision: 3422
Author: [email protected]
Date: Fri Dec  4 04:17:02 2009
Log: Remove passing of argc in r0 when calling builtins on ARM as it is not  
used
Review URL: http://codereview.chromium.org/466031
http://code.google.com/p/v8/source/detail?r=3422

Modified:
  /branches/bleeding_edge/src/arm/codegen-arm.cc
  /branches/bleeding_edge/src/arm/virtual-frame-arm.cc
  /branches/bleeding_edge/src/arm/virtual-frame-arm.h

=======================================
--- /branches/bleeding_edge/src/arm/codegen-arm.cc      Fri Dec  4 01:58:05 2009
+++ /branches/bleeding_edge/src/arm/codegen-arm.cc      Fri Dec  4 04:17:02 2009
@@ -1769,9 +1769,7 @@

    primitive.Bind();
    frame_->EmitPush(r0);
-  Result arg_count(r0);
-  __ mov(r0, Operand(0));
-  frame_->InvokeBuiltin(Builtins::TO_OBJECT, CALL_JS, &arg_count, 1);
+  frame_->InvokeBuiltin(Builtins::TO_OBJECT, CALL_JS, 1);

    jsobject.Bind();
    // Get the set of properties (as a FixedArray or Map).
@@ -1910,9 +1908,7 @@
    __ ldr(r0, frame_->ElementAt(4));  // push enumerable
    frame_->EmitPush(r0);
    frame_->EmitPush(r3);  // push entry
-  Result arg_count_reg(r0);
-  __ mov(r0, Operand(1));
-  frame_->InvokeBuiltin(Builtins::FILTER_KEY, CALL_JS, &arg_count_reg, 2);
+  frame_->InvokeBuiltin(Builtins::FILTER_KEY, CALL_JS, 2);
    __ mov(r3, Operand(r0));

    // If the property has been removed while iterating, we just skip it.
@@ -3660,9 +3656,7 @@
      if (property != NULL) {
        LoadAndSpill(property->obj());
        LoadAndSpill(property->key());
-      Result arg_count(r0);
-      __ mov(r0, Operand(1));  // not counting receiver
-      frame_->InvokeBuiltin(Builtins::DELETE, CALL_JS, &arg_count, 2);
+      frame_->InvokeBuiltin(Builtins::DELETE, CALL_JS, 2);

      } else if (variable != NULL) {
        Slot* slot = variable->slot();
@@ -3670,9 +3664,7 @@
          LoadGlobal();
          __ mov(r0, Operand(variable->name()));
          frame_->EmitPush(r0);
-        Result arg_count(r0);
-        __ mov(r0, Operand(1));  // not counting receiver
-        frame_->InvokeBuiltin(Builtins::DELETE, CALL_JS, &arg_count, 2);
+        frame_->InvokeBuiltin(Builtins::DELETE, CALL_JS, 2);

        } else if (slot != NULL && slot->type() == Slot::LOOKUP) {
          // lookup the context holding the named variable
@@ -3684,9 +3676,7 @@
          frame_->EmitPush(r0);
          __ mov(r0, Operand(variable->name()));
          frame_->EmitPush(r0);
-        Result arg_count(r0);
-        __ mov(r0, Operand(1));  // not counting receiver
-        frame_->InvokeBuiltin(Builtins::DELETE, CALL_JS, &arg_count, 2);
+        frame_->InvokeBuiltin(Builtins::DELETE, CALL_JS, 2);

        } else {
          // Default: Result of deleting non-global, not dynamically
@@ -3736,9 +3726,7 @@
          smi_label.Branch(eq);

          frame_->EmitPush(r0);
-        Result arg_count(r0);
-        __ mov(r0, Operand(0));  // not counting receiver
-        frame_->InvokeBuiltin(Builtins::BIT_NOT, CALL_JS, &arg_count, 1);
+        frame_->InvokeBuiltin(Builtins::BIT_NOT, CALL_JS, 1);

          continue_label.Jump();
          smi_label.Bind();
@@ -3760,9 +3748,7 @@
          __ tst(r0, Operand(kSmiTagMask));
          continue_label.Branch(eq);
          frame_->EmitPush(r0);
-        Result arg_count(r0);
-        __ mov(r0, Operand(0));  // not counting receiver
-        frame_->InvokeBuiltin(Builtins::TO_NUMBER, CALL_JS, &arg_count, 1);
+        frame_->InvokeBuiltin(Builtins::TO_NUMBER, CALL_JS, 1);
          continue_label.Bind();
          break;
        }
@@ -3847,9 +3833,7 @@
      {
        // Convert the operand to a number.
        frame_->EmitPush(r0);
-      Result arg_count(r0);
-      __ mov(r0, Operand(0));
-      frame_->InvokeBuiltin(Builtins::TO_NUMBER, CALL_JS, &arg_count, 1);
+      frame_->InvokeBuiltin(Builtins::TO_NUMBER, CALL_JS, 1);
      }
      if (is_postfix) {
        // Postfix: store to result (on the stack).
@@ -4235,9 +4219,7 @@
      case Token::IN: {
        LoadAndSpill(left);
        LoadAndSpill(right);
-      Result arg_count(r0);
-      __ mov(r0, Operand(1));  // not counting receiver
-      frame_->InvokeBuiltin(Builtins::IN, CALL_JS, &arg_count, 2);
+      frame_->InvokeBuiltin(Builtins::IN, CALL_JS, 2);
        frame_->EmitPush(r0);
        break;
      }
@@ -5145,7 +5127,6 @@

    // Call the native; it returns -1 (less), 0 (equal), or 1 (greater)
    // tagged as a small integer.
-  __ mov(r0, Operand(arg_count));
    __ InvokeBuiltin(native, CALL_JS);
    __ cmp(r0, Operand(0));
    __ pop(pc);
@@ -5244,7 +5225,6 @@

      // Only first argument is a string.
      __ bind(&string1);
-    __ mov(r0, Operand(2));  // Set number of arguments.
      __ InvokeBuiltin(Builtins::STRING_ADD_LEFT, JUMP_JS);

      // First argument was not a string, test second.
@@ -5256,13 +5236,11 @@

      // Only second argument is a string.
      __ b(&not_strings);
-    __ mov(r0, Operand(2));  // Set number of arguments.
      __ InvokeBuiltin(Builtins::STRING_ADD_RIGHT, JUMP_JS);

      __ bind(&not_strings);
    }

-  __ mov(r0, Operand(1));  // Set number of arguments.
    __ InvokeBuiltin(builtin, JUMP_JS);  // Tail call.  No return.

    // We branch here if at least one of r0 and r1 is not a Smi.
@@ -5598,7 +5576,6 @@
    __ bind(&slow);
    __ push(r1);  // restore stack
    __ push(r0);
-  __ mov(r0, Operand(1));  // 1 argument (not counting receiver).
    switch (op_) {
      case Token::BIT_OR:
        __ InvokeBuiltin(Builtins::BIT_OR, JUMP_JS);
@@ -5980,7 +5957,6 @@
    // Enter runtime system.
    __ bind(&slow);
    __ push(r0);
-  __ mov(r0, Operand(0));  // Set number of arguments.
    __ InvokeBuiltin(Builtins::UNARY_MINUS, JUMP_JS);

    __ bind(&not_smi);
@@ -6456,7 +6432,6 @@

    // Slow-case.  Tail call builtin.
    __ bind(&slow);
-  __ mov(r0, Operand(1));  // Arg count without receiver.
    __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_JS);
  }

=======================================
--- /branches/bleeding_edge/src/arm/virtual-frame-arm.cc        Tue Oct 27  
07:56:50 2009
+++ /branches/bleeding_edge/src/arm/virtual-frame-arm.cc        Fri Dec  4  
04:17:02 2009
@@ -243,11 +243,8 @@

  void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id,
                                   InvokeJSFlags flags,
-                                 Result* arg_count_register,
                                   int arg_count) {
-  ASSERT(arg_count_register->reg().is(r0));
    PrepareForCall(arg_count, arg_count);
-  arg_count_register->Unuse();
    __ InvokeBuiltin(id, flags);
  }

=======================================
--- /branches/bleeding_edge/src/arm/virtual-frame-arm.h Wed Sep  9 03:49:40  
2009
+++ /branches/bleeding_edge/src/arm/virtual-frame-arm.h Fri Dec  4 04:17:02  
2009
@@ -305,7 +305,6 @@
    // removes from) the stack.
    void InvokeBuiltin(Builtins::JavaScript id,
                       InvokeJSFlags flag,
-                     Result* arg_count_register,
                       int arg_count);

    // Call into an IC stub given the number of arguments it removes

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

Reply via email to