Reenabled armv7s for iOS with JIT fixes

This commit is contained in:
Jake Traynham committed 2013-06-20 11:44:59 -05:00
1 parent e6fb1b2e1a
commit e89b2055a6
7 files changed
+91 -6

No files matched your search

+2 -1
View File
@@ -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.
+4 -1
View File
@@ -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";
+24
View File
@@ -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:
+54
View File
@@ -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
View File
@@ -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.