aboutsummaryrefslogtreecommitdiff
path: root/src/ARMInterpreter_ALU.cpp
Commit message (Collapse)AuthorAge
* Refactor `NDS` and `DSi` to be objects (#1893)Jesse Talavera-Greenberg2023-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * First crack at refactoring NDS and DSi into objects - Remove all global/`static` variables in `NDS` and related classes - Rely more on virtual dispatch when we need to pick methods at runtime - Pass `NDS&` or `DSi&` to its constituent components where necessary - Introduce some headers or move some definitions to break `#include` cycles * Refactor the frontend to accommodate the core's changes * Move up `SchedList`'s declaration - Move it to before the components are initialized so the `map`s inside are initialized - Fields in C++ are initialized in the order they're declared * Fix a crash when allocating memory * Fix JIT-free builds * Fix GDB-free builds * Fix Linux builds - Explicitly qualify some member types in NDS, since they share the same name as their classes * Remove an unnecessary template argument - This was causing the build to fail on macOS * Fix ARM and Android builds * Rename `Constants.h` to `MemConstants.h` * Add `NDS::IsRunning()` * Use an `#include` guard instead of `#pragma once`
* Move all core types into namespaces (#1886)Jesse Talavera-Greenberg2023-11-25
| | | | | | | | * Reorganize namespaces - Most types are now moved into the `melonDS` namespace - Only good chance to do this for a while, since a big refactor is next * Fix the build
* update copyright yearsArisotura2023-11-04
|
* ehhh got that one wrong, now it should be rightRSDuck2023-01-06
|
* hopefully correct overflow flag for ADC and SBCRSDuck2023-01-06
| | | | also use inline functions instead of macros to make things more neat
* update copyright headersArisotura2022-01-09
|
* Implement NO$GBA debug registers. (#1110)Pedro2021-05-27
| | | | | | | | | | | | | | | * Implement NO$GBA debug registers. NO$GBA comes with 4 debug registers that allow a ROM to print text to the emulator terminal and 2 other status registers, one with the name of the emulator and the other with the clock cycles count. This commit implements them for the ARMv5 processor. Some small things to note: - `NocashPrint` was changed and now it takes an address to _the string_ instead of the flags before it (those don't do anything anyways). - The "Emulation ID" register contains the string "melonDS " followed by version, _not_ "NO$GBA" * Fix styling issue and improve comment regarding NO$GBA message flags
* update copyright year and add missing GPL headersRSDuck2021-03-12
|
* Fix edge case in the division engine, fix edge case in the CPU (#1003)wheremyfoodat2021-02-19
| | | | | | | * Fixed division edge case: Div64/32 and Div64/64 set the remainder to 0 if dividend == INT64_MIN && divisor == -1 * Fixed CPU edge case where ARM9 ALU ops would switch to Thumb even when they shouldn't * Only clear the lowest bit of the jump address in ALU ops with rd==15 (on recommendation of RSDuck)
* implement carry setting ALU op with immRSDuck2020-07-25
|
* fix #672RSDuck2020-07-25
|
* update copyright yearsArisotura2020-02-14
|
* fix 'shift by register' operands: always only take the lower 8 bits of the ↵Arisotura2019-06-27
| | | | | | register, fix handling for LSL/LSR >32 fixes #479
* also, update copyright nameArisotura2019-01-22
|
* make nocashprint work from ARM code too.StapleButter2018-12-31
| | | | fixes #315
* add nocashPrint type shitStapleButter2018-12-12
|
* begin work on general timing renovation. way shitty because it behaves as if ↵StapleButter2018-12-04
| | | | caches were off, so everything will be slow as shit.
* fixor copyright years.StapleButter2018-09-15
|
* fix SMULWx/SMLAWx. fixes #78, finallyStapleButter2017-12-29
|
* fix some shitStapleButter2017-06-13
|
* * send undefined instructions to the proper exception handlerStapleButter2017-06-13
| | | | * make ARM9-only instructions fail on ARM7
* fix QADD/QSUB/QDADD/QDSUB, those would write their result to the wrong register.StapleButter2017-06-13
| | | | also make them ARM9-only.
* allow crapoed THUMB hireg ADD/CMP/MOVStapleButter2017-03-31
|
* reorganize repo, move shit aroundStapleButter2017-03-16