Revision: 5263
Author: [email protected]
Date: Fri Aug 13 05:36:59 2010
Log: ARM: Fix another bug in r5252

Also hoist the load of the valueOf symbol out of the loop.
Review URL: http://codereview.chromium.org/3170014
http://code.google.com/p/v8/source/detail?r=5263

Modified:
 /branches/bleeding_edge/src/arm/codegen-arm.cc

=======================================
--- /branches/bleeding_edge/src/arm/codegen-arm.cc      Fri Aug 13 04:18:16 2010
+++ /branches/bleeding_edge/src/arm/codegen-arm.cc      Fri Aug 13 05:36:59 2010
@@ -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