Changeset 48525 in webkit for trunk/JavaScriptCore/assembler


Ignore:
Timestamp:
Sep 18, 2009, 1:18:27 PM (16 years ago)
Author:
[email protected]
Message:

2009-09-18 Gabor Loki <[email protected]>

Reviewed by Gavin Barraclough.

Defines two pseudo-platforms for ARM and Thumb-2 instruction set.
https://bugs.webkit.org/show_bug.cgi?id=29122

Introduces WTF_PLATFORM_ARM_TRADITIONAL and WTF_PLATFORM_ARM_THUMB2
macros on ARM platforms. The PLATFORM(ARM_THUMB2) should be used
when Thumb-2 instruction set is the required target. The
PLATFORM(ARM_TRADITIONAL) is for generic ARM instruction set. In
case where the code is common the PLATFORM(ARM) have to be used.

  • assembler/ARMAssembler.cpp:
  • assembler/ARMAssembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM.cpp:
  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerCodeRef.h: (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
  • jit/ExecutableAllocator.h:
  • jit/JIT.h:
  • jit/JITInlineMethods.h: (JSC::JIT::beginUninterruptedSequence): (JSC::JIT::preserveReturnAddressAfterCall): (JSC::JIT::restoreReturnAddressBeforeReturn): (JSC::JIT::restoreArgumentReference): (JSC::JIT::restoreArgumentReferenceForTrampoline):
  • jit/JITOpcodes.cpp:
  • jit/JITStubs.cpp: (JSC::JITThunks::JITThunks):
  • jit/JITStubs.h:
  • wtf/Platform.h:
  • yarr/RegexJIT.cpp: (JSC::Yarr::RegexGenerator::generateEnter):
Location:
trunk/JavaScriptCore/assembler
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/assembler/ARMAssembler.cpp

    r47530 r48525  
    2727#include "config.h"
    2828
    29 #if ENABLE(ASSEMBLER) && PLATFORM(ARM)
     29#if ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
    3030
    3131#include "ARMAssembler.h"
     
    391391} // namespace JSC
    392392
    393 #endif // ENABLE(ASSEMBLER) && PLATFORM(ARM)
     393#endif // ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
  • trunk/JavaScriptCore/assembler/ARMAssembler.h

    r47530 r48525  
    3030#include <wtf/Platform.h>
    3131
    32 #if ENABLE(ASSEMBLER) && PLATFORM(ARM)
     32#if ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
    3333
    3434#include "AssemblerBufferWithConstantPool.h"
     
    765765} // namespace JSC
    766766
    767 #endif // ENABLE(ASSEMBLER) && PLATFORM(ARM)
     767#endif // ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
    768768
    769769#endif // ARMAssembler_h
  • trunk/JavaScriptCore/assembler/ARMv7Assembler.h

    r48445 r48525  
    2929#include <wtf/Platform.h>
    3030
    31 #if ENABLE(ASSEMBLER) && PLATFORM_ARM_ARCH(7)
     31#if ENABLE(ASSEMBLER) && PLATFORM(ARM_THUMB2)
    3232
    3333#include "AssemblerBuffer.h"
     
    17541754} // namespace JSC
    17551755
    1756 #endif // ENABLE(ASSEMBLER) && PLATFORM_ARM_ARCH(7)
     1756#endif // ENABLE(ASSEMBLER) && PLATFORM(ARM_THUMB2)
    17571757
    17581758#endif // ARMAssembler_h
  • trunk/JavaScriptCore/assembler/MacroAssembler.h

    r46059 r48525  
    3131#if ENABLE(ASSEMBLER)
    3232
    33 #if PLATFORM_ARM_ARCH(7)
     33#if PLATFORM(ARM_THUMB2)
    3434#include "MacroAssemblerARMv7.h"
    3535namespace JSC { typedef MacroAssemblerARMv7 MacroAssemblerBase; };
    3636
    37 #elif PLATFORM(ARM)
     37#elif PLATFORM(ARM_TRADITIONAL)
    3838#include "MacroAssemblerARM.h"
    3939namespace JSC { typedef MacroAssemblerARM MacroAssemblerBase; };
  • trunk/JavaScriptCore/assembler/MacroAssemblerARM.cpp

    r48389 r48525  
    2727#include "config.h"
    2828
    29 #if ENABLE(ASSEMBLER) && PLATFORM(ARM) && !PLATFORM_ARM_ARCH(7)
     29#if ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
    3030
    3131#include "MacroAssemblerARM.h"
     
    6565}
    6666
    67 #endif // ENABLE(ASSEMBLER) && PLATFORM(ARM) && !PLATFORM_ARM_ARCH(7)
     67#endif // ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
  • trunk/JavaScriptCore/assembler/MacroAssemblerARM.h

    r48389 r48525  
    3131#include <wtf/Platform.h>
    3232
    33 #if ENABLE(ASSEMBLER) && PLATFORM(ARM) && !PLATFORM_ARM_ARCH(7)
     33#if ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
    3434
    3535#include "ARMAssembler.h"
     
    798798}
    799799
    800 #endif // ENABLE(ASSEMBLER) && PLATFORM(ARM) && !PLATFORM_ARM_ARCH(7)
     800#endif // ENABLE(ASSEMBLER) && PLATFORM(ARM_TRADITIONAL)
    801801
    802802#endif // MacroAssemblerARM_h
  • trunk/JavaScriptCore/assembler/MacroAssemblerCodeRef.h

    r46247 r48525  
    3838// ASSERT_VALID_CODE_POINTER checks that ptr is a non-null pointer, and that it is a valid
    3939// instruction address on the platform (for example, check any alignment requirements).
    40 #if PLATFORM_ARM_ARCH(7)
     40#if PLATFORM(ARM_THUMB2)
    4141// ARM/thumb instructions must be 16-bit aligned, but all code pointers to be loaded
    4242// into the processor are decorated with the bottom bit set, indicating that this is
     
    125125
    126126    explicit MacroAssemblerCodePtr(void* value)
    127 #if PLATFORM_ARM_ARCH(7)
     127#if PLATFORM(ARM_THUMB2)
    128128        // Decorate the pointer as a thumb code pointer.
    129129        : m_value(reinterpret_cast<char*>(value) + 1)
     
    142142
    143143    void* executableAddress() const { return m_value; }
    144 #if PLATFORM_ARM_ARCH(7)
     144#if PLATFORM(ARM_THUMB2)
    145145    // To use this pointer as a data address remove the decoration.
    146146    void* dataLocation() const { ASSERT_VALID_CODE_POINTER(m_value); return reinterpret_cast<char*>(m_value) - 1; }
Note: See TracChangeset for help on using the changeset viewer.