summaryrefslogtreecommitdiff
path: root/arm
AgeCommit message (Collapse)Author
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-18asm fixes for clangDavid Guillen Fandos
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-16Simplify open load handling for MIPS and fix other archesDavid Guillen Fandos
Also rewrite a bit memory handlers for smaller functions.
2021-03-16Move a few more registers to contextDavid Guillen Fandos
This gets rid of some more absolute addrs in the MIPS dynarec. Tested on several platforms, we should be good.
2021-03-15Move palettes around to simplify MIPS dynarecDavid Guillen Fandos
Will move also OAM structures to gain a few cycles per load/store. Loads can also be optimized for an extra instruction per access.
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-05ARM dynarec: Do not use the stack at allDavid Guillen Fandos
Fix a C func call while at it. This is a prerequisite to make the dynarec re-entrant and get rid of libco
2021-03-05Remove dead codeDavid Guillen Fandos
Turns out this was not even used! No need to fix it then!
2021-03-04Minor improvements in ARM stubsDavid Guillen Fandos
This gets rid of stack usage (except for callback invocations) in the dynarec execution code. A requirement to make the dynarec re-entrant.
2021-02-12Minor cleanup in ARM and MIPSDavid Guillen Fandos
Fix some small issues, mainly associated with undefined behaviour expressions
2021-02-10Move r15 to reg_a0 (instead of reg_mem)David Guillen Fandos
I think this does not make a difference at all in the code, since PC is treated in a special way anyway (reloaded with an immediate when read and treated as an indirect branch when written). However for the sake of completeness I'm undoing what I did. (The comma fix stays :P)
2021-02-10Fix ARM dynarecDavid Guillen Fandos
Turns out there were a couple of very interesting and hard to track bugs. A missing comma made the reg list too short, leaving the 31th element at the mercy of the linker ordering algorithm, which seems to work in some cases depending on the compiler version. Also the cache flush code seemed not to work on my machine (OGA), not sure why it wored in the past :/
2020-10-08Add more forward declarationstwinaphex
2020-10-08Add forward declarationstwinaphex
2016-10-03(VITA) Dynarec workingFrancisco José García García
2016-08-14(VITA) Dynarec WIPFrancisco José García García
2016-08-08(VITA) Dynarec WIPFrancisco José García García
2015-07-30Add MSB_FIRST ifdefstwinaphex
2014-12-20Get rid of function_ccTwinaphex
2014-12-11arm/video_blend.S - add another __MACH__ hacktwinaphex
2014-12-11(ARM ASM) Add __MACH__ hack to get iOS port linking for nowtwinaphex
2014-12-11Reimplement cache invalidation codetwinaphex
2014-12-11Remove warm, keep only fallback cache invalidation routine.twinaphex
Not available on iOS/Android, only probably there on OpenPandora. On top of that iOS 8+ deprecated the system() call, so would probably be becoming obsolete on that platform.
2014-12-11(iOS) Compatibility patches pt. 1twinaphex
2014-12-11(ARM ASM) Use .globl instead of .globaltwinaphex
2014-12-10warm.h - change linux/ioctl.h include into sys/ioctl.h includetwinaphex
2014-12-10Code nits - get rid of '== NULL' / '!= NULL'twinaphex
2014-12-10cleanupsaliaspider
2014-12-10Add macro parameter 'opcode' to some macrostwinaphex
2014-12-10fix compiler error: initializer element is not a compile-time constantaliaspider
2014-07-14Take out NEON CPU filterstwinaphex
2014-07-14Take out GIZMONDO/POCKETPC ifdefstwinaphex
2012-10-02integrate M-HT's neon scalersnotaz
2012-09-18merge an assorment of calc84maniac's fixes.notaz
2011-09-08handle div by 0notaz
2011-09-08use single literal pool in arm_stubnotaz
..to reduce dcache trashing
2011-09-08mask off arguments for write hadlersnotaz
newer gcc wants this
2011-09-06fix unaligned readnotaz
it's causing a fault on Linux
2011-09-06enable -Wall and fix warnings reported by itnotaz
2011-09-04drc: fix eabi alignmentnotaz
2011-09-03move warm toonotaz
2011-09-02move platform-independent stuff out of /gp2x.notaz