aboutsummaryrefslogtreecommitdiff
path: root/src/ARMJIT_x64
Commit message (Collapse)AuthorAge
* don't add constant cycles if they're 0RSDuck2021-07-24
|
* add support for JIT profiling with VTuneRSDuck2021-07-24
|
* JIT: fix ldm with writeback loading rnRSDuck2021-07-24
|
* support allocating more registers for aarch64 JITRSDuck2021-06-29
| | | | also some minor fixes for the x64 JIT as well
* attempt at fixing #1037RSDuck2021-03-17
|
* update copyright year and add missing GPL headersRSDuck2021-03-12
|
* Fix some compiler warningsWaluigiWare642021-01-25
|
* JIT: handle STR post with rd == rnRSDuck2021-01-19
| | | | fixes Zelda Four Swords
* fix JIT block hash after a merged thumb BLRSDuck2021-01-05
| | | | fixes #928
* Rename jit linkage asm files (#836)webgeek12342020-12-01
| | | | An extension of lower case s indicates to not run the preprocessor while upper case S does. These files have defines.
* Add support for macOS (#771)WaluigiWare642020-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * use shm_open() instead of memfd_create() on macOS malloc.h isn't a header on macOS * Change OpenGL headers + create ifdef for DO_PROCLIST macOS seems to already have the OpenGL functions defined, without the ifdef, it gives "ambiguous references" errors. * macOS doesn't have ->gregs in uc_mcontext and it doesn't have REG_RIP either https://github.com/gperftools/gperftools/blob/master/m4/pc_from_ucontext.m4 * use getpid() to make memory file name unique * #ifndef __APPLE__ for AF_PACKET and linux/if_packet.h * Add include and link directories for macOS and link the OpenGL framework * Add macOS CI * Use newly added libslirp package from Homebrew https://github.com/Homebrew/homebrew-core/pull/63412 * Use Apple's Clang instead of GNU GCC on macOS * Add macOS build instructions to README * Try to fix macOS undefined symbol * snprintf doesn't take null terminator into account * Map new memory on macOS for JIT * Only use gcc-ar if using GNU Compiler * re-add fastmem code - whoops! * Fix style issue - use camelCase not snake_case * Set Minimum macOS version * Switch Minimum OS X version to 10.9 * Add macOS libpcap library name * fix memory leak * Fix binding keys in macOS * Allow getting MAC address on macOS melonDS on Linux uses AF_PACKET, which doesn't exist on macOS. Instead, this commit uses AF_LINK on macOS to get the MAC address. * Remove unneeded macOS CI dependencies * Build melonDS app bundle on macOS Now it is no longer required to install the libraries on macOS, they come with the app bundle. * fix macOS CI not being able to find macdeployqt * copy melonDS.app with recursive because it's a folder * Disable fastmem checkbox on macOS * Disable fastmem by default in config * forgot a semicolon * Don't bundle libraries, causes issues on macOS <10.15 * Update README + allow finding version in Finder on macOS * Make sure fastmem checkbox stays uncheckable
* JIT fixesRSDuck2020-11-09
| | | | | | | | - fix fastmem problems on linux - small fix memory leak - SlowWrite functions always take in a 32-bit variable so that the C compiler knows that the values aren't necessary zero extended - a few other stylistic things - handle SIGBUS as well (for macos)
* Fix a couple of wrong cpp function pointers. (#785)Filippo Scognamiglio2020-10-31
|
* Fix compilation issues on pedantic cpp compilers. (#783)Filippo Scognamiglio2020-10-31
| | | | | * Fix compilation issues on pedantic cpp compilers. * Avoid using fullblown static function.
* Random minor fixes (#757)Valeri2020-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix incorrect/questionable assert() usage Originally reported by https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2159000700, but also includes a bunch of other fixes. * Fix some `printf` warnings Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2160310550 * Remove useless check It is never passed thanks to `if (num_in < 1) {...; return}` before Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2154840804 * Add missing header guard, rename other to avoid conflicts Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2163210746 * Make DSi_SDDevice destructor virtual Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2158670642 * Use thread-safe localtime_r, assign `time` result directly Rule https://lgtm.com/projects/g/Arisotura/melonDS/?mode=tree&ruleFocus=2154840805 * Fix MinGW build It needs _POSIX_THREAD_SAFE_FUNCTIONS to export `localtime_r`
* remove some UBRSDuck2020-09-04
| | | | | | | - savestates used to read a four bytes from a single byte value - a few unassigned variables - some other things - also make the ROR macro an inline function
* subtract cycles after checking IRQ and HaltRSDuck2020-07-27
| | | | also switch back to adding to ARM::Cycles instead of subtracting from them
* x64 JIT: remove unecessary MOVRSDuck2020-07-27
|
* x64 JIT: generate patch trunk for RSCRATCH4RSDuck2020-07-25
| | | | I thought I already fixed this?
* implement carry setting ALU op with immRSDuck2020-07-25
|
* fix for fastmem when pc is used as immediateRSDuck2020-07-08
| | | | and (hopefully) make SIGSEGV handler work for aarch64 linux
* misc JIT changesRSDuck2020-07-08
|
* make linux work and fix a few bugsRSDuck2020-07-04
|
* reconcile DSi and JIT, fastmem for x64 and WindowsRSDuck2020-06-30
|
* make literal optimisation work againRSDuck2020-06-16
| | | | enable single register block load/store optimisations for x64 aswell
* first steps in bringing over the JIT refactor/fastmemRSDuck2020-06-16
|
* fix inlined IO register accessRSDuck2020-06-16
|
* allow allocating caller saved regs on windowsRSDuck2020-05-09
|
* allow allocating caller saved registersRSDuck2020-05-09
| | | | currently system-v only
* rewrite JIT memory emulationRSDuck2020-05-09
|
* fix regression from last commitRSDuck2020-04-26
| | | | also a small mistake with msr
* don't use param registers for ReadBanked/WriteBankedRSDuck2020-04-26
| | | | should fix linux build
* hopefully fix stack handling for linuxRSDuck2020-04-26
|
* implement msr and mrs for the x64 JITRSDuck2020-04-26
|
* compile UMULLs and some fixesRSDuck2020-04-26
|
* implement block linking + some refactoringRSDuck2020-04-26
| | | | currently only supported for x64
* include more information in DataRegionRSDuck2020-04-26
|
* improve nop handling and proper behaviour for LDM^RSDuck2020-04-26
| | | | fixes dslinux
* disable literal optimations in DTCMRSDuck2020-04-26
|
* make literal optimisation more reliableRSDuck2020-04-26
| | | | fixes spanish Pokemon HeartGold
* integrate changes from ARM64 backend and moreRSDuck2020-04-26
| | | | | | | | | - better handle LDM/STM in reg alloc - unify Halted and IRQ in anticipation for branch inlining - literal optimisations can be disabled in gui - jit blocks follow simple returns - fix idle loop detection - break jit blocks on IRQ (fixes saving in Pokemon White)
* decrease jit block cache address granularityRSDuck2020-04-26
| | | | | | | fixes Dragon Quest IX move code with side effects out of assert, fixes release build (thanks to m4wx for this one) also remove some leftovers of jit pipelining
* remove leftover debug codeRSDuck2020-04-26
|
* new block cache and much more...RSDuck2020-04-26
| | | | | | | | | - more reliable code invalidation detection - blocks aren't stopped at any branch, but are being followed if possible to get larger blocks - idle loop recognition - optimised literal loads, load/store cycle counting and loads/stores from constant addresses
* load register only if neededRSDuck2020-04-26
| | | | | - do thumb bl long merge in the first step - preparations for better branch jitting
* more fixes for flag optimisationRSDuck2020-04-26
| | | | + small cycle counting optimisation
* remove debug printingRSDuck2020-04-26
|
* fixes for flag optimisationRSDuck2020-04-26
|
* optimise away unneeded flag setsRSDuck2020-04-26
| | | | | - especially useful for thumb code and larger max block sizes - can still be improved upon
* abandon pipelining on jitRSDuck2020-04-26
| | | | | fixes Golden Sun Dawn this makes the cpu state incompatible between interpreter and JIT. That's why switching cpu mode requires a restart(not requiring is stupid anyway) and the pipeline is manually filled when making a save state.