Reviewers: Erik Corry,

Description:
ARM: Fix another bug in r5252

Also hoist the load of the valueOf symbol out of the loop.

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

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

Affected files:
  M     src/arm/codegen-arm.cc


Index: src/arm/codegen-arm.cc
===================================================================
--- src/arm/codegen-arm.cc      (revision 5262)
+++ src/arm/codegen-arm.cc      (working copy)
@@ -4833,10 +4833,13 @@
// Loop through all the keys in the descriptor array. If one of these is the
     // symbol valueOf the result is false.
     Label entry, loop;
+ // The use of ip to store the valueOf symbol asumes that it is not otherwise
+    // used in the loop below.
+    __ mov(ip, Operand(Factory::value_of_symbol()));
     __ jmp(&entry);
     __ bind(&loop);
-    __ ldr(scratch2_, FieldMemOperand(map_result_, 0));
-    __ cmp(scratch2_, Operand(Factory::value_of_symbol()));
+    __ ldr(scratch2_, MemOperand(map_result_, 0));
+    __ cmp(scratch2_, ip);
     __ b(eq, &false_result);
     __ add(map_result_, map_result_, Operand(kPointerSize));
     __ bind(&entry);


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

Reply via email to