Changeset 167076 in webkit


Ignore:
Timestamp:
Apr 10, 2014 10:50:15 AM (10 years ago)
Author:
mark.lam@apple.com
Message:

LLINT loadisFromInstruction should handle the big endian case.
<https://webkit.org/b/131495>

Reviewed by Mark Hahnenberg.

The LLINT loadisFromInstruction macro aims to load the least significant
32-bit word from the 64-bit bytecode instruction stream and sign extend
it. For big endian machines, the current implementation would load the
wrong 32-bit word.

Without this fix, the JSC tests will crash on big endian machines.
Thanks to Tomas Popela for diagnosing this issue.

  • llint/LowLevelInterpreter.asm:
Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r167061 r167076  
     12014-04-10  Mark Lam  <mark.lam@apple.com>
     2
     3        LLINT loadisFromInstruction should handle the big endian case.
     4        <https://webkit.org/b/131495>
     5
     6        Reviewed by Mark Hahnenberg.
     7
     8        The LLINT loadisFromInstruction macro aims to load the least significant
     9        32-bit word from the 64-bit bytecode instruction stream and sign extend
     10        it.  For big endian machines, the current implementation would load the
     11        wrong 32-bit word.
     12
     13        Without this fix, the JSC tests will crash on big endian machines.
     14        Thanks to Tomas Popela for diagnosing this issue.
     15
     16        * llint/LowLevelInterpreter.asm:
     17
    1182014-04-09  Mark Lam  <mark.lam@apple.com>
    219
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm

    r166392 r167076  
    107107   
    108108    macro loadisFromInstruction(offset, dest)
     109if BIG_ENDIAN
     110        loadis 4 + offset * 8[PB, PC, 8], dest
     111else
    109112        loadis offset * 8[PB, PC, 8], dest
     113end
    110114    end
    111115   
Note: See TracChangeset for help on using the changeset viewer.