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
Sérgio Benjamim
fb984fcaef
[ARM]Fix build, disable dynarec for now.
2015-02-01 19:05:48 -02:00
twinaphex
9f81da3e2f
(OSX) Updates
2015-02-01 06:23:04 +01:00
twinaphex
f66824b7e5
(Theos iOS) Add Theos iOS target
2014-12-23 08:58:58 +01:00
twinaphex
ee3a885f7c
Make QNX target work with dynarec, etc.
2014-12-22 06:52:09 +01:00