Changeset 55615 in webkit


Ignore:
Timestamp:
Mar 6, 2010 3:31:15 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-03-06 Patrick Gansterer <paroga@paroga.com>

Reviewed by Eric Seidel.

Implemented JIT_OPTIMIZE_NATIVE_CALL for WinCE
https://bugs.webkit.org/show_bug.cgi?id=33426

  • jit/JITOpcodes.cpp: (JSC::JIT::privateCompileCTIMachineTrampolines):
Location:
trunk/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r55600 r55615  
     12010-03-06  Patrick Gansterer  <paroga@paroga.com>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Implemented JIT_OPTIMIZE_NATIVE_CALL for WinCE
     6        https://bugs.webkit.org/show_bug.cgi?id=33426
     7
     8        * jit/JITOpcodes.cpp:
     9        (JSC::JIT::privateCompileCTIMachineTrampolines):
     10
    1112010-03-05  Oliver Hunt  <oliver@apple.com>
    212
  • trunk/JavaScriptCore/jit/JITOpcodes.cpp

    r54804 r55615  
    11/*
    22 * Copyright (C) 2009 Apple Inc. All rights reserved.
     3 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    283284    // stack: this(JSValue) and a pointer to ArgList
    284285
     286#if OS(WINCE)
     287    // Setup arg4:
     288    push(stackPointerRegister);
     289
     290    // Setup arg3:
     291    // regT1 currently points to the first argument, regT1-sizeof(Register) points to 'this'
     292    load32(Address(regT1, -(int32_t)sizeof(void*) * 2), ARMRegisters::r3);
     293    push(ARMRegisters::r3);
     294    load32(Address(regT1, -(int32_t)sizeof(void*)), regT3);
     295    storePtr(regT3, Address(stackPointerRegister));
     296
     297    // Setup arg2:
     298    emitGetFromCallFrameHeaderPtr(RegisterFile::Callee, regT2);
     299
     300    // Setup arg1:
     301    move(callFrameRegister, regT1);
     302
     303    // Setup arg0:
     304    move(stackPointerRegister, regT0);
     305
     306    call(Address(regT2, OBJECT_OFFSETOF(JSFunction, m_data)));
     307
     308    load32(Address(stackPointerRegister, 0), regT0);
     309    load32(Address(stackPointerRegister, 4), regT1);
     310
     311    addPtr(Imm32(sizeof(ArgList) + 8), stackPointerRegister);
     312#else // OS(WINCE)
    285313    move(stackPointerRegister, regT3);
    286314    subPtr(Imm32(8), stackPointerRegister);
     
    291319    storePtr(regT3, Address(stackPointerRegister, 8));
    292320
    293     // Setup arg3
     321    // Setup arg3:
    294322    // regT1 currently points to the first argument, regT1-sizeof(Register) points to 'this'
    295323    load32(Address(regT1, -(int32_t)sizeof(void*) * 2), regT3);
     
    311339
    312340    addPtr(Imm32(sizeof(ArgList) + 16 + 8), stackPointerRegister);
     341#endif // OS(WINCE)
     342
    313343#endif
    314344
     
    17651795    storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(ArgList, m_args)));
    17661796
    1767     // Setup arg3: regT1 currently points to the first argument, regT1-sizeof(Register) points to 'this'
     1797    // regT1 currently points to the first argument, regT1-sizeof(Register) points to 'this'
     1798
     1799#if OS(WINCE)
     1800    // Setup arg3:
     1801    loadPtr(Address(regT1, -(int32_t)sizeof(Register)), ARMRegisters::r3);
     1802
     1803    // Setup arg2:
     1804    emitGetFromCallFrameHeaderPtr(RegisterFile::Callee, regT2);
     1805
     1806    // Setup arg1:
     1807    move(callFrameRegister, regT1);
     1808
     1809    // Setup arg0:
     1810    move(stackPointerRegister, regT0);
     1811    subPtr(Imm32(sizeof(Register)), stackPointerRegister);
     1812    storePtr(regT0, Address(stackPointerRegister));
     1813
     1814    call(Address(regT2, OBJECT_OFFSETOF(JSFunction, m_data)));
     1815
     1816    loadPtr(Address(regT0), regT0);
     1817
     1818    addPtr(Imm32(sizeof(Register) + sizeof(ArgList)), stackPointerRegister);
     1819#else // OS(WINCE)
     1820    // Setup arg3:
    17681821    loadPtr(Address(regT1, -(int32_t)sizeof(Register)), regT2);
    17691822
     
    17801833
    17811834    addPtr(Imm32(sizeof(ArgList)), stackPointerRegister);
     1835#endif // OS(WINCE)
    17821836
    17831837#elif ENABLE(JIT_OPTIMIZE_NATIVE_CALL)
Note: See TracChangeset for help on using the changeset viewer.