Reviewers: Kasper Lund,

Description:
In my final round of refactoring, I accidentally broke my string
lenght optimization.  Here is the fix: check that the instance type
not the receiver is JS_VALUE_TYPE.


Please review this at http://codereview.chromium.org/8656

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

Affected files:
   M     src/ic-arm.cc
   M     src/stub-cache-ia32.cc


Index: src/stub-cache-ia32.cc
===================================================================
--- src/stub-cache-ia32.cc      (revision 621)
+++ src/stub-cache-ia32.cc      (working copy)
@@ -185,7 +185,8 @@
                                              Label* miss) {
    Label load_length, check_wrapper;

-  // Check if the object is a string.
+  // Check if the object is a string leaving the instance type in the
+  // scratch register.
    GenerateStringCheck(masm, receiver, scratch, miss, &check_wrapper);

    // Load length directly from the string.
@@ -200,7 +201,7 @@

    // Check if the object is a JSValue wrapper.
    __ bind(&check_wrapper);
-  __ cmp(receiver, JS_VALUE_TYPE);
+  __ cmp(scratch, JS_VALUE_TYPE);
    __ j(not_equal, miss, not_taken);

    // Check if the wrapped value is a string and load the length
Index: src/ic-arm.cc
===================================================================
--- src/ic-arm.cc       (revision 621)
+++ src/ic-arm.cc       (working copy)
@@ -190,7 +190,8 @@

    __ ldr(r0, MemOperand(sp, 0));

-  // Check if the object is a string.
+  // Check if the object is a string leaving the instance type in the
+  // r1 register.
    GenerateStringCheck(masm, r0, r1, r3, &miss, &check_wrapper);

    // Load length directly from the string.
@@ -204,7 +205,7 @@

    // Check if the object is a JSValue wrapper.
    __ bind(&check_wrapper);
-  __ cmp(r0, Operand(JS_VALUE_TYPE));
+  __ cmp(r1, Operand(JS_VALUE_TYPE));
    __ b(ne, &miss);

    // Check if the wrapped value is a string and load the length



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to