summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dyncom (follow)
Commit message (Collapse)AuthorAgeFilesLines
* arm: General cleanupLioncash2015-02-135-94/+57
| | | | | | | - Remove several typedefs for ARMul_State. - Remove unused functions - Remove unused/unnecessary headers - Removed unused enums, etc.
* dyncom: Switch the app and system cores into the correct mode at initializationLioncash2015-02-133-10/+15
|
* dyncom: Clean up the constructorLioncash2015-02-131-7/+4
| | | | Some function calls aren't necessary and would be handled by regular initialization routines.
* dyncom: Remove warning for SXTAHLioncash2015-02-131-1/+0
| | | | This is tested to work correctly.
* arm: Remove ARMul_EmulateInitLioncash2015-02-121-6/+1
| | | | This was only used for armemu, which has since been removed. Removed components related to this as well.
* Merge pull request #559 from lioncash/cleanbunnei2015-02-111-2/+2
|\ | | | | arm: Some cleanup. Also fixed the initial ARM mode that is emulated.
| * arm: Get rid of some magic constants. Specify proper ARM mode.Lioncash2015-02-111-2/+2
| | | | | | | | Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
* | Asserts: break/crash program, fit to style guide; log.h->assert.harchshift2015-02-111-0/+1
| | | | | | | | | | | | | | Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
* | arm_dyncom_thumb: Make lookup tables staticLioncash2015-02-101-7/+7
|/ | | | These don't need to be recreated all the time.
* dyncom: Add more regs to MCR/MRCLioncash2015-02-101-17/+32
| | | | Adds the registers that were left out of some coprocessor ranges.
* Scheduler refactor Pt. 1Kevin Hartman2015-02-102-56/+11
| | | | | | | | | | | | | * Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid for a thread at any given point in the system. * Removes dead code from thread.cpp. * Moves the implementation of resetting a ThreadContext to the corresponding core's implementation. Other changes: * Fixed comments in arm interfaces. * Updated comments in thread.cpp * Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp. * Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation.
* dyncom: Remove more unnecessary codeLioncash2015-02-031-45/+3
|
* core: Fix some warnings on OSXLioncash2015-02-031-2/+4
|
* arm: Clean up ARMul_StateLioncash2015-02-011-6/+3
| | | | Remove unnecessary/unused struct variables.
* arm: Adios armemuLioncash2015-02-011-4/+0
|
* dyncom: clean up arm_dyncom_dec.hLioncash2015-01-301-43/+2
|
* arm: Move headers over to pragma onceLioncash2015-01-302-8/+2
|
* arm: Get rid of armcpu.h and skyeye_types.hLioncash2015-01-303-4/+0
|
* dyncom: Minor cleanupLioncash2015-01-271-126/+137
| | | | Narrow scopes for the instruction variables. Remove unnecessary parentheses.
* dyncom: Minor cleanupLioncash2015-01-221-282/+270
| | | | Removes some unused macros and cleans up indentation inconsistencies
* dyncom: Clarify precedence for ternary statementsLioncash2015-01-201-1/+1
|
* dyncom: Implement missing shifts in ScaledRegisterPostIndexed, etcLioncash2015-01-191-7/+33
|
* dyncom: Handle the ARM A2 encoding of STRT/LDRTLioncash2015-01-171-10/+24
| | | | These were also missing the shifted register case.
* dyncom: Handle the ARM A2 encoding of LDRBT/STRBT.Lioncash2015-01-171-17/+15
|
* dyncom: Fix 32-bit ASR shifts for immediatesLioncash2015-01-121-5/+3
|
* dyncom: Remove unused flag macrosLioncash2015-01-121-15/+3
|
* dyncom: Get rid of unnecessary outer-scope variables in InterpreterMainLoopLioncash2015-01-121-97/+108
|
* dyncom: Fix overflow flag setting for ADD/RSB/RSC/SUB/SBCLioncash2015-01-121-38/+41
| | | | Also cleans up CMN, and CMP.
* dyncom: Add a helper function for addition with a carryLioncash2015-01-121-12/+9
|
* dyncom: Fix ADC overflow flag settingLioncash2015-01-121-8/+12
|
* dyncom: Fix conditional execution of MSRLioncash2015-01-121-29/+31
|
* Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner2015-01-092-4/+5
|
* DynCom: Add a comment to GetTicks.Subv2015-01-091-0/+1
|
* Timing: Use CoreTiming::GetTicks to keep track of ticks.Subv2015-01-092-6/+2
| | | | This will keep track of idle ticks for us, and fixes some tickcount-related issues
* dyncom: Fix UMAALLioncash2015-01-081-4/+4
| | | | These need to be done as a 64-bit operation.
* Merge pull request #442 from lioncash/smulbunnei2015-01-071-10/+7
|\ | | | | dyncom: Fix SMULWB/SMULWT
| * dyncom: Fix SMULWB/SMULWTLioncash2015-01-071-10/+7
| | | | | | | | Wasn't doing proper sign-extension
* | Merge pull request #425 from Subv/coretimingbunnei2015-01-071-1/+7
|\ \ | |/ |/| Ported the CoreTiming namespace from PPSSPP
| * CoreTiming: Ported the CoreTiming namespace from PPSSPPSubv2015-01-071-1/+7
| | | | | | | | | | | | Implemented the required calls to make it work. CoreTiming: Added a new logging class Core_Timing.
* | Merge pull request #438 from lioncash/swpbunnei2015-01-071-0/+1
|\ \ | | | | | | dyncom: Fix SWPB
| * | dyncom: Fix SWPBLioncash2015-01-071-0/+1
| | |
* | | dyncom: Move over SMLALXYLioncash2015-01-071-1/+56
|/ /
* | Merge pull request #417 from kevinhartman/exclusive-tag-fixbunnei2015-01-061-5/+7
|\ \ | |/ |/| Added exclusive reservation granule from ARMv7 spec to dyncom...
| * Added exclusive reservation granule from ARMv7 spec to dyncom to protect LDR/STREX.Kevin Hartman2015-01-061-5/+7
| |
* | dyncom: Partially emulate BXJLioncash2015-01-051-8/+25
| | | | | | | | Just in case some game studio let the intern write inline assembly or something.
* | dyncom: Actually set the Q flag for SMLABB/SMLABT/SMLATB/SMLATTLioncash2015-01-051-1/+2
| | | | | | | | Easy skyeye todo fix.
* | Merge pull request #418 from lioncash/qdbunnei2015-01-051-8/+103
|\ \ | | | | | | dyncom: Implement QADD/QSUB/QDADD/QDSUB
| * | dyncom: Implement QADD/QSUB/QDADD/QDSUBLioncash2015-01-051-8/+103
| | |
* | | skyeye: Remove duplicate typedefsLioncash2015-01-043-14/+14
|/ / | | | | | | citra already has its own typedefs like this.
* / dyncom: Implement SMLAWLioncash2015-01-031-1/+43
|/
* Merge pull request #395 from lioncash/revbunnei2015-01-031-45/+45
|\ | | | | dyncom: Implement REVSH
| * dyncom: Implement REVSHLioncash2015-01-031-45/+45
| | | | | | | | Also joins the REV ops into one common place.
* | dyncom: Implement SMLALD/SMLSLDLioncash2015-01-031-3/+72
|/
* Merge pull request #392 from lioncash/smbunnei2015-01-031-3/+64
|\ | | | | dyncom: Implement SMMLA/SMMUL/SMMLS
| * dyncom: Implement SMMLA/SMMUL/SMMLSLioncash2015-01-031-3/+64
| |
* | dyncom: Implemented LDREXD/STREXD/LDREXH/STREXHbunnei2015-01-033-227/+282
|/
* Merge pull request #390 from lioncash/wutbunnei2015-01-031-27/+0
|\ | | | | dyncom: Remove dead function InterpreterInitInstLength
| * dyncom: Remove dead function InterpreterInitInstLengthLioncash2015-01-031-27/+0
| | | | | | | | Technically eliminates two memory leaks as well.
* | dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSDLioncash2015-01-031-44/+73
|/
* dyncom: Implement SXTAB16 and SXTB16Lioncash2015-01-021-3/+58
|
* Merge pull request #379 from lioncash/shbunnei2015-01-021-8/+110
|\ | | | | dyncom: Implement SHADD8/SHADD16/SHSUB8/SHSUB16/SHASX/SHSAX
| * dyncom: Implement SHADD8/SHADD16/SHSUB8/SHSUB16/SHASX/SHSAXLioncash2015-01-011-8/+110
| |
* | dyncom: Implement SADD8/SSUB8Lioncash2015-01-011-55/+108
|/
* Merge pull request #375 from lioncash/uopsbunnei2014-12-311-9/+208
|\ | | | | dyncom: Implement UADD8/UADD16/USUB8/USUB16/UASX/USAX
| * dyncom: Implement UADD8/UADD16/USUB8/USUB16/UASX/USAXLioncash2014-12-311-9/+208
| |
* | dyncom: Massive refactorbunnei2014-12-311-514/+191
| |
* | Merge pull request #369 from darkf/mingw_bunnei2014-12-311-0/+8
|\ \ | |/ |/| Fix MinGW build (2)
| * Fix merge conflictsdarkf2014-12-308-6588/+6273
| |\
| * | Add comment regarding __WIN32__ in SkyEye codedarkf2014-11-291-0/+4
| | |
| * | Fix MinGW builddarkf2014-11-291-0/+4
| | |
* | | dyncom: Implement USAT16/SSAT16Lioncash2014-12-301-2/+61
| |/ |/|
* | dyncom: Implement USAT/SSATbunnei2014-12-301-2/+94
| |
* | dyncom: Various cleanups to match coding style, no functional changes.bunnei2014-12-304-7055/+5962
| |
* | Merge pull request #361 from lioncash/moreqopsbunnei2014-12-291-32/+42
|\ \ | | | | | | dyncom/armemu: Implement QADD8/QSUB8.
| * | dyncom: Implement QADD8/QSUB8Lioncash2014-12-291-32/+42
| | |
* | | dyncom: Fix SMLALXY's instruction labelsLioncash2014-12-291-2/+2
|/ / | | | | | | They were erroneously labeled as SMLAL.
* | dyncom: Implement UXTB16/UXTAB16Lioncash2014-12-291-2/+55
| |
* | vfp: Actually make the code somewhat readableLioncash2014-12-292-14/+109
| |
* | dyncom: Implement PKHBT and PKHTB.bunnei2014-12-281-2/+57
| |
* | dyncom: Implement USAD8/USADA8Lioncash2014-12-281-2/+52
| |
* | dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX.Lioncash2014-12-271-8/+97
| |
* | dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAXLioncash2014-12-271-11/+123
| |
* | ARM: Add a mechanism for faking CPU time elapsed during HLE.bunnei2014-12-262-49/+14
| | | | | | | | - Also a few cleanups.
* | dyncom: Move over QADD16/QASX/QSAX/QSUB16Lioncash2014-12-221-7/+87
| |
* | Merge pull request #322 from chinhodado/masterbunnei2014-12-223-9/+6
|\ \ | | | | | | More warning cleanups
| * | More warning cleanupsChin2014-12-213-9/+6
| | |
* | | dyncom: Move SEL overLioncash2014-12-221-1/+58
| | |
* | | Merge pull request #324 from lioncash/dyncbunnei2014-12-221-7/+102
|\ \ \ | | | | | | | | dyncom: Move over SASX/SSAX/SADD16/SSUB16
| * | | dyncom: Move over SASX/SSAX/SADD16/SSUB16Lioncash2014-12-221-7/+102
| |/ /
* | | Merge pull request #291 from purpasmart96/licensebunnei2014-12-213-3/+3
|\ \ \ | |/ / |/| | License change
| * | License changepurpasmart962014-12-213-3/+3
| | |
* | | dyncom: Implement UMAALLioncash2014-12-191-1/+47
|/ /
* | Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-131-99/+101
| |
* | Merge pull request #235 from yuriks/dyncom-mapbunnei2014-11-301-33/+15
|\ \ | | | | | | dyncom: Use unordered_map rather than the terrible 2-level bb_map
| * | dyncom: Use unordered_map rather than the terrible 2-level bb_mapYuri Kunde Schlesner2014-11-291-33/+15
| |/ | | | | | | | | | | Seems (probably just placebo/wishful thinking) to make it slightly faster. Also reduces memory usage and makes shutdown when debugging from MSVC fast.
* / arm_dyncom_interpreter: Get rid of unused var warningsLioncash2014-11-291-4/+2
|/
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-193-4/+4
|
* Fix documentation of parametersLioncash2014-11-181-1/+1
|
* ARM: Fixed dyncom to use reg15 for PC (this core doesn't use pc variable).bunnei2014-11-121-2/+2
| | | | - Fixes single stepping in debugger.
* ARM: Removed unnecessary goto with each instruction.bunnei2014-11-121-43/+39
|
* ARM: Fixed several dyncom bugs.bunnei2014-11-123-17/+25
| | | | | | | - Fixed NZCVT flags to properly save state when function returns. - Fixed counter to keep track of the actual number of instructions executed. - Fixed single-step mode to only execute one instruction at a time. - DefaultIni: Removed comment that no longer applied to dyncom.
* Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-261-7/+7
| | | | This was automated using `clang-modernize`.
* ARM: Removed unnecessary and unused SkyEye MMU code.bunnei2014-10-251-1/+0
| | | | Added license header back in. I originally removed this because I mostly rewrote the file, but meh
* ARM: Updated dyncom core to use fast label lookup table on clang.bunnei2014-10-251-3/+7
|
* ARM: Integrate SkyEye faster "dyncom" interpreter.bunnei2014-10-2510-0/+8124
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.