summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dyncom/arm_dyncom_interpreter.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* dyncom: Eliminate clang warningsLioncash2015-05-211-1/+1
| | | | Gets rid of a whole load of missing brace initialization warnings.
* Merge pull request #774 from lioncash/decodingsYuri Kunde Schlesner2015-05-151-28/+168
|\ | | | | dyncom: Add ARMv6K NOP and hint instructions to the interpreter.
| * dyncom: Add ARMv6K NOP and hint instructions to the decoding tableLioncash2015-05-141-12/+142
| |
| * dyncom: Handle some MSR variants individuallyLioncash2015-05-141-23/+32
| | | | | | | | This is necessary, as hint instructions will be recognized as MSR, which is pretty bad.
| * dyncom: Move exclusive load/stores above bbl and swi in the decoding tableLioncash2015-05-141-10/+11
| |
* | Merge pull request #770 from lioncash/dyncom_cleanbunnei2015-05-151-211/+196
|\ \ | | | | | | dyncom: Minor cleanup.
| * | dyncom: Remove duplicate enums/prototypesLioncash2015-05-141-7/+1
| | | | | | | | | | | | These are already defined in arm_dyncom_interpreter_dec.cpp.
| * | dyncom: Remove unnecessary definesLioncash2015-05-141-4/+4
| | | | | | | | | | | | These can simply be const vars.
| * | dyncom: Make translation-unit functions and variables staticLioncash2015-05-141-66/+64
| | |
| * | dyncom: Remove unnecessary typedefsLioncash2015-05-141-132/+133
| | |
| * | dyncom: Remove unused structsLioncash2015-05-141-8/+0
| |/
* / Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-151-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.
* dyncom: Fix decoding of BKPT's immediateLioncash2015-05-131-1/+1
| | | | A shift here is intended since the representation is imm12:imm4
* dyncom: Stub MCRR and MRRCLioncash2015-05-121-7/+68
| | | | | There's no other coprocessor outside the VFP (which has its own VMOV variants) in which the MPCore can send/retrieve data from. Stubbed so citra won't crash and burn on the odd chance someone actually tries to use these.
* dyncom: Remove an unnecessary variable in the interpreterLioncash2015-05-081-19/+17
| | | | All this was doing was needlessly aliasing a variable.
* HLE: Clean up SVC dispatch mechanismYuri Kunde Schlesner2015-05-061-2/+2
|
* Dyncom: Move cream cache to ARMul_State.bunnei2015-05-021-22/+9
|
* dyncom: Remove unnecessary enum and typedefLioncash2015-04-071-4/+4
| | | | Also fixes descriptions in the process.
* Merge pull request #685 from lioncash/cpregsbunnei2015-04-061-1/+0
|\ | | | | dyncom: Set the MPCore CP15 register reset values on initialization.
| * Move CP15 enum definitions into their own enum.Lioncash2015-04-061-1/+0
| | | | | | | | Also gets rid of preprocessor mumbo-jumbo
* | dyncom: Suppress uninitialized variable warningsLioncash2015-04-061-4/+4
|/ | | | The switch cases will always be hit, but this makes compilers stop complaining.
* dyncom: Move CP15 register writing into its own function.Lioncash2015-04-021-88/+2
| | | | 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-44/+3
| | | | Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
* dyncom: Migrate InAPrivilegedMode to armsuppLioncash2015-03-261-4/+0
| | | | It's a generic helper function, so it should be here anyway.
* dyncom: Implement SRSLioncash2015-03-241-1/+32
|
* dyncom: Implement RFELioncash2015-03-241-1/+30
|
* dyncom: Make Load/Store instructions support big endianLioncash2015-03-171-52/+62
|
* dyncom: Implement SETENDLioncash2015-03-151-1/+35
|
* dyncom: Minor cleanupLioncash2015-03-101-26/+7
| | | | Assemblers will exit with an error when trying to assemble instructions with disallowed registers.
* dyncom: Fix an indexing bug in STMLioncash2015-03-091-5/+4
| | | | Previously it would write the contents of register 13 for the case where the link register (r14) is supposed to be written.
* dyncom: General cleanup of STMLioncash2015-03-091-16/+14
|
* dyncom: Increment addr when accessing LR in LDMLioncash2015-03-091-0/+2
|
* Add profiling infrastructure and widgetYuri Kunde Schlesner2015-03-021-0/+8
|
* arm: The CP15 Main ID register is not writeableLioncash2015-02-261-3/+1
|
* Cleaned up unaligned access.Kevin Hartman2015-02-221-17/+2
|
* dyncom: Support conditional BKPT instructionsLioncash2015-02-171-1/+27
|
* dyncom: Actually set the destination register for USAD8/USADA8.Lioncash2015-02-161-0/+1
| | | | Idiotville: Population: 1 - Inhabitant name: Lioncash
* core: Apply static to local functionsLioncash2015-02-131-189/+190
|
* arm: General cleanupLioncash2015-02-131-74/+48
| | | | | | | - Remove several typedefs for ARMul_State. - Remove unused functions - Remove unused/unnecessary headers - Removed unused enums, etc.
* dyncom: Remove warning for SXTAHLioncash2015-02-131-1/+0
| | | | This is tested to work correctly.
* dyncom: Add more regs to MCR/MRCLioncash2015-02-101-17/+32
| | | | Adds the registers that were left out of some coprocessor ranges.
* dyncom: Remove more unnecessary codeLioncash2015-02-031-45/+3
|
* core: Fix some warnings on OSXLioncash2015-02-031-2/+4
|
* arm: Adios armemuLioncash2015-02-011-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
|
* dyncom: Fix UMAALLioncash2015-01-081-4/+4
| | | | These need to be done as a 64-bit operation.
* dyncom: Fix SMULWB/SMULWTLioncash2015-01-071-10/+7
| | | | Wasn't doing proper sign-extension
* 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-041-4/+4
|/ / | | | | | | 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-031-100/+182
|/
* 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-301-5604/+5460
| |\
| * | 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-301-6066/+5168
| |
* | 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-291-8/+41
| |
* | 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
| |
* | dyncom: Move over QADD16/QASX/QSAX/QSUB16Lioncash2014-12-221-7/+87
| |
* | Merge pull request #322 from chinhodado/masterbunnei2014-12-221-6/+6
|\ \ | | | | | | More warning cleanups
| * | More warning cleanupsChin2014-12-211-6/+6
| | |
* | | dyncom: Move SEL overLioncash2014-12-221-1/+58
| | |
* | | dyncom: Move over SASX/SSAX/SADD16/SSUB16Lioncash2014-12-221-7/+102
|/ /
* | 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
|/
* ARM: Removed unnecessary goto with each instruction.bunnei2014-11-121-43/+39
|
* ARM: Fixed several dyncom bugs.bunnei2014-11-121-14/+19
| | | | | | | - 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.
* 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-251-0/+6559
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.