ASSERTION FAILED: isUInt16() on ARMv7 after r113253.
authorrgabor@webkit.org <rgabor@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Feb 2014 17:38:15 +0000 (17:38 +0000)
committerrgabor@webkit.org <rgabor@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Feb 2014 17:38:15 +0000 (17:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=129101

Reviewed by Michael Saboff.

If the immediate value type is encoded then we shouldn't reach this assert.
Check the immediate type to avoid assertion in alignemnt check.

* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::add):

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/ARMv7Assembler.h

index 29eb06e..77e1f30 100644 (file)
@@ -1,3 +1,16 @@
+2014-02-20  Gabor Rapcsanyi  <rgabor@webkit.org>
+
+        ASSERTION FAILED: isUInt16() on ARMv7 after r113253.
+        https://bugs.webkit.org/show_bug.cgi?id=129101
+
+        Reviewed by Michael Saboff.
+
+        If the immediate value type is encoded then we shouldn't reach this assert.
+        Check the immediate type to avoid assertion in alignemnt check.
+
+        * assembler/ARMv7Assembler.h:
+        (JSC::ARMv7Assembler::add):
+
 2014-02-20  Csaba Osztrogon√°c  <ossy@webkit.org>
 
         Get rid of redundant Platform.h includes
index 59bf242..0874596 100644 (file)
@@ -857,7 +857,7 @@ public:
         ASSERT(rn != ARMRegisters::pc);
         ASSERT(imm.isValid());
 
-        if (rn == ARMRegisters::sp) {
+        if (rn == ARMRegisters::sp && imm.isUInt16()) {
             ASSERT(!(imm.getUInt16() & 3));
             if (!(rd & 8) && imm.isUInt10()) {
                 m_formatter.oneWordOp5Reg3Imm8(OP_ADD_SP_imm_T1, rd, static_cast<uint8_t>(imm.getUInt10() >> 2));