Commit graph

81 commits

Author SHA1 Message Date
twinaphex
fd20793545 Add CROSS_COMPILE rules 2021-03-27 15:09:01 +01:00
David Guillen Fandos
7ea6c5e247 Move OAM RAM to stubs also
Makes accesses more efficient for MIPS. Make accesses also fast for palette
reads.
2021-03-26 23:13:26 +01:00
jdgleaver
3db35eab70 Fix OpenDingux Beta build 2021-03-26 16:03:46 +00:00
David Guillen Fandos
6b503667ec Add Dingux support
Uses a different cache primitive and a differend madd(u) encoding.
Also added a flag for BGR vs RGB color output (since PSP is assuming to
be BGR for speed).
Aside from that the ABI required some special function calls for PIC.
2021-03-16 22:58:58 +01:00
David Guillen Fandos
5ffd2832e8 Rewrite of the MIPS dynarec stubs
This allows us to emit the handlers directly in a more efficient manner.
At the same time it allows for an easy fix to emit PIC code, which is
necessary for libretro. This also enables more platform specific
optimizations and variations, perhaps even run-time multiplatform
support.
2021-03-16 22:58:58 +01: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
twinaphex
bd36c9c77d Add osx-arm64 target 2021-03-09 22:05:36 +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
David Guillen Fandos
3d558413fd Fix x86 dynarec, broken by d10c4afe
The dynarec expects function args to be located in registers instead of
the stack, which is not the default calling convetion in GCC/clang.
2021-03-06 21:15:22 +01:00
twinaphex
23b2a55f0d Update 2020-12-19 23:18:41 +01:00
jdgleaver
e4745d32ec Add 3DS target to .gitlab-ci.yml 2020-12-03 14:05:54 +01:00
jdgleaver
2b189fe810 OpenDingux: Fix makefile target 2020-10-23 16:06:15 +01:00
jdgleaver
00406feed9 Add build-time option to run the emulator in a thread instead of libco (fixes OpenDingux target) 2020-10-23 15:37:48 +01:00
twinaphex
9fc166ebb2 Update Makefile 2020-10-08 23:56:18 +02:00
Autechre
6ca90ae963
Update Makefile 2020-10-08 05:16:57 +02:00
twinaphex
856af16ba6 Cleanup 2020-05-27 21:39:17 +02:00
twinaphex
b668259a2f Fix OSX PPC build 2020-05-27 21:34:54 +02:00
Justin Weiss
6a50b8a68d [3DS] Fix dynarec prefetch aborts
Similar fix to https://github.com/libretro/pcsx_rearmed/pull/390. The
Nintendo svcBackdoor can cause stack corruption if an interrupt
happens during it, this uses Luma3DS/Rosalina's svcCustomBackdoor instead.
2020-02-29 10:55:58 -08:00
bmaupin
f1109b1df4 Use OPTIMIZE for compiling libco too
In case it needs to be debugged
2019-10-24 13:23:28 -04:00
bmaupin
a60de42f3a Get dynarec working again for PSP 2019-10-20 14:58:51 -04:00
bmaupin
2e13ee1cfc Fix compiler warning for strict aliasing 2019-10-03 13:53:34 -04:00
bmaupin
7816b42a8c Fix compilation on PSP 2019-09-13 13:44:48 -04:00
Yoshi Sugawara
8acc14cf34 (tvOS) Compile using tvOS SDK 2019-09-02 15:59:57 -10:00
Ryan 'Swingflip' Hamlin
2a8bcc0ae5 Added A7A7 2018-11-01 16:42:06 +00:00
twinaphex
638aad3ad5 Add Switch target 2018-01-10 03:14:18 +01:00
Yoshi Sugawara
0b73fbaa1a support for iOS arm64 build 2017-10-02 15:57:25 -10:00
Gregor Richards
415b5ba67b Report git version with library_version 2016-12-09 18:42:12 -05:00
Francisco José García García
6bfb7e1b47 (VITA) Dynarec working 2016-10-03 20:19:11 +02:00
Francisco José García García
24cbebe2de (VITA) Change libco and some optimizations 2016-09-29 01:03:33 +02:00
twinaphex
e700ad7875 Update Makefile 2016-09-07 09:32:02 +02:00
Francisco José García García
5051773104 (VITA) Set thumb mode 2016-08-14 18:30:14 +02:00
twinaphex
70fff8152f (Vita) Try to enable dynarec 2016-08-07 16:34:34 +02:00
vanfanel
9dbea7573e Removed redundant CFLAG and added Rpi3 platform 2016-05-24 17:52:00 +02:00
twinaphex
7a5380ca84 Add gcw0 target 2016-03-04 06:37:04 +01:00
vanfanel
31f9969be1 Add rpi 2 and rpi 1 platform definitions 2016-02-27 04:29:26 +01:00
aliaspider
4b00c74784 (3DS) remove the now unused libkhax. 2016-01-18 01:00:56 +01:00
aliaspider
f1d14fbe7c (3ds) dynarec: map the translation caches to specific addresses at
runtime, increases compatibility with loaders that can reloacate each
program section seperately.
move the svc enabling functions to the frontend.
2015-11-04 15:46:27 +01:00
aliaspider
6b8417143a (vita) build fix 2015-10-24 19:48:54 +01:00
twinaphex
98d327daa5 Add iOS 9 rules 2015-10-16 03:04:06 +02:00
aliaspider
c52e81510f (CTR/3DS) fix the 'all' target not being the default target. 2015-09-14 04:04:25 +01:00
aliaspider
c1d061e204 (3DS) add dynarec support when started from a .cia install
use libkhax for ninjhax 1.0
2015-09-11 22:02:04 +01:00
twinaphex
a99c3552a4 (Vita) Add Vita target 2015-08-31 21:50:44 +02:00
twinaphex
317f395b49 (OSX) Lower requirements to 10.1 2015-08-01 23:19:59 +02:00
neville
cdca6ac2a9 Get rid of warning flag which is a backwards compatibility hazard 2015-07-20 14:16:01 +02:00
aliaspider
5b6683bb93 (3DS) enable dynarec support, works only with ninjahax. 2015-04-08 10:20:32 +01:00
aliaspider
0fa650d589 force libco to compile with release CFLAGS
-O0 breaks it on some platforms.
2015-04-06 11:29:08 +01:00
aliaspider
33add4bad4 add a ctr(3ds) target. no dynarec for now. 2015-04-06 11:27:02 +01:00
sergiobenrocha2
cc31802c59 [ARM] Enable dynarec, works at least in rpi. 2015-03-14 00:59:39 -03:00
twinaphex
d57f89f3f1 Add linux-portable target 2015-03-06 11:28:53 +01:00
Twinaphex
5b28007ceb (iOS) Use xcodebuild instead of xcrun 2015-02-28 03:31:42 +01:00