mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-27 07:20:49 +00:00
Merge pull request #7079 from xsacha/new_archs
Better support for new archs.
This commit is contained in:
commit
eb4ce44f19
@ -6,6 +6,14 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests)
|
||||
|
||||
add_definitions(-DPPSSPP)
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(_ARCH_64 1)
|
||||
add_definitions(-D_ARCH_64=1)
|
||||
else()
|
||||
set(_ARCH_32 1)
|
||||
add_definitions(-D_ARCH_32=1)
|
||||
endif()
|
||||
|
||||
# Detect CPU from CMAKE configuration. Toolchains should set this up
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm")
|
||||
set(ARM ON)
|
||||
@ -14,6 +22,9 @@ endif()
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^armv7")
|
||||
set(ARMV7 ON)
|
||||
endif()
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^x86" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86")
|
||||
set(X86 ON)
|
||||
endif()
|
||||
|
||||
# Remove soon?
|
||||
set(USE_FFMPEG ON)
|
||||
@ -22,9 +33,6 @@ if(ARM OR SIMULATOR)
|
||||
set(USING_EGL ON)
|
||||
set(MOBILE_DEVICE ON)
|
||||
endif()
|
||||
if (NOT ARM) # Assume x86
|
||||
set(X86 ON)
|
||||
endif()
|
||||
|
||||
include(CheckIncludeFile)
|
||||
check_include_file(/opt/vc/include/bcm_host.h RPI)
|
||||
@ -54,7 +62,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
endif()
|
||||
|
||||
if (X86 AND NOT MIPS)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
if(_ARCH_64)
|
||||
add_definitions(-D_M_X64)
|
||||
else()
|
||||
add_definitions(-D_M_IX86)
|
||||
|
@ -32,9 +32,6 @@
|
||||
#if !defined(ARM)
|
||||
#define ARM
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(ARM)
|
||||
#define _M_ARM32
|
||||
#endif
|
||||
|
||||
@ -107,13 +104,6 @@ private:
|
||||
#ifndef MAX_PATH
|
||||
#define MAX_PATH PATH_MAX
|
||||
#endif
|
||||
#ifdef _LP64
|
||||
#define _M_X64 1
|
||||
#else
|
||||
#ifndef _M_ARM32
|
||||
#define _M_IX86 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define __forceinline inline __attribute__((always_inline))
|
||||
#define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x
|
||||
|
@ -70,7 +70,7 @@
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_32=1;_M_IX86=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>../native</AdditionalIncludeDirectories>
|
||||
@ -95,7 +95,7 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_M_X64=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>../native</AdditionalIncludeDirectories>
|
||||
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
@ -119,7 +119,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_32=1;_M_IX86=1;NDEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
@ -146,7 +146,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_M_X64=1;NDEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
|
||||
<AdditionalIncludeDirectories>../native</AdditionalIncludeDirectories>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@ -258,4 +258,4 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -31,8 +31,7 @@ template<> struct CompileTimeAssert<true> {};
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
// Assume !ARM && !MIPS = x86
|
||||
#if !defined(ARM) && !defined(MIPS)
|
||||
#if defined(_M_IX86) || defined(_M_X86)
|
||||
#define Crash() {asm ("int $3");}
|
||||
#else
|
||||
#define Crash() {kill(getpid(), SIGINT);}
|
||||
|
@ -71,7 +71,7 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86\include;../common;..;../native;../native/ext/glew;../ext/zlib</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_ARCH_32=1;_M_IX86=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
@ -91,7 +91,7 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\include;../common;..;../native;../native/ext/glew;../ext/zlib</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_ARCH_64=1;_M_X64=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<OmitFramePointers>false</OmitFramePointers>
|
||||
@ -117,7 +117,7 @@
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_ARCH_32=1;_M_IX86=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
@ -151,7 +151,7 @@
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;USE_FFMPEG;WIN32;_ARCH_64=1;_M_X64=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@ -657,4 +657,4 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -124,7 +124,7 @@ static MemoryView views[] =
|
||||
static const int num_views = sizeof(views) / sizeof(MemoryView);
|
||||
|
||||
inline static bool CanIgnoreView(const MemoryView &view) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
// Basically, 32-bit platforms can ignore views that are masked out anyway.
|
||||
return (view.flags & MV_MIRROR_PREVIOUS) && (view.virtual_address & ~MEMVIEW32_MASK) != 0;
|
||||
#else
|
||||
|
@ -93,7 +93,7 @@ enum
|
||||
|
||||
SCRATCHPAD_SIZE = 0x00004000,
|
||||
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
// This wraparound should work for PSP too.
|
||||
MEMVIEW32_MASK = 0x3FFFFFFF,
|
||||
#endif
|
||||
@ -157,7 +157,7 @@ u64 Read_U64(const u32 _Address);
|
||||
#endif
|
||||
|
||||
inline u8* GetPointerUnchecked(const u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return (u8 *)(base + (address & MEMVIEW32_MASK));
|
||||
#else
|
||||
return (u8 *)(base + address);
|
||||
@ -175,7 +175,7 @@ void WriteUnchecked_U32(const u32 _Data, const u32 _Address);
|
||||
#else
|
||||
|
||||
inline u32 ReadUnchecked_U32(const u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return *(u32_le *)(base + (address & MEMVIEW32_MASK));
|
||||
#else
|
||||
return *(u32_le *)(base + address);
|
||||
@ -183,7 +183,7 @@ inline u32 ReadUnchecked_U32(const u32 address) {
|
||||
}
|
||||
|
||||
inline u16 ReadUnchecked_U16(const u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return *(u16_le *)(base + (address & MEMVIEW32_MASK));
|
||||
#else
|
||||
return *(u16_le *)(base + address);
|
||||
@ -191,7 +191,7 @@ inline u16 ReadUnchecked_U16(const u32 address) {
|
||||
}
|
||||
|
||||
inline u8 ReadUnchecked_U8(const u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return (*(u8 *)(base + (address & MEMVIEW32_MASK)));
|
||||
#else
|
||||
return (*(u8 *)(base + address));
|
||||
@ -199,7 +199,7 @@ inline u8 ReadUnchecked_U8(const u32 address) {
|
||||
}
|
||||
|
||||
inline void WriteUnchecked_U32(u32 data, u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
*(u32_le *)(base + (address & MEMVIEW32_MASK)) = data;
|
||||
#else
|
||||
*(u32_le *)(base + address) = data;
|
||||
@ -207,7 +207,7 @@ inline void WriteUnchecked_U32(u32 data, u32 address) {
|
||||
}
|
||||
|
||||
inline void WriteUnchecked_U16(u16 data, u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
*(u16_le *)(base + (address & MEMVIEW32_MASK)) = data;
|
||||
#else
|
||||
*(u16_le *)(base + address) = data;
|
||||
@ -215,7 +215,7 @@ inline void WriteUnchecked_U16(u16 data, u32 address) {
|
||||
}
|
||||
|
||||
inline void WriteUnchecked_U8(u8 data, u32 address) {
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
(*(u8 *)(base + (address & MEMVIEW32_MASK))) = data;
|
||||
#else
|
||||
(*(u8 *)(base + address)) = data;
|
||||
@ -325,7 +325,7 @@ struct PSPPointer
|
||||
|
||||
inline T &operator*() const
|
||||
{
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return *(T *)(Memory::base + (ptr & Memory::MEMVIEW32_MASK));
|
||||
#else
|
||||
return *(T *)(Memory::base + ptr);
|
||||
@ -334,7 +334,7 @@ struct PSPPointer
|
||||
|
||||
inline T &operator[](int i) const
|
||||
{
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return *((T *)(Memory::base + (ptr & Memory::MEMVIEW32_MASK)) + i);
|
||||
#else
|
||||
return *((T *)(Memory::base + ptr) + i);
|
||||
@ -343,7 +343,7 @@ struct PSPPointer
|
||||
|
||||
inline T *operator->() const
|
||||
{
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return (T *)(Memory::base + (ptr & Memory::MEMVIEW32_MASK));
|
||||
#else
|
||||
return (T *)(Memory::base + ptr);
|
||||
@ -412,7 +412,7 @@ struct PSPPointer
|
||||
|
||||
inline operator T*()
|
||||
{
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return (T *)(Memory::base + (ptr & Memory::MEMVIEW32_MASK));
|
||||
#else
|
||||
return (T *)(Memory::base + ptr);
|
||||
@ -421,7 +421,7 @@ struct PSPPointer
|
||||
|
||||
inline operator const T*() const
|
||||
{
|
||||
#if defined(_M_IX86) || defined(_M_ARM32)
|
||||
#ifdef _ARCH_32
|
||||
return (const T *)(Memory::base + (ptr & Memory::MEMVIEW32_MASK));
|
||||
#else
|
||||
return (const T *)(Memory::base + ptr);
|
||||
|
@ -88,7 +88,7 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../common;..;../native;../native/ext/glew;</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_32=1;_M_IX86=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
@ -110,7 +110,7 @@
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_M_X64=1;_DEBUG;_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@ -126,7 +126,7 @@
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_32=1;_M_IX86=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
@ -151,7 +151,7 @@
|
||||
<OmitFramePointers>false</OmitFramePointers>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USING_WIN_UI;_CRT_SECURE_NO_WARNINGS;WIN32;_ARCH_64=1;_M_X64=1;_LIB;NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@ -293,4 +293,4 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -12,7 +12,7 @@ arm {
|
||||
$$P/Common/ArmThunk.cpp
|
||||
HEADERS += $$P/Common/ArmEmitter.h
|
||||
}
|
||||
else {
|
||||
i86 {
|
||||
SOURCES += $$P/Common/ABI.cpp \
|
||||
$$P/Common/CPUDetect.cpp \
|
||||
$$P/Common/Thunk.cpp \
|
||||
|
@ -8,15 +8,18 @@ contains(QT_ARCH, ".*86.*")|contains(QMAKE_TARGET.arch, ".*86.*") {
|
||||
else: QMAKE_ALLFLAGS += /arch:SSE2
|
||||
CONFIG += i86
|
||||
|
||||
contains(QT_ARCH, x86_64)|contains(QMAKE_TARGET.arch, x86_64): PLATFORM_ARCH = x86_64
|
||||
else: PLATFORM_ARCH = x86
|
||||
|
||||
# Fix 32-bit/64-bit defines
|
||||
equals(PLATFORM_ARCH, x86_64): DEFINES += _M_X64
|
||||
else: DEFINES += _M_IX86
|
||||
contains(QT_ARCH, x86_64)|contains(QMAKE_TARGET.arch, x86_64) {
|
||||
PLATFORM_ARCH = x86_64
|
||||
DEFINES += _M_X64 _ARCH_64
|
||||
}
|
||||
else {
|
||||
PLATFORM_ARCH = x86
|
||||
DEFINES += _M_IX86 _ARCH_32
|
||||
}
|
||||
} else:contains(QT_ARCH, ".*arm.*")|contains(QMAKE_TARGET.arch, ".*arm.*") {
|
||||
DEFINES += ARM
|
||||
DEFINES += ARM _ARCH_32
|
||||
CONFIG += arm
|
||||
|
||||
# Will need to see how QT_ARCH and QMAKE_TARGET.arch are populated for various ARM platforms.
|
||||
symbian: PLATFORM_ARCH="armv6"
|
||||
else {
|
||||
@ -27,12 +30,19 @@ contains(QT_ARCH, ".*86.*")|contains(QMAKE_TARGET.arch, ".*86.*") {
|
||||
QMAKE_ALLFLAGS_DEBUG += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize
|
||||
QMAKE_ALLFLAGS_RELEASE += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize
|
||||
}
|
||||
# TODO: armv8?
|
||||
# TODO: aarch32/64?
|
||||
} else {
|
||||
# Generic
|
||||
warning("You are using an untested arch. Only x86 and ARM CPUs are supported")
|
||||
warning("You are using an untested arch $${QT_ARCH}. Only x86 and ARM CPUs are supported")
|
||||
# For now MIPS is both generic and mips
|
||||
contains(QT_ARCH, ".*mips.*") {
|
||||
DEFINES += MIPS
|
||||
CONFIG += mips
|
||||
PLATFORM_ARCH="mips32"
|
||||
}
|
||||
DEFINES += GENERIC_ARCH
|
||||
CONFIG += generic
|
||||
DEFINES += _ARCH_32
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user