Changeset 175766 in webkit


Ignore:
Timestamp:
Nov 7, 2014 3:36:20 PM (9 years ago)
Author:
Dániel Bátyai
Message:

Fix an alignment issue with operationPushCatchScope on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=138510

Reviewed by Csaba Osztrogonác.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r175762 r175766  
     12014-11-07  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
     2
     3        Fix an alignment issue with operationPushCatchScope on ARMv7
     4        https://bugs.webkit.org/show_bug.cgi?id=138510
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        * jit/CCallHelpers.h:
     9        (JSC::CCallHelpers::setupArgumentsWithExecState):
     10        * jit/JITInlines.h:
     11        (JSC::JIT::callOperation):
     12
    1132014-11-07  Michael Saboff  <msaboff@apple.com>
    214
  • trunk/Source/JavaScriptCore/jit/CCallHelpers.h

    r175762 r175766  
    12951295    }
    12961296
     1297    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImmPtr arg2, TrustedImm32 arg3)
     1298    {
     1299        move(arg3, GPRInfo::argumentGPR3);
     1300        move(arg1, GPRInfo::argumentGPR1);
     1301        move(arg2, GPRInfo::argumentGPR2);
     1302        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
     1303    }
     1304
    12971305    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, GPRReg arg2, TrustedImm32 arg3)
    12981306    {
     
    14121420    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImmPtr arg2, GPRReg arg3, TrustedImm32 arg4, TrustedImm32 arg5)
    14131421    {
     1422        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
     1423        poke(arg4, POKE_ARGUMENT_OFFSET);
     1424        setupArgumentsWithExecState(arg1, arg2, arg3);
     1425    }
     1426
     1427    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, TrustedImmPtr arg2, TrustedImm32 arg3, GPRReg arg4, GPRReg arg5, TrustedImm32 arg6)
     1428    {
     1429        poke(arg6, POKE_ARGUMENT_OFFSET + 2);
    14141430        poke(arg5, POKE_ARGUMENT_OFFSET + 1);
    14151431        poke(arg4, POKE_ARGUMENT_OFFSET);
  • trunk/Source/JavaScriptCore/jit/JITInlines.h

    r175762 r175766  
    584584ALWAYS_INLINE MacroAssembler::Call JIT::callOperation(V_JITOperation_EZIdJZ operation, int32_t op1, const Identifier* identOp2, RegisterID regOp3Tag, RegisterID regOp3Payload, int32_t op4)
    585585{
    586     setupArgumentsWithExecState(TrustedImm32(op1), TrustedImmPtr(identOp2), regOp3Payload, regOp3Tag, TrustedImm32(op4));
     586    setupArgumentsWithExecState(TrustedImm32(op1), TrustedImmPtr(identOp2), EABI_32BIT_DUMMY_ARG regOp3Payload, regOp3Tag, TrustedImm32(op4));
    587587    return appendCallWithExceptionCheck(operation);
    588588}
Note: See TracChangeset for help on using the changeset viewer.