summaryrefslogtreecommitdiffstats
path: root/src/core/arm/interpreter (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Dyncom: Move cream cache to ARMul_State.bunnei2015-05-021-2/+0
|
* dyncom: Remove more unused/unnecessary codeLioncash2015-04-201-22/+0
| | | | Gets rid of a sizeable amount of stuff in armdefs.
* dyncom: Remove unused/unnecessary VFP cruftLioncash2015-04-182-151/+8
|
* core: Migrate 3DS-specific CP15 register setting into InitLioncash2015-04-061-8/+0
|
* Move CP15 enum definitions into their own enum.Lioncash2015-04-062-144/+144
| | | | Also gets rid of preprocessor mumbo-jumbo
* dyncom: Properly return the value of the user RO thread registerLioncash2015-04-062-4/+10
|
* dyncom: Set CP15 reset values on initializationLioncash2015-04-061-0/+60
|
* dyncom: Move CP15 register writing into its own function.Lioncash2015-04-021-0/+229
| | | | Also implements writing to the rest of the ARM11 MPCore CP15 register set.
* dyncom: Move CP15 register reading into its own function.Lioncash2015-04-021-0/+196
| | | | Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
* dyncom: Migrate InAPrivilegedMode to armsuppLioncash2015-03-261-0/+6
| | | | It's a generic helper function, so it should be here anyway.
* dyncom: Make Load/Store instructions support big endianLioncash2015-03-171-0/+6
|
* arm: Remove unnecessary booleansLioncash2015-02-251-4/+0
| | | | We don't care about any of these.
* arm: General cleanupLioncash2015-02-132-4/+2
| | | | | | | - Remove several typedefs for ARMul_State. - Remove unused functions - Remove unused/unnecessary headers - Removed unused enums, etc.
* dyncom: Clean up the constructorLioncash2015-02-131-4/+3
| | | | Some function calls aren't necessary and would be handled by regular initialization routines.
* arm: Remove ARMul_EmulateInitLioncash2015-02-121-40/+0
| | | | This was only used for armemu, which has since been removed. Removed components related to this as well.
* arm: Remove ARM26 support.Lioncash2015-02-111-25/+4
| | | | This will never be used. 32-bit is the norm.
* arm: Get rid of some magic constants. Specify proper ARM mode.Lioncash2015-02-111-1/+1
| | | | Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
* arm: Remove TRUE/FALSE definesLioncash2015-02-102-12/+9
| | | | | - Removed the Debug parameter from ARMul_State since it isn't used. - Changed ARMul_CoProInit to a void function. It always returned true.
* arm: Clean up ARMul_StateLioncash2015-02-011-20/+9
| | | | Remove unnecessary/unused struct variables.
* arm: Adios armemuLioncash2015-02-018-7751/+56
|
* arm: Throw out a lot of unnecessary codeLioncash2015-01-303-1257/+36
|
* Cleanup: Logging in CoreChin2015-01-191-51/+6
|
* dyncom: Add a helper function for addition with a carryLioncash2015-01-121-0/+16
|
* Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner2015-01-092-4/+6
|
* dyncom: Implement QADD/QSUB/QDADD/QDSUBLioncash2015-01-051-12/+8
|
* armemu: Fix missing Q flag check for SMLSD.Lioncash2015-01-031-2/+6
|
* dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSDLioncash2015-01-032-5/+9
|
* Fix SADD8/SSUB8 in the armemuLioncash2015-01-011-50/+28
|
* dyncom: Implement USAT/SSATbunnei2014-12-301-0/+35
|
* armemu: Implement QADD8/QSUB8Lioncash2014-12-292-33/+95
|
* Merge pull request #355 from lioncash/simpbunnei2014-12-291-225/+142
|\ | | | | armemu: Simplify some instructions.
| * armemu: Simplify SSAT/SSAT16/SXTB/SXTABLioncash2014-12-281-71/+48
| |
| * armemu: Simplify REV/REV16/SXTH/SXTAHLioncash2014-12-281-38/+26
| |
| * armemu: Simplify USAT16/UXTB/UXTABLioncash2014-12-281-65/+42
| |
| * armemu: Simplify REVSH/UXTH/UXTAHLioncash2014-12-281-48/+23
| |
* | armemu: Fix PKHTB to do an arithmetic shift and correctly decode immediate field.bunnei2014-12-281-13/+5
| |
* | Merge pull request #354 from lioncash/usaduflowbunnei2014-12-282-4/+13
|\ \ | |/ |/| armemu: Fix underflows in USAD8/USADA8
| * armemu: Fix underflows in USAD8/USADA8Lioncash2014-12-282-4/+13
| | | | | | | | Initially reported by xdec.
* | armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAXLioncash2014-12-272-19/+89
|/
* armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAXLioncash2014-12-271-2/+73
|
* Merge pull request #339 from bunnei/fixup-gsp-synchbunnei2014-12-262-46/+11
|\ | | | | Fixup gsp synch
| * ARM: Add a mechanism for faking CPU time elapsed during HLE.bunnei2014-12-262-46/+11
| | | | | | | | - Also a few cleanups.
* | Merge pull request #343 from lioncash/smmlabunnei2014-12-261-2/+30
|\ \ | | | | | | armemu: Implement SMMUL, SMMLA, and SMMLS.
| * | armemu: Implement SMMUL, SMMLA, and SMMLS.Lioncash2014-12-251-2/+30
| |/
* | Merge pull request #341 from lioncash/moresmopsbunnei2014-12-261-2/+33
|\ \ | | | | | | armemu: Implement SMLALD/SMLSLD
| * | armemu: Implement SMLALD/SMLSLDLioncash2014-12-241-2/+33
| |/
* / armemu: Fix GE/Q flag setting semanticsLioncash2014-12-241-62/+56
|/
* armemu: Set the Q flag correctly for much of the other opsLioncash2014-12-231-8/+8
| | | | They were setting the old S flag.
* armemu: Set the Q flag properly for SMLAD/SMUADLioncash2014-12-232-13/+27
|
* Merge pull request #334 from lioncash/cpsrbunnei2014-12-231-1/+1
|\ | | | | armemu: Fix retrieval of the CPSR in MRS instructions.
| * armemu: Fix retrieval of the CPSR in MRS instructions.Lioncash2014-12-231-1/+1
| |
* | armemu: Properly set the Q flag for SSAT16/USAT16 upon saturation.Lioncash2014-12-231-9/+23
| |
* | armemu: Fix SELLioncash2014-12-231-1/+1
| | | | | | | | Needs to use the updated state of the CPSR.
* | armemu: Fix construction of the CPSRLioncash2014-12-232-11/+49
|/
* Merge pull request #291 from purpasmart96/licensebunnei2014-12-212-2/+2
|\ | | | | License change
| * License changepurpasmart962014-12-212-2/+2
| |
* | armemu: Implement SADD8/SSUB8Lioncash2014-12-211-14/+87
| |
* | Merge pull request #310 from lioncash/ssat16bunnei2014-12-201-14/+20
|\ \ | | | | | | armemu: Fix SSAT16.
| * | armemu: Fix SSAT16Lioncash2014-12-191-1/+1
| | | | | | | | | | | | The lower-bound would never be negative like it should
| * | armemu: Clean up naming and formatting for SSAT16Lioncash2014-12-191-14/+20
| |/
* | armemu: Should be using labs for USAD8/USADA8Lioncash2014-12-201-4/+4
| |
* | Merge pull request #311 from lioncash/usadabunnei2014-12-201-1/+24
|\ \ | | | | | | armemu: Implement USAD8 and USADA8
| * | armemu: Implement USAD8 and USADA8Lioncash2014-12-191-1/+24
| | |
* | | Merge pull request #313 from lioncash/smlsdbunnei2014-12-201-6/+10
|\ \ \ | | | | | | | | armemu: Implement SMLSD
| * | | armemu: Implement SMLSDLioncash2014-12-191-6/+10
| | |/ | |/|
* | | Merge pull request #314 from lioncash/qsax-qasxbunnei2014-12-201-7/+20
|\ \ \ | | | | | | | | armemu: Implement QASX and QSAX
| * | | armemu: Implement QASX and QSAXLioncash2014-12-191-7/+20
| |/ /
* | | Merge pull request #294 from lioncash/varbunnei2014-12-191-12/+9
|\ \ \ | | | | | | | | armemu: Narrow the scope of some variables in handle_v6_insn
| * | | armemu: Narrow the scope of some variables in handle_v6_insnLioncash2014-12-171-12/+9
| | | | | | | | | | | | | | | | There's no reason to have these in the outer-most scope.
* | | | Merge pull request #305 from lioncash/parenbunnei2014-12-191-4/+4
|\ \ \ \ | |_|/ / |/| | | armemu: Get rid of bitwise parenthesis warnings
| * | | armemu: Get rid of bitwise parenthesis warningsLioncash2014-12-181-4/+4
| | |/ | |/|
* | | Merge pull request #304 from lioncash/sflagsbunnei2014-12-181-4/+29
|\ \ \ | | | | | | | | armemu: Set GE flags properly for SSUB16, SADD16, SSAX, and SASX.
| * | | armemu: Set GE flags correctly for SSUB16, SADD16, SSAX, and SASX.Lioncash2014-12-181-4/+29
| |/ /
* | | armemu: Fix lower-bounds clamping for USAT16Lioncash2014-12-181-1/+6
| | |
* | | armemu: More concise names for USAT16-related variablesLioncash2014-12-181-11/+15
|/ /
* | Merge pull request #299 from lioncash/joinbunnei2014-12-181-34/+23
|\ \ | | | | | | Combine SSUB16, SADD16, SASX, and SSAX.
| * | armemu: Combine SSUB16, SADD16, SASX, and SSAX.Lioncash2014-12-181-34/+23
| | |
* | | Merge pull request #298 from lioncash/flagsbunnei2014-12-181-4/+22
|\ \ \ | | | | | | | | armemu: Unset GE flags for UADD8 if results are < 0x100
| * | | armemu: Unset GE flags for UADD8 if results are < 0x100Lioncash2014-12-171-4/+22
| | | | | | | | | | | | | | | | Reference manual states these must be set to zero if this case is true.
* | | | Merge pull request #295 from lioncash/umaalbunnei2014-12-181-3/+25
|\ \ \ \ | |_|/ / |/| | | armemu: Implement UMAAL
| * | | armemu: Implement UMAALLioncash2014-12-171-3/+25
| | |/ | |/|
* | | Merge pull request #292 from lioncash/backportsbunnei2014-12-181-19/+30
|\ \ \ | | | | | | | | Backport more skyeye fixes from 3dmoo
| * | | armemu: Fix PKHTBNormmatt2014-12-171-6/+12
| | | |
| * | | armemu: Implement REVSHNormmatt2014-12-171-5/+9
| | | |
| * | | armemu: Fix UXTAB/UXTAHNormmatt2014-12-171-4/+4
| | | |
| * | | armemu: Fix SXTABNormmatt2014-12-171-2/+2
| | | |
| * | | armemu: Fix SXTAHNormmatt2014-12-171-2/+3
| |/ /
* | / armemu: Fix SSUB16Lioncash2014-12-171-8/+8
| |/ |/| | | | | | | | | | | Broken from the same reason SADD16 was. The lo part of the result should only be constructed from the lo halfwords of rm and rn. The hi part of the result should only be constructed from the hi halfwords of rm and rn.
* | Merge pull request #293 from lioncash/sopsbunnei2014-12-171-8/+9
|\ \ | | | | | | armemu: Fix SADD16
| * | armemu: Fix SADD16Lioncash2014-12-171-8/+9
| |/ | | | | | | The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn.
* | Merge pull request #287 from lioncash/qaddsub16bunnei2014-12-171-33/+37
|\ \ | |/ |/| armemu: Join QADD16/QSUB16 and fix saturation clamping.
| * armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16.Lioncash2014-12-161-2/+2
| |
| * armemu: Join QADD16 and QSUB16 together.Lioncash2014-12-161-33/+37
| | | | | | | | The only difference between these ops is one adds and one subtracts. Everything is literally the same.
* | Merge pull request #289 from lioncash/smopsbunnei2014-12-171-38/+35
|\ \ | | | | | | Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well.
| * | armemu: Fix SMUAD, SMUSD, and SMLADLioncash2014-12-161-3/+3
| | | | | | | | | | | | Wrong values were being multiplied together.
| * | armemu: Join SMUAD, SMUSD, and SMLADLioncash2014-12-161-38/+35
| |/
* / armemu: Implement UXTAB16Lioncash2014-12-161-10/+25
|/
* armemu: Fix UXTB16Lioncash2014-12-151-12/+12
| | | | Rotation bits are 10 and 11, not 9 and 10.
* ARM: Pull some SkyEye fixes from 3dmoo.bunnei2014-12-151-415/+481
|
* Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-133-7/+7
|
* armemu: Fix SSAXLioncash2014-12-081-1/+1
|
* armemu: Fix SASXLioncash2014-12-081-1/+1
|
* armemu: Fix parenthesis warnings regarding bitwise opsLioncash2014-12-081-4/+4
|
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-192-3/+3
|
* Fix documentation of parametersLioncash2014-11-181-1/+1
|
* ARM: Merged additional ARMv6 instructions implemented by 3dmoo.bunnei2014-11-021-42/+234
|
* Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-261-11/+11
| | | | This was automated using `clang-modernize`.
* ARM: Removed unnecessary and unused SkyEye MMU code.bunnei2014-10-2518-7609/+326
| | | | Added license header back in. I originally removed this because I mostly rewrote the file, but meh
* ARM: Removed unused armos code from SkyEye.bunnei2014-10-253-746/+0
|
* ARM: Integrate SkyEye faster "dyncom" interpreter.bunnei2014-10-252-12/+5
| | | | | | | | | | 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.
* ARM: Reorganized file structure to move shared SkyEye code to a more common area.bunnei2014-10-2531-11069/+36
| | | | Removed s_ prefix
* core: Make the ARM disassembler use std::string internallyLioncash2014-09-061-6/+3
|
* Threading: Fix thread starting to execute first instruction correctly.bunnei2014-08-281-1/+1
|
* ARM: Remove a forgotten const in vfp.Emmanuel Gil Peyrot2014-08-202-2/+2
|
* ARM: Synchronize Citra's SkyEye core with 3dmoo's.bunnei2014-07-246-5919/+5303
|
* core: Kill off type redefenitions in armdefs.hLioncash2014-07-201-7/+0
|
* Merge branch 'threading' of https://github.com/bunnei/citrabunnei2014-06-143-20/+15
|\ | | | | | | | | | | Conflicts: src/core/hle/function_wrappers.h src/core/hle/service/gsp.cpp
| * arm: fixed a bug where ARM_Interpreter::ExecuteInstructions was actually executing one more instruction than expectedbunnei2014-06-051-1/+1
| |
| * arm: fixed bug in how thread context switch occurs with SkyEyebunnei2014-06-051-2/+5
| |
| * arm: reverting a change made with cb0663de - this has to have been a typo!bunnei2014-06-051-1/+1
| |
| * arm: added option to prepare CPU core (while mid-instruction) for thread reschedulebunnei2014-06-022-0/+8
| |
| * arm: removed unnecessary code when calling SVC from skyeyebunnei2014-05-301-16/+0
| |
* | Merge branch 'threading'bunnei2014-05-236-31/+94
|\|
| * arm_interpreter: fixed load context to currently resume a threadbunnei2014-05-231-1/+4
| |
| * arm: removed include of windows.h from armdefs.h to arminit.c (only module that uses it)bunnei2014-05-212-4/+3
| |
| * armemu: missed rename of "Syscall" to "SVC"bunnei2014-05-211-1/+1
| |
| * ARM_Interpreter/ARM_Interface: Fixed member variable naming to be consistent with style guidebunnei2014-05-212-40/+40
| |
| * ARM_Interface: added SaveContext and LoadContext functions for HLE thread switchingbunnei2014-05-212-0/+48
| |
| * VFP: disable DBG messages because they spam the console with unimportant skyeye junkbunnei2014-05-201-1/+1
| |
| * ignore thumbemu 0xDEADCODE debugging catch on MCRbunnei2014-05-171-2/+1
| |
| * Merge branch 'master' into threadingbunnei2014-05-174-15/+14
| |\
| * \ Merge master into threading to add support for VFPbunnei2014-05-1728-128/+15724
| |\ \
| * | | added option to set CPSR register to arm_interfacebunnei2014-05-122-0/+14
| | | |
* | | | Merge pull request #2 from archshift/issue-7-fixbunnei2014-05-204-10/+10
|\ \ \ \ | |_|_|/ |/| | | Fixes issues with building Citra on OSX
| * | | Fixed vfp issuesarchshift2014-05-174-10/+10
| | |/ | |/|
* / | updated how we call ARM core to make things much fasterbunnei2014-05-174-15/+14
|/ /
* | same fix as last commit - just for vfpsingle.cppbunnei2014-05-171-2/+2
| |
* | another VFP fix for GCCbunnei2014-05-171-2/+2
| |
* | fixed VFP DBG log for GCCbunnei2014-05-171-1/+1
| |
* | - reenabled MCR and MRC functions now that VFP is attachedbunnei2014-05-172-95/+92
| | | | | | | | - removed HLE::CallMCR function (was pointless)
* | - removed unused stubbed out codebunnei2014-05-175-33/+27
| | | | | | | | | | - fixed some compiler issues with xscale_copro when porting code to Windows - fixed some #include's
* | added maverick.cpp to ARM core from skyeyebunnei2014-05-161-0/+1206
| |
* | fixed includesbunnei2014-05-161-2/+2
| |
* | enabled CP_ACCESS_ALLOWEDbunnei2014-05-161-6/+4
| |
* | fixed include pathbunnei2014-05-161-1/+1
| |
* | removed undefined function ARMul_ConsolePrintbunnei2014-05-161-1/+1
| |
* | added missing armcopro from skyeyebunnei2014-05-163-251/+1093
| |
* | added missing skyeye mmu codebunnei2014-05-169-17/+3272
| |
* | fixed armmmu importsbunnei2014-05-161-5/+5
| |
* | - moved mmu to arm/interpreter folderbunnei2014-05-1613-0/+10304
|/ | | | - added initial VFP code from skyeye
* - disable strict alignment on LDRD/STRDbunnei2014-05-071-17/+22
| | | | - handle RD in STREX/STREXB
* - added CallMCR function to coprocessor HLE modulebunnei2014-05-021-22/+23
| | | | - moved instruction decoding to coprocessor HLE module
* renamed hle "mrc" module to "coprocessor"bunnei2014-05-021-8/+8
|
* removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable classbunnei2014-04-281-1/+0
|
* removed commented out line - this was for an unimplemented MRC call, no longer need to leave this herebunnei2014-04-281-1/+0
|
* moved HLE::MRC to its own module, added support for catching data synchronization barrier commandbunnei2014-04-252-3/+5
|
* added disassembly to unimplemented instructionbunnei2014-04-251-1/+6
|
* fixes to build on linuxbunnei2014-04-231-0/+2
|
* - added HLE to connect to "srv:" servicebunnei2014-04-131-33/+35
| | | | | | - added a manager for keeping track of services/ports - added a memory mapped region for memory accessed by HLE - added HLE for GetThreadCommandBuffer function
* hacked CPU interpreter to ignore branch on SVC instruction (as we are HLEing this...)bunnei2014-04-121-2/+6
|
* added a SETABORT method that does not update LR (for HLE'd SVC that does not jump appcore CPU to an IRQ vector)bunnei2014-04-121-0/+11
|
* base code to call a syscall from ARM11 appcorebunnei2014-04-111-0/+3
|
* cleaned up arm_interface, added a setter to set registers for use with HLE return valuesbunnei2014-04-112-6/+70
|
* fixed licensing and updated code style naming for arm_interface/arm_interpreter frontend modulebunnei2014-04-092-85/+46
|
* fixed project includes to use new directory structurebunnei2014-04-097-21/+20
|
* got rid of 'src' folders in each sub-projectbunnei2014-04-0916-0/+12762