summaryrefslogtreecommitdiff
path: root/cpu.h
AgeCommit message (Collapse)Author
2021-03-26Move OAM update flag to a registerDavid Guillen Fandos
Fix a small bug in MIPS dynarec that affects non -G0 targets
2021-03-23Move caches to stub files to get around gcc 10David Guillen Fandos
Seems that using the __atribute__ magic for sections is not the best way of doing this, since it injects some default atributtes that collide with the user defined ones. Using assembly is far easier in this case. Reworked definitions a bit to make it easier to import from assembly. Also wrapped stuff around macros for easy and less verbose implementation of the symbol prefix issue.
2021-03-23Make ewram memory linealDavid Guillen Fandos
This saves a few cycles in MIPS and simplifies a bit the core. Removed the write map, only affects interpreter performance very minimally. Rewired ARM and x86 handlers to support direct access to I/EWRAM (and VRAM on ARM) to compensate. Overall performance is slightly better but code is cleaner and allows for further improvements in the dynarecs.
2021-03-17Enable runtime dynarec enable/disableDavid Guillen Fandos
Added a more thorough cache cleanup for reset/mode-change too. Fixed the mmap initialization that ends up leaking memory. Minor x86 asm fixes for Android.
2021-03-17Remove BIOS reserved translation areaDavid Guillen Fandos
This is not really necessary since it can share area with ROM. Performance impact should be very minimal (haven't noticed it myself) and could be compensated (even by a positive offset) if we bump the ROM cache area size. Tested with several dynarecs.
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-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.
2019-10-03Reenable native file IO on PSPbmaupin
2016-08-08(VITA) Dynarec WIPFrancisco José García García
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-09-20(CTR/3DS) using a heap allocator with a size determined at runtime canaliaspider
remove the static memory limitation, no need to use the smaller dynarec buffer size.
2015-07-30Cleanupstwinaphex
2015-04-16(CTR/3DS) reduce the size of the preallocated memory used by the dynamicaliaspider
recompiler.
2014-12-20Get rid of function_ccTwinaphex
2014-12-10cleanupsaliaspider
2014-12-10add a HAVE_MMAP check, cleanups.aliaspider
2014-12-10implement retro_serialize/unserializealiaspider
2014-12-09dynamic recompiler now works when the core is compiled as a sharedaliaspider
library.
2011-09-06enable -Wall and fix warnings reported by itnotaz
2011-09-03fix some warningsnotaz
2011-09-03get rid of GP2X_BUILD checks where they are not really needednotaz
2009-05-21original source from gpsp09-2xb_src.tar.bz2notaz