Reviewers: ,

Description:
Fix minor issues in typed array load/store implementation

BUG=none
TEST=none


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

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

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


Index: src/ia32/lithium-codegen-ia32.cc
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc index 1691098f9f7ce0899f4576c0c793c8eb4b9300ec..e7f38fd29424810f97beda9ef9fdf28800ac606b 100644
--- a/src/ia32/lithium-codegen-ia32.cc
+++ b/src/ia32/lithium-codegen-ia32.cc
@@ -2304,11 +2304,11 @@ void LCodeGen::DoLoadKeyedSpecializedArrayElement(
         break;
       case kExternalUnsignedIntArray:
         __ mov(result, Operand(external_pointer, key, times_4, 0));
-        __ test(Operand(result), Immediate(0x80000000));
+        __ test(result, Operand(result));
// TODO(danno): we could be more clever here, perhaps having a special
         // version of the stub that detects if the overflow case actually
// happens, and generate code that returns a double rather than int.
-        DeoptimizeIf(not_zero, instr->environment());
+        DeoptimizeIf(negative, instr->environment());
         break;
       case kExternalFloatArray:
         UNREACHABLE();
Index: src/ia32/stub-cache-ia32.cc
diff --git a/src/ia32/stub-cache-ia32.cc b/src/ia32/stub-cache-ia32.cc
index 7730ee3da330ad870fcac426354540ba66c81616..0254c53fed70c2f7210a6d957e0bbd722226ae58 100644
--- a/src/ia32/stub-cache-ia32.cc
+++ b/src/ia32/stub-cache-ia32.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2009 the V8 project authors. All rights reserved.
+// Copyright 2011 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -3629,6 +3629,7 @@ MaybeObject* ExternalArrayStubCompiler::CompileKeyedStoreStub(
                 __ bind(&done);
               }
               __ mov_b(Operand(edi, ebx, times_1, 0), ecx);
+              break;
             case kExternalByteArray:
             case kExternalUnsignedByteArray:
               __ mov_b(Operand(edi, ebx, times_1, 0), ecx);


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

Reply via email to