summaryrefslogtreecommitdiffstats
path: root/src/core/arm/skyeye_common (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-01-03arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei12-6168/+0
2017-10-23logging: Rename category "Core_ARM11" to "Core_ARM".bunnei5-71/+71
2017-08-21Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache.Subv1-1/+1
Fixes a few warnings.
2017-05-22fixup! Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.Subv2-4/+0
2017-05-14Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd.Subv1-2/+12
Previously we were letting vadd flush the value to positive 0, but there are cases where this behavior is wrong, for example, vsub: -0 - +0 = -0 vadd: -0 + +0 = +0 Now we'll flush the value to +0 inside vsub, and then negate it.
2017-05-09Dyncom/VFP: Strip the VFP_NAN_FLAG sentinel value when setting vfp exceptions.Subv2-2/+2
2017-05-09Revert "Remove `exceptions` parameter from `normaliseround` VFP functions"Subv3-57/+28
This reverts commit edf30d84cc0e8299d61c98f5bb40a6428d1576bc. Conflicts: src/core/arm/skyeye_common/vfp/vfp_helper.h src/core/arm/skyeye_common/vfp/vfpdouble.cpp src/core/arm/skyeye_common/vfp/vfpsingle.cpp
2017-05-08Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.Subv2-0/+30
Inputs are still not flushed to 0 if they are denormals.
2016-12-15gdbstub: Remove global variable from public interfaceLioncash1-1/+1
Currently, this is only ever queried, so adding a function to check if the server is enabled is more sensible. If directly modifying this externally is ever desirable, it should be done by adding a function to the interface, rather than exposing implementation details directly.
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner5-5/+5
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot5-9/+4
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner3-11/+11
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot11-1216/+870
2016-06-11arm_dyncom_interpreter: Rename anonymous enum to TransExtDataarchshift1-32/+32
2016-06-11Revert "Split huge interpreter source file into translation info and interpreter (+ some tiny misc style fixes)"archshift1-32/+32
2016-06-09arm_dyncom_interpreter.cpp: Split by translation and interpreter logicarchshift1-32/+32
To facilitate the split, some small changes were made to names of various structures and functions.
2016-05-18Remove `exceptions` parameter from `normaliseround` VFP functionsJannik Vogel3-28/+57
2016-05-18Fix exception propagation for VFP single precisionJannik Vogel2-33/+38
2016-05-18Fix exception propagation for VFP double precisionJannik Vogel2-34/+39
2016-05-16Fix ftoi behaviourJannik Vogel2-22/+53
2016-05-16Respect fpscr in ftoizJannik Vogel2-4/+4
2016-03-21armstate: Correct FIQ register bankingLioncash1-4/+3
FIQ has seven banked registers (R8 to R14), not two.
2015-12-06dyncom: Remove static keyword from header functionsLioncash1-16/+16
2015-12-06dyncom: const correctness changesLioncash1-4/+4
2015-11-29armstate: Zero out the registers on creationLioncash1-11/+11
std::array isn't always guaranteed to explicitly zero out it's contents without an initializer list.
2015-10-09CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.Emmanuel Gil Peyrot3-45/+45
The LOG_* function itself already appends one.
2015-10-04Implement gdbstubpolaris-2-0/+37
2015-09-20Implement gdbstubpolaris-2-0/+37
2015-09-16general: Silence some warnings when using clangLioncash1-1/+0
2015-09-11General: Replace NULL and '0' usages with nullptr where applicableLioncash2-28/+28
2015-09-06DynCom: Converted all 0xE condition code checks to ConditionCode::ALarchshift1-32/+32
2015-08-16Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner2-2/+0
These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next.
2015-08-16vfp: use std::swap where applicableLioncash2-12/+6
2015-08-11ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types.Emmanuel Gil Peyrot1-8/+9
2015-08-07arm_interface: Implement interface for retrieving VFP registersLioncash1-1/+1
2015-07-29dyncom: Handle the case where PC is the source register for STR/VSTM/VLDMLioncash1-20/+34
2015-07-28dyncom: Migrate exclusive memory access control into armstateLioncash1-3/+22
2015-07-26dyncom: Use std::array for register arraysLioncash1-24/+25
2015-07-26dyncom: Use ARMul_State as an objectLioncash7-801/+833
Gets rid of C-like parameter passing.
2015-07-26dyncom: Remove unnecessary initialization code.Lioncash3-52/+2
Targeting ARM version variants was only a thing on armemu. The reset routine also does basically the same thing as NewState.
2015-07-26dyncom: Remove unnecessary abort-related cruftLioncash1-45/+1
Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary.
2015-07-26dyncom: Rename armdefs.h to armstate.hLioncash6-24/+24
2015-07-26dyncom: Get rid of skyeye typedefsLioncash5-45/+40
2015-07-26dyncom: Move helper functions to their own headerLioncash4-38/+48
2015-07-26dyncom: Move arminit.cpp and armsupp.cpp into skyeye_commonLioncash2-0/+765
2015-07-26armdefs: Remove unnecessary extern keywordsLioncash1-25/+25
2015-06-29vfp: Change return type of VFPInit from unsigned int to void.Lioncash2-4/+2
2015-06-29vfp: Handle accesses to FPINST/FPINST2 system registersLioncash4-42/+53
Also has a side-benefit of correcting access to the FPEXC register.
2015-06-28Core, VideoCore: Replace or fix exit() calls.Emmanuel Gil Peyrot2-4/+6
2015-06-13vfp: Handle accesses to the VFP media feature registersLioncash3-4/+8
These are able to be accessed in any privilege mode.
2015-06-12vfp: Implement VMOVBCR/VMOVBRCLioncash2-5/+8
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2-5/+5
2015-05-24dyncom: Get rid of armemu.hLioncash2-47/+28
2015-05-23dyncom: remove load_r15 from arm_instLioncash1-128/+96
It's entirely unused. Also allows getting rid of more clunky macros.
2015-05-23VFP: Log as trace to get rid of spamming.bunnei1-23/+23
2015-05-21dyncom: Eliminate clang warningsLioncash2-5/+3
Gets rid of a whole load of missing brace initialization warnings.
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-1/+1
memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory.
2015-05-14vfp: Get rid of warningsLioncash2-6/+6
- Unary minus operator applied to unsigned type. - Unsafe use of bool.
2015-05-14dyncom: Remove unnecessary typedefsLioncash1-64/+64
2015-05-11vfp: Handle flush-to-zero mode.Lioncash3-84/+98
2015-05-08Remove unnecessary dyncom header filesLioncash3-71/+0
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-1/+0
2015-05-07Clean-up includesYuri Kunde Schlesner1-0/+2
2015-05-02Dyncom: Move cream cache to ARMul_State.bunnei1-0/+6
2015-04-20dyncom: Remove more unused/unnecessary codeLioncash2-64/+1
Gets rid of a sizeable amount of stuff in armdefs.
2015-04-18dyncom: Remove unused/unnecessary VFP cruftLioncash4-671/+7
2015-04-14Core_ARM11: Replace debug prints with our own logging functions in vfpsingle.Emmanuel Gil Peyrot2-39/+36
2015-04-07dyncom: Remove unnecessary enum and typedefLioncash1-25/+0
Also fixes descriptions in the process.
2015-04-06vfp: Make the FPSID values match the MPCoreLioncash1-7/+7
2015-04-06vfp: Get rid of the VFP_OFFSET macroLioncash5-64/+69
2015-04-06Move CP15 enum definitions into their own enum.Lioncash2-23/+19
Also gets rid of preprocessor mumbo-jumbo
2015-04-02dyncom: Move CP15 register writing into its own function.Lioncash2-0/+34
Also implements writing to the rest of the ARM11 MPCore CP15 register set.
2015-04-02dyncom: Move CP15 register reading into its own function.Lioncash2-5/+54
Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
2015-03-26dyncom: Migrate InAPrivilegedMode to armsuppLioncash1-0/+1
It's a generic helper function, so it should be here anyway.
2015-03-21armmmu: Remove unnecessary enum valuesLioncash1-30/+20
We don't need to care about XScale or Intel specific ARM stuff.
2015-03-17dyncom: Make Load/Store instructions support big endianLioncash3-30/+130
2015-03-04vfp: Get rid of warningsLioncash2-4/+4
2015-02-25arm: Remove unnecessary booleansLioncash1-18/+5
We don't care about any of these.
2015-02-18vfpinstr: Fix trivial signed/unsigned mismatch warningsLioncash1-4/+4
2015-02-15vfpdouble: Use %p for printing pointer addresses.Lioncash1-2/+2
2015-02-15arm: Set the A bit on reset.Lioncash1-1/+1
This enum value is ORed against in ARMul_Reset (and used to refer to all interrupt bits in the CPSR). So simply updating this is enough.
2015-02-13core: Apply static to local functionsLioncash1-32/+32
2015-02-13arm: General cleanupLioncash6-129/+57
- Remove several typedefs for ARMul_State. - Remove unused functions - Remove unused/unnecessary headers - Removed unused enums, etc.
2015-02-13dyncom: Switch the app and system cores into the correct mode at initializationLioncash1-2/+2
2015-02-13dyncom: Clean up the constructorLioncash1-5/+0
Some function calls aren't necessary and would be handled by regular initialization routines.
2015-02-12arm: Remove ARMul_EmulateInitLioncash2-9/+0
This was only used for armemu, which has since been removed. Removed components related to this as well.
2015-02-12armdefs: Remove unnecessary extern CLioncash1-6/+0
2015-02-11arm: Remove ARM26 support.Lioncash1-20/+0
This will never be used. 32-bit is the norm.
2015-02-11arm: Get rid of some magic constants. Specify proper ARM mode.Lioncash1-0/+7
Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
2015-02-11arm: Change some more constants into enumsLioncash2-21/+30
2015-02-10arm: Remove TRUE/FALSE definesLioncash2-16/+10
- Removed the Debug parameter from ARMul_State since it isn't used. - Changed ARMul_CoProInit to a void function. It always returned true.
2015-02-10dyncom: Add more regs to MCR/MRCLioncash1-1/+3
Adds the registers that were left out of some coprocessor ranges.
2015-02-10vfp: Normalize accumulator for multiply accumulate instructionsLioncash2-0/+6
2015-02-09vfpdouble: Fix the FTOUI NaN sign settingLioncash1-1/+1
This was fixed for vfpsingle, but not vfpdouble
2015-02-09Throw more unused/unnecessary VFP code outLioncash3-215/+1
2015-02-09vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuffLioncash4-192/+153
2015-02-09vfp_helper: Normalize tabs to spacesLioncash1-172/+170
2015-02-06vfp_helper: Remove unnecessary extern C blocksLioncash1-17/+1
2015-02-06vfp: Move FPSID, FPEXC, and FPSCR values over to enums.Lioncash3-150/+104
Also got rid of duplicate definitions of some of these values.
2015-02-04vfp: Fix VCVTLioncash1-6/+6
These variants exclusively read from the single precision regs and write to double-precision registers Fixes issues where converted values would be way off from what they should be due to the results being stored in the wrong registers.
2015-02-04vfp: Throw out unused codeLioncash2-1765/+0
2015-02-01vfp: Get rid of some compile warningsLioncash2-6/+3
2015-02-01arm: Clean up ARMul_StateLioncash1-110/+71
Remove unnecessary/unused struct variables.
2015-02-01arm: Adios armemuLioncash3-821/+108
2015-01-30arm: Move headers over to pragma onceLioncash5-23/+9
2015-01-30arm: Get rid of armcpu.h and skyeye_types.hLioncash2-109/+0
2015-01-30arm: Clean out armos.h and armmmu.hLioncash2-181/+23
2015-01-30arm: Throw out a lot of unnecessary codeLioncash3-279/+20
2015-01-30armdefs: Move some defines over to enumsLioncash1-131/+112
2015-01-27Update vfp.cppbunnei1-1/+1
VFP: Changed a debug log to trace.
2015-01-23vfp: Clean up vertical alignment for instructionsLioncash1-131/+125
2015-01-20dyncom: Clarify precedence for ternary statementsLioncash2-2/+2
2015-01-19Cleanup: Logging in CoreChin4-432/+151
2015-01-12vfp: Remove dead codeLioncash1-50/+14
2015-01-12dyncom: Add a helper function for addition with a carryLioncash1-0/+1
2015-01-06Added exclusive reservation granule from ARMv7 spec to dyncom to protect LDR/STREX.Kevin Hartman1-11/+11
2015-01-05dyncom: Implement QADD/QSUB/QDADD/QDSUBLioncash2-5/+6
2015-01-04skyeye: Remove duplicate typedefsLioncash1-27/+3
citra already has its own typedefs like this.
2015-01-03VFP: Minor cleanup, functionally the same.bunnei1-2587/+2476
2015-01-03dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSDLioncash2-1/+2
2014-12-31dyncom: Massive refactorbunnei1-140/+30
2014-12-30vfp: Get rid of a few warningsLioncash2-2/+2
2014-12-30vfp: Implement VMOVBRRSSLioncash3-12/+44
2014-12-30dyncom: Implement USAT/SSATbunnei1-0/+2
2014-12-30dyncom: Various cleanups to match coding style, no functional changes.bunnei1-32/+0
2014-12-29armemu: Implement QADD8/QSUB8Lioncash1-0/+5
2014-12-29vfp: Actually make the code somewhat readableLioncash3-1650/+944
2014-12-28dyncom: Implement USAD8/USADA8Lioncash2-1/+1
2014-12-28armemu: Fix underflows in USAD8/USADA8Lioncash1-0/+1
Initially reported by xdec.
2014-12-27dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX.Lioncash2-4/+5
2014-12-27armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAXLioncash1-0/+4
2014-12-23armemu: Set the Q flag properly for SMLAD/SMUADLioncash1-0/+1
2014-12-23armemu: Fix construction of the CPSRLioncash2-4/+5
2014-12-16armemu: Fix FTOUI NaN sign.Normmatt1-1/+1
2014-12-16armemu: Fix FSUBS bug where NaN shouldn't be negatedNormmatt1-1/+4
2014-12-15ARM: Pull some SkyEye fixes from 3dmoo.bunnei2-4/+4
2014-12-14Clean up armdefs.hLioncash1-306/+169
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner1-3/+1
2014-11-25Remove unused includes to common/thread.hEmmanuel Gil Peyrot1-2/+0
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-16/+18
All service calls in the CTR OS return result codes indicating the success or failure of the call. Previous to this commit, Citra's HLE emulation of services and the kernel universally either ignored errors or returned dummy -1 error codes. This commit makes an initial effort to provide an infrastructure for error reporting and propagation which can be use going forward to make HLE calls accurately return errors as the original system. A few parts of the code have been updated to use the new system where applicable. One part of this effort is the definition of the `ResultCode` type, which provides facilities for constructing and parsing error codes in the structured format used by the CTR. The `ResultVal` type builds on `ResultCode` by providing a container for values returned by function that can report errors. It enforces that correct error checking will be done on function returns by preventing the use of the return value if the function returned an error code. Currently this change is mostly internal since errors are still suppressed on the ARM<->HLE border, as a temporary compatibility hack. As functionality is implemented and tested this hack can be eventually removed.
2014-11-24Change some SkyEye defines to const intsYuri Kunde Schlesner2-34/+16
This prevents them from interfering with other constants defined in different namespaces.
2014-11-03Fix compilation errorsSean Maas1-2/+2
2014-11-02ARM: Merge latest VFP fixes from 3dmoo team.bunnei4-2096/+2388
2014-10-31Fix VFP compilation errors with gccYuri Kunde Schlesner1-12/+12
2014-10-26vfp_helper: Get rid of integer type redefinitionsLioncash1-7/+1
2014-10-25ARM: Removed unnecessary and unused SkyEye MMU code.bunnei2-118/+0
Added license header back in. I originally removed this because I mostly rewrote the file, but meh
2014-10-25ARM: Integrate SkyEye faster "dyncom" interpreter.bunnei6-38/+87
Fixed typo (make protected member public) Added license header back in. I originally removed this because I mostly rewrote the file, but meh ARM: Fixed a type error in dyncom interpreter. ARM: Updated dyncom to use unique_ptr for internal ARM state.
2014-10-25ARM: Reorganized file structure to move shared SkyEye code to a more common area.bunnei14-0/+11033
Removed s_ prefix