mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Reenabled armv7s for iOS with JIT fixes
This commit is contained in:
1 parent
e6fb1b2e1a
commit
e89b2055a6
7 files changed
+91
-6
No files matched your search
+2
-1
@@ -161,7 +161,8 @@ if(NOT MSVC)
|
||||
|
||||
if(IOS)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")
|
||||
set(CMAKE_OSX_ARCHITECTURES "armv7")
|
||||
# jtraynham: re-enabling default/"standard" architectures (which is a fat armv7/armv7s binary)
|
||||
#set(CMAKE_OSX_ARCHITECTURES "armv7")
|
||||
elseif(APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -U__STRICT_ANSI__")
|
||||
# Karen/angelXwind: --macosx-version-min=10.7 is needed in order to produce binaries that OS X 10.7 Lion can execute. However, it seems that PPSSPP won't support 10.6 or lower without getting rid of -stdlib=libc++ ...which probably won't end well. So I guess PPSSPP will strictly be a 10.7+ app.
|
||||
|
||||
@@ -132,7 +132,10 @@ void CPUInfo::Detect()
|
||||
bool isVFP4 = false;
|
||||
#ifdef IOS
|
||||
isVFP3 = true;
|
||||
// TODO: Check for swift arch (VFP4)
|
||||
// Check for swift arch (VFP4`)
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
isVFP4 = true;
|
||||
#endif // #ifdef __ARM_ARCH_7S__
|
||||
#elif defined(BLACKBERRY)
|
||||
isVFP3 = true;
|
||||
const char cpuInfoPath[] = "/pps/services/hw_info/inventory";
|
||||
|
||||
@@ -105,6 +105,17 @@ void Jit::Comp_FPULS(u32 op)
|
||||
}
|
||||
ADD(R0, R0, R11);
|
||||
}
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
FixupBranch skip;
|
||||
if (doCheck) {
|
||||
skip = B_CC(CC_EQ);
|
||||
}
|
||||
VLDR(fpr.R(ft), R0, 0);
|
||||
if (doCheck) {
|
||||
SetJumpTarget(skip);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#else
|
||||
VLDR(fpr.R(ft), R0, 0);
|
||||
if (doCheck) {
|
||||
SetCC(CC_EQ);
|
||||
@@ -112,6 +123,7 @@ void Jit::Comp_FPULS(u32 op)
|
||||
VMOV(fpr.R(ft), R0);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 57: //Memory::Write_U32(FI(ft), addr); break; //swc1
|
||||
@@ -129,10 +141,22 @@ void Jit::Comp_FPULS(u32 op)
|
||||
}
|
||||
ADD(R0, R0, R11);
|
||||
}
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
FixupBranch skip2;
|
||||
if (doCheck) {
|
||||
skip2 = B_CC(CC_EQ);
|
||||
}
|
||||
VSTR(fpr.R(ft), R0, 0);
|
||||
if (doCheck) {
|
||||
SetJumpTarget(skip2);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#else
|
||||
VSTR(fpr.R(ft), R0, 0);
|
||||
if (doCheck) {
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -216,12 +216,24 @@ namespace MIPSComp
|
||||
}
|
||||
ADD(R0, R0, R11);
|
||||
}
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
FixupBranch skip;
|
||||
if (doCheck) {
|
||||
skip = B_CC(CC_EQ);
|
||||
}
|
||||
VLDR(fpr.V(vt), R0, 0);
|
||||
if (doCheck) {
|
||||
SetJumpTarget(skip);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#else
|
||||
VLDR(fpr.V(vt), R0, 0);
|
||||
if (doCheck) {
|
||||
SetCC(CC_EQ);
|
||||
MOVI2F(fpr.V(vt), 0.0f, R0);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -243,10 +255,22 @@ namespace MIPSComp
|
||||
}
|
||||
ADD(R0, R0, R11);
|
||||
}
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
FixupBranch skip;
|
||||
if (doCheck) {
|
||||
skip = B_CC(CC_EQ);
|
||||
}
|
||||
VSTR(fpr.V(vt), R0, 0);
|
||||
if (doCheck) {
|
||||
SetJumpTarget(skip);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#else
|
||||
VSTR(fpr.V(vt), R0, 0);
|
||||
if (doCheck) {
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -289,6 +313,20 @@ namespace MIPSComp
|
||||
ADD(R0, R0, R11);
|
||||
}
|
||||
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
FixupBranch skip;
|
||||
if (doCheck) {
|
||||
skip = B_CC(CC_EQ);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
VLDR(fpr.V(vregs[i]), R0, i * 4);
|
||||
|
||||
if (doCheck) {
|
||||
SetJumpTarget(skip);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#else
|
||||
for (int i = 0; i < 4; i++)
|
||||
VLDR(fpr.V(vregs[i]), R0, i * 4);
|
||||
|
||||
@@ -299,6 +337,7 @@ namespace MIPSComp
|
||||
VMOV(fpr.V(vregs[i]), R0);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -324,12 +363,27 @@ namespace MIPSComp
|
||||
ADD(R0, R0, R11);
|
||||
}
|
||||
|
||||
#ifdef __ARM_ARCH_7S__
|
||||
FixupBranch skip;
|
||||
if (doCheck) {
|
||||
skip = B_CC(CC_EQ);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
VSTR(fpr.V(vregs[i]), R0, i * 4);
|
||||
|
||||
if (doCheck) {
|
||||
SetJumpTarget(skip);
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#else
|
||||
for (int i = 0; i < 4; i++)
|
||||
VSTR(fpr.V(vregs[i]), R0, i * 4);
|
||||
|
||||
if (doCheck) {
|
||||
SetCC(CC_AL);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
+1
-1
Submodule ffmpeg updated: e8ef410aac...dafc67817b.
+5
-2
@@ -7,7 +7,10 @@ Prerequisites:
|
||||
* Xcode (from the Mac App Store) with command line tools installed
|
||||
* MacPorts (from macports.org); easiest to install with their package installers
|
||||
* cmake build system (from MacPorts); run "sudo port install cmake" from the command line
|
||||
* gas-preprocessor (to compile ffmpeg libs); download the zip from https://github.com/mansr/gas-preprocessor, unzip and from the command line run:
|
||||
|
||||
If you need to build ffmpeg yourself too, then you'll also need:
|
||||
|
||||
* gas-preprocessor; download the zip from https://github.com/mansr/gas-preprocessor, unzip and from the command line run:
|
||||
|
||||
sudo cp gas-preprocessor.pl /usr/bin/
|
||||
sudo chmod +rw /usr/bin/gas-preprocessor.pl
|
||||
@@ -25,7 +28,7 @@ Change directory to the newly created ppsspp directory and run:
|
||||
|
||||
git submodule update --init
|
||||
|
||||
Change directory into ffmpeg and run (this will take a while):
|
||||
The above command will pull in the submodules required by PPSSPP, including the native, ffmpeg, and lang directories. Included in the ffmpeg directory should be the necessary libs and includes for ffmpeg, so most people can skip the next command. However, if you need to recompile ffmpeg for some reason, change directory into ffmpeg and run (this will take a while):
|
||||
|
||||
./ios-build.sh
|
||||
|
||||
|
||||
+1
-1
Submodule lang updated: cf710f2017...8be7cbb255.
Reference in new issue
Block a user