Commit Graph

23 Commits

Author SHA1 Message Date
David Guillen Fandos bcd3d1ca29 [aarch64] Adding new aarch64 dynarec!
This is based on the MIPS dynarec (more or less) with some ARM
borrowings. Seems to be quite fast (under my testing fixed results:
faster than ARM on A1 but not a lot faster than the interpreter on
Android Snapdragon 845) but still some optimizations are missing at the
moment.

Seems to pass my testing suite and compatibility wise is very similar to
arm.
2021-12-12 13:18:13 +01:00
David Guillen Fandos c0804fa48d [x64] Enable Android x86-64 support (not tested!) 2021-11-06 12:39:16 +01:00
David Guillen Fandos 3a7fedb8fb Simplify MMAP machinery for Win/Lin/Mac/Android
This gets rid of the bloated memmap_win32.c in favour of a much simpler
wrapper. This will be needed in the future since the wrapper does not
support MAP_FIXED maps (necessary for some platforms)
2021-11-05 18:23:05 +01:00
David Guillen Fandos c39f5391f0 [ARM] Start using mmap'ed JIT caches for most builds
Will revisit remaining platforms and try to clean them too.
This should fix Android once and for all.
2021-10-29 22:51:39 +02:00
David Guillen Fandos 8e670a3263 Rewire warning flags (new NDK?) 2021-07-27 01:06:06 +02:00
David Guillen Fandos 1e8097ac79 Improve and simplify dynarec JIT area.
Also fix a regression on VITA.
Use gcc/OS cache flushing routines for MIPS32 instead of synci
2021-03-12 18:05:48 +01:00
David Guillen Fandos 0522d9a4f5 Add workaround for Android ARM builds
While we are at it, use ARM mode for better performance.
2021-03-09 19:29:18 +01:00
David Guillen Fandos 56dc6ecb70 Remove libco
This removes libco and all the usages of it (+pthreads).
Rewired all dynarecs and interpreter to return after every frame so that
libretro can process events. This required to make dynarec re-entrant.

Dynarecs were updated to check for new frame on every update (IRQ, cycle
exhaustion, I/O write, etc). The performance impact of doing so should
be minimal (and definitely outweight the libco gains). While at it,
fixed small issues to get a bit more perf: arm dynarec was not idling
correctly, mips was using stack when not needed, etc.

Tested on PSP (mips), OGA (armv7), Linux (x86 and interpreter). Not
tested on Android though.
2021-03-08 18:44:03 +01:00
jdgleaver c45187a7c8 Set 'USE_LIBCO=1' in Android JNI build file 2020-10-23 22:32:41 +01:00
Aaron Kling 9dcd9144cd Refactor android jni makefiles 2018-04-06 16:13:44 -05:00
Aaron Kling d982c5d050 Allow compiling android jni for all archs
Will not compile with clang, so toolchain override must remain.
2018-04-03 16:29:03 -05:00
Aaron Kling 4b0914b103 Fix up android jni makefiles
Clean up and fix errors with newer ndk versions
2018-03-31 15:03:16 -05:00
Gregor Richards 415b5ba67b Report git version with library_version 2016-12-09 18:42:12 -05:00
twinaphex c78a0dd39b (Android) For Android x86 build - try to use mmap, for Android - use ARM_MEMORY_DYNAREC
codepath
2014-12-11 01:38:47 +01:00
twinaphex eeeff89a2c (Android) Works now with dynarec 2014-12-10 21:12:45 +01:00
twinaphex a9ce972736 Add HAVE_DYNAREC and -DARCH_ARM optionally to CFLAGS 2014-12-10 20:31:56 +01:00
twinaphex e33a56cd83 PC_BUILD can go now 2014-12-10 18:53:06 +01:00
twinaphex 51d78afa09 Add HAVE_DYNAREC ifdef 2014-12-10 17:06:09 +01:00
twinaphex b3fe5aa3e4 (Android) Add x86 target too 2014-12-10 15:21:49 +01:00
aliaspider 6d7fd87e07 add a HAVE_MMAP check, cleanups. 2014-12-10 12:29:19 +01:00
aliaspider 13d5e9c875 Android build fix 2014-12-10 05:46:03 +01:00
twinaphex 26e7362de8 Cleanups in Android.mk 2014-12-10 04:56:50 +01:00
twinaphex 68efde5b94 Add Android JNI files 2014-12-10 04:54:32 +01:00