2009-05-08 Maciej Stachowiak <mjs@apple.com>
authormjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 May 2009 13:19:49 +0000 (13:19 +0000)
committermjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 May 2009 13:19:49 +0000 (13:19 +0000)
        Reviewed by Cameron Zwarich.

        - fix test failures on 64-bit

        * jit/JITArithmetic.cpp:
        (JSC::JIT::compileFastArithSlow_op_jnless): Avoid accidentaly treating an
        immediate int as an immediate float in the 64-bit value representation.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@43399 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/jit/JITArithmetic.cpp

index 9d5fa17e70a9267b998e8cdba328f078c870ec22..af2e171f3b22448793ea60e59d3fffe77bf079e5 100644 (file)
@@ -1,3 +1,13 @@
+2009-05-08  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Cameron Zwarich.
+        
+        - fix test failures on 64-bit
+
+        * jit/JITArithmetic.cpp:
+        (JSC::JIT::compileFastArithSlow_op_jnless): Avoid accidentaly treating an
+        immediate int as an immediate float in the 64-bit value representation.
+
 2009-05-08  Gavin Barraclough  <barraclough@apple.com>
 
         Rubber stamped by Oliver Hunt.
index c63aebaaf08702a01816094264d68b358b34a02c..5851e2a3cf1dd1ed96d80013f657fa3e6d2d4bfa 100644 (file)
@@ -347,6 +347,7 @@ void JIT::compileFastArithSlow_op_jnless(unsigned op1, unsigned op2, unsigned ta
 #if USE(ALTERNATE_JSIMMEDIATE)
             Jump fail1 = emitJumpIfNotImmediateNumber(regT0);
             Jump fail2 = emitJumpIfNotImmediateNumber(regT1);
+            Jump fail3 = emitJumpIfImmediateInteger(regT1);
             addPtr(tagTypeNumberRegister, regT0);
             addPtr(tagTypeNumberRegister, regT1);
             m_assembler.movq_rr(regT0, X86::xmm0);
@@ -374,6 +375,7 @@ void JIT::compileFastArithSlow_op_jnless(unsigned op1, unsigned op2, unsigned ta
 #if USE(ALTERNATE_JSIMMEDIATE)
             fail1.link(this);
             fail2.link(this);
+            fail3.link(this);
 #else
             if (!m_codeBlock->isKnownNotImmediate(op1))
                 fail1.link(this);