summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2021-06-27Enable big-endian devices: gc/wiiDavid Guillen Fandos
This patch adds big-endian compatibility in gpsp (in general but only for the interpreter). There's no performance hit for little-endian platforms (should be a no-op) and only add a small overhead in memory accesses for big-endian platforms. Most memory accesses are wrapped with a byteswap instruction and I/O reg accesses are also rewired for proper access (using macros). Video rendering has been fixed to also do byteswaps but there's a couple of games and rendering modes that still seem broken (but they amount to less than 20 games in my tests with 1K ROMs). This also adds build rules and CI for NGC/WII/WIIU (untested)
2021-06-22Fix the no-caller-saves bug for MIPSDavid Guillen Fandos
Seems that ABI mandates that we allocate space for arg0..4 even if we do pass them as registers. For some reason write_io_register<> functions write in that stack area (1 word) corrupting the s0 saved register. This seems to be a new gcc behaviour?
2021-06-21Add support for mips64n32David Guillen Fandos
This only needs some support to save/load state with 64 bit registers. Since pointers remain 32 bit, no extra changes are needed in the dynarec. Verified with qemu (qemu-mipsn32el) and miniretro.
2021-06-18Add preliminary support for non mips32r2 devicesDavid Guillen Fandos
This is required in PS2 but could also make older dingux devices run gpsp on retroarch
2021-05-19Cleanup Makefiles a bitDavid Guillen Fandos
2021-05-07Small optimization (~2-4%) and whitespace cleanup!David Guillen Fandos
Cleans up a ton of whitespace in cpu.c (like 100KB!) and improves readability of some massive decode statements. Added an optimization for PC-relative loads (pool load) in ROM (since it's read only and cannot possibily change) that directly emits an immediate load. This is way faster, specially in MIPS/x86, ARM can be even faster if we rewrite the immediate load macros to also use a pool.
2021-04-03Add instruction tracing, for testing purposesDavid Guillen Fandos
2021-03-27Add CROSS_COMPILE rulestwinaphex
2021-03-26Move OAM RAM to stubs alsoDavid Guillen Fandos
Makes accesses more efficient for MIPS. Make accesses also fast for palette reads.
2021-03-26Fix OpenDingux Beta buildjdgleaver
2021-03-16Add Dingux supportDavid Guillen Fandos
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-16Rewrite of the MIPS dynarec stubsDavid Guillen Fandos
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-12Improve and simplify dynarec JIT area.David Guillen Fandos
Also fix a regression on VITA. Use gcc/OS cache flushing routines for MIPS32 instead of synci
2021-03-09Add osx-arm64 targettwinaphex
2021-03-08Remove libcoDavid Guillen Fandos
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-06Fix x86 dynarec, broken by d10c4afeDavid Guillen Fandos
The dynarec expects function args to be located in registers instead of the stack, which is not the default calling convetion in GCC/clang.
2020-12-19Updatetwinaphex
2020-12-03Add 3DS target to .gitlab-ci.ymljdgleaver
2020-10-23OpenDingux: Fix makefile targetjdgleaver
2020-10-23Add build-time option to run the emulator in a thread instead of libco ↵jdgleaver
(fixes OpenDingux target)
2020-10-08Update Makefiletwinaphex
2020-10-08Update MakefileAutechre
2020-05-27Cleanuptwinaphex
2020-05-27Fix OSX PPC buildtwinaphex
2020-02-29[3DS] Fix dynarec prefetch abortsJustin Weiss
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.
2019-10-24Use OPTIMIZE for compiling libco toobmaupin
In case it needs to be debugged
2019-10-20Get dynarec working again for PSPbmaupin
2019-10-03Fix compiler warning for strict aliasingbmaupin
2019-09-13Fix compilation on PSPbmaupin
2019-09-02(tvOS) Compile using tvOS SDKYoshi Sugawara
2018-11-01Added A7A7Ryan 'Swingflip' Hamlin
2018-01-10Add Switch targettwinaphex
2017-10-02support for iOS arm64 buildYoshi Sugawara
2016-12-09Report git version with library_versionGregor Richards
2016-10-03(VITA) Dynarec workingFrancisco José García García
2016-09-29(VITA) Change libco and some optimizationsFrancisco José García García
2016-09-07Update Makefiletwinaphex
2016-08-14(VITA) Set thumb modeFrancisco José García García
2016-08-07(Vita) Try to enable dynarectwinaphex
2016-05-24Removed redundant CFLAG and added Rpi3 platformvanfanel
2016-03-04Add gcw0 targettwinaphex
2016-02-27Add rpi 2 and rpi 1 platform definitionsvanfanel
2016-01-18(3DS) remove the now unused libkhax.aliaspider
2015-11-04(3ds) dynarec: map the translation caches to specific addresses ataliaspider
runtime, increases compatibility with loaders that can reloacate each program section seperately. move the svc enabling functions to the frontend.
2015-10-24(vita) build fixaliaspider
2015-10-16Add iOS 9 rulestwinaphex
2015-09-14(CTR/3DS) fix the 'all' target not being the default target.aliaspider
2015-09-11(3DS) add dynarec support when started from a .cia installaliaspider
use libkhax for ninjhax 1.0
2015-08-31(Vita) Add Vita targettwinaphex
2015-08-01(OSX) Lower requirements to 10.1twinaphex