Changeset 157797 in webkit


Ignore:
Timestamp:
Oct 22, 2013 10:04:59 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

[sh4][mips][arm] Fix crashes in JSC (32-bit only).
https://bugs.webkit.org/show_bug.cgi?id=123165

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-22
Reviewed by Michael Saboff.

  • jit/JITInlines.h:

(JSC::JIT::callOperationNoExceptionCheck): Add missing EABI_32BIT_DUMMY_ARG.
(JSC::JIT::callOperation): The last TrustedImm32(arg3) is a bit overkill for SH4 :)
(JSC::JIT::callOperation): Add missing EABI_32BIT_DUMMY_ARG.
(JSC::JIT::callOperation): Fix tag and payload order for V_JITOperation_EJJJ prototype.

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r157796 r157797  
     12013-10-22  Julien Brianceau  <jbriance@cisco.com>
     2
     3        [sh4][mips][arm] Fix crashes in JSC (32-bit only).
     4        https://bugs.webkit.org/show_bug.cgi?id=123165
     5
     6        Reviewed by Michael Saboff.
     7
     8        * jit/JITInlines.h:
     9        (JSC::JIT::callOperationNoExceptionCheck): Add missing EABI_32BIT_DUMMY_ARG.
     10        (JSC::JIT::callOperation): The last TrustedImm32(arg3) is a bit overkill for SH4 :)
     11        (JSC::JIT::callOperation): Add missing EABI_32BIT_DUMMY_ARG.
     12        (JSC::JIT::callOperation): Fix tag and payload order for V_JITOperation_EJJJ prototype.
     13
    1142013-10-22  Julien Brianceau  <jbriance@cisco.com>
    215
  • trunk/Source/JavaScriptCore/jit/JITInlines.h

    r157668 r157797  
    433433ALWAYS_INLINE MacroAssembler::Call JIT::callOperationNoExceptionCheck(V_JITOperation_EJ operation, GPRReg arg1Tag, GPRReg arg1Payload)
    434434{
    435     setupArgumentsWithExecState(arg1Payload, arg1Tag);
     435    setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
    436436    updateTopCallFrame();
    437437    return appendCall(operation);
     
    442442#if CPU(SH4)
    443443    // We have to put arg3 in the 4th argument register (r7) as 64-bit value arg2 will be put on stack for sh4 architecure.
    444     setupArgumentsWithExecState(arg1Payload, arg1Tag, TrustedImm32(arg3), arg2Payload, arg2Tag, TrustedImm32(arg3));
     444    setupArgumentsWithExecState(arg1Payload, arg1Tag, TrustedImm32(arg3), arg2Payload, arg2Tag);
    445445#else
    446446    setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, arg2Payload, arg2Tag, TrustedImm32(arg3));
     
    511511ALWAYS_INLINE MacroAssembler::Call JIT::callOperation(V_JITOperation_EJ operation, RegisterID regOp1Tag, RegisterID regOp1Payload)
    512512{
    513     setupArgumentsWithExecState(regOp1Payload, regOp1Tag);
     513    setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG regOp1Payload, regOp1Tag);
    514514    return appendCallWithExceptionCheck(operation);
    515515}
     
    527527}
    528528
    529 ALWAYS_INLINE MacroAssembler::Call JIT::callOperation(V_JITOperation_EJJJ operation, RegisterID regOp1Payload, RegisterID regOp1Tag, RegisterID regOp2Payload, RegisterID regOp2Tag, RegisterID regOp3Payload, RegisterID regOp3Tag)
     529ALWAYS_INLINE MacroAssembler::Call JIT::callOperation(V_JITOperation_EJJJ operation, RegisterID regOp1Tag, RegisterID regOp1Payload, RegisterID regOp2Tag, RegisterID regOp2Payload, RegisterID regOp3Tag, RegisterID regOp3Payload)
    530530{
    531531    setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG regOp1Payload, regOp1Tag, SH4_32BIT_DUMMY_ARG regOp2Payload, regOp2Tag, regOp3Payload, regOp3Tag);
Note: See TracChangeset for help on using the changeset viewer.