Ignore:
Timestamp:
Apr 9, 2014, 1:23:20 PM (11 years ago)
Author:
[email protected]
Message:

Ensure that LLINT accessing of the ProtoCallFrame is big endian friendly.
<https://webkit.org/b/131449>

Reviewed by Mark Hahnenberg.

Change ProtoCallFrame::paddedArgCount to be of type uint32_t. The argCount
that it pads is of type int anyway. It doesn't need to be 64 bit. This
also makes it work with the LLINT which is loading it with a loadi
instruction.

We should add the PayLoadOffset to ProtoCallFrame::argCountAndCodeOriginValue
when loading the argCount.

  • interpreter/ProtoCallFrame.h:

(JSC::ProtoCallFrame::setPaddedArgCount):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/interpreter/ProtoCallFrame.h

    r163027 r167031  
    3737    Register argCountAndCodeOriginValue;
    3838    Register thisArg;
    39     size_t paddedArgCount;
     39    uint32_t paddedArgCount;
    4040    JSValue *args;
    4141
     
    5454    int argumentCount() const { return argumentCountIncludingThis() - 1; }
    5555    void setArgumentCountIncludingThis(int count) { argCountAndCodeOriginValue.payload() = count; }
    56     void setPaddedArgCount(size_t argCount) { paddedArgCount = argCount; }
     56    void setPaddedArgCount(uint32_t argCount) { paddedArgCount = argCount; }
    5757
    5858    void clearCurrentVPC() { argCountAndCodeOriginValue.tag() = 0; }
Note: See TracChangeset for help on using the changeset viewer.