summaryrefslogtreecommitdiffstats
path: root/src/core/arm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* logging: Rename category "Core_ARM11" to "Core_ARM".bunnei2017-10-237-86/+86
|
* Merge remote-tracking branch 'upstream/master' into nxbunnei2017-10-107-86/+80
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Conflicts: # src/core/CMakeLists.txt # src/core/arm/dynarmic/arm_dynarmic.cpp # src/core/arm/dyncom/arm_dyncom.cpp # src/core/hle/kernel/process.cpp # src/core/hle/kernel/thread.cpp # src/core/hle/kernel/thread.h # src/core/hle/kernel/vm_manager.cpp # src/core/loader/3dsx.cpp # src/core/loader/elf.cpp # src/core/loader/ncch.cpp # src/core/memory.cpp # src/core/memory.h # src/core/memory_setup.h
| * Moved down_count to CoreTimingHuw Pascoe2017-09-305-28/+2
| |
| * ARM_Interface: Implement PageTableChangedMerryMage2017-09-255-6/+34
| |
| * Merge pull request #2842 from Subv/switchable_page_tableB3n302017-09-151-1/+3
| |\ | | | | | | Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
| | * CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime.Subv2017-09-151-1/+3
| | |
| * | CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions.Subv2017-08-211-1/+1
| | |
| * | Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache.Subv2017-08-212-4/+4
| | | | | | | | | | | | Fixes a few warnings.
| * | Dyncom: Fixed a conversion warning when decoding thumb instructions.Subv2017-08-211-1/+1
| |/
* | arm_interface: Set TLS address for dynarmic core.bunnei2017-09-305-0/+32
| |
* | arm: Use 64-bit addressing in a bunch of places.bunnei2017-09-305-74/+107
|/
* Merge pull request #2692 from Subv/vfp_ftzSebastian Valle2017-05-222-0/+26
|\ | | | | Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.
| * fixup! Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.Subv2017-05-222-4/+0
| |
| * Dyncom/VFP: Convert denormal outputs into 0 when the FTZ flag is enabled.Subv2017-05-082-0/+30
| | | | | | | | Inputs are still not flushed to 0 if they are denormals.
* | Merge pull request #2694 from Subv/vfp_vsub_ftzMerry2017-05-221-2/+12
|\ \ | | | | | | Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd.
| * | Dyncom/VFP: Perform flush-to-zero on the second operand of vsub before sending it to vadd.Subv2017-05-141-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.
* | Merge pull request #2696 from Subv/vfp_revertYuri Kunde Schlesner2017-05-093-59/+30
|\ \ | | | | | | Dyncom/VFP: Revert edf30d8 and fix the FPSCR getting invalid values.
| * | Dyncom/VFP: Strip the VFP_NAN_FLAG sentinel value when setting vfp exceptions.Subv2017-05-092-2/+2
| | |
| * | Revert "Remove `exceptions` parameter from `normaliseround` VFP functions"Subv2017-05-093-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
* | Dyncom: Remove disassembler codeYuri Kunde Schlesner2017-05-083-1587/+2
| | | | | | | | | | | | Had licensing issue around it, in addition to several bugs. Closes #1632, #1280
* | Dyncom: Tweak types and log formattingYuri Kunde Schlesner2017-05-083-8/+10
| |
* | Remove unused symbols codeYuri Kunde Schlesner2017-05-082-44/+0
|/
* dyncom: Correct SXTAB16 and SXTB16MerryMage2017-02-181-4/+4
|
* arm_dynarmic: Update memory interfaceMerryMage2017-02-031-10/+10
|
* arm_dynarmic: CP15 supportMerryMage2017-02-034-5/+128
|
* Merge pull request #2366 from MerryMage/MemoryReadCodebunnei2016-12-221-0/+1
|\ | | | | arm_dynarmic: Provide MemoryReadCode callback
| * arm_dynarmic: Provide MemoryReadCode callbackMerryMage2016-12-221-0/+1
| | | | | | | | Change of interface in dynarmic 36082087ded632079b16d24137fdd0c450ce82ea
* | ThreadContext: Move from "core" to "arm_interface".bunnei2016-12-225-22/+21
|/
* gdbstub: Remove global variable from public interfaceLioncash2016-12-152-3/+3
| | | | | | | | | 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.
* core: Add missing #pragma once directives where applicableLioncash2016-12-151-0/+2
|
* Core: Add a forgotten #include <cstring> for memcpy.Emmanuel Gil Peyrot2016-12-111-0/+1
|
* dynarmic: Add ticks based on ticks executed, not ticks requestedMerryMage2016-11-261-2/+2
|
* Expose page table to dynarmic for optimized reads and writes to the JITJames Rowe2016-11-251-0/+1
|
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-2111-11/+11
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-2115-40/+18
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-196-16/+15
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-1822-6274/+5726
|
* Dyncom: Disable clang-format on the decoding table.Emmanuel Gil Peyrot2016-09-181-0/+3
|
* arm_dynarmic: Implement GetVFPSystemReg/SetVFPSystemReg.bunnei2016-09-151-5/+12
|
* arm: ResetContext shouldn't be part of ARM_Interface.bunnei2016-09-155-29/+0
|
* arm_dynarmic/arm_dyncom: Remove unnecessary "virtual" keyword.bunnei2016-09-152-2/+2
|
* dyncom: Use VFP_FPSCR/VFP_FPEXC.bunnei2016-09-151-4/+4
|
* dynarmic: Implement ARM CPU interface.bunnei2016-09-152-0/+227
|
* ARM: add ClearInstructionCache functionwwylele2016-08-273-0/+11
|
* dyncom: Read-after-write in SMLAMerryMage2016-08-221-2/+4
| | | | | In the case when RD === RN, RD was updated before AddOverflow was called to check for an overflow, resulting in an incorrect state of the Q flag.
* Dyncom: Correct implementation of STM for R15MerryMage2016-08-141-3/+4
|
* dyncom: Fix translation of thumb REVSHMerryMage2016-07-281-4/+13
|
* Make arm_dyncom_trans* into a fully fledged compilation unitarchshift2016-06-123-53/+71
|
* arm_dyncom_interpreter: slightly change AllocBuffer to be intuitivearchshift2016-06-121-15/+15
|
* arm_dyncom_interpreter: Add specialized GetAddressingOpLoadStoreT funcarchshift2016-06-112-39/+19
| | | | | | This allows us to get the addressing operation for STRT, LDRT, STRBT, and LDRBT. We do this so that translation functions don't need to see the addressing ops directly.
* arm_dyncom_interpreter: rename operation functions to fit style guidearchshift2016-06-112-34/+34
|
* arm_dyncom_interpreter: Rename anonymous enum to TransExtDataarchshift2016-06-114-166/+164
|
* arm_dyncom_interpreter.cpp: #include translation info from inc filesarchshift2016-06-113-2648/+2652
|
* Merge pull request #1568 from JayFoxRox/fix-printfMat M2016-05-273-26/+61
|\ | | | | Fix ftoi and disable VFPv3
| * Fix ftoi behaviourJannik Vogel2016-05-162-22/+53
| |
| * Respect fpscr in ftoizJannik Vogel2016-05-162-4/+4
| |
| * Disable VFP3 instructionsJannik Vogel2016-05-161-0/+4
| |
* | Remove `exceptions` parameter from `normaliseround` VFP functionsJannik Vogel2016-05-183-28/+57
| |
* | Fix exception propagation for VFP single precisionJannik Vogel2016-05-182-33/+38
| |
* | Fix exception propagation for VFP double precisionJannik Vogel2016-05-182-34/+39
| |
* | Fix read-after-write in SMUAD, SMLAD, SMUSD, SMLSDJannik Vogel2016-05-181-4/+8
| |
* | Set fpscr for new threadsJannik Vogel2016-05-171-0/+1
|/
* dyncom: Reset the context into user mode correctlyLioncash2016-05-091-1/+1
| | | | The other mode was system mode.
* Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner2016-04-291-7/+0
| | | | This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI.
* Fix BLX LR opcode interpretationmailwl2016-04-091-2/+3
|
* Update cpsr (T)humb bit while creating threadmailwl2016-04-081-1/+1
|
* Fix thumb ADR instruction alignmentmailwl2016-04-061-6/+2
|
* Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment2016-04-061-3/+2
|\ | | | | Common: Remove Common::make_unique, use std::make_unique
| * Common: Remove Common::make_unique, use std::make_uniqueMerryMage2016-04-051-3/+2
| |
* | Merge pull request #1618 from MerryMage/one-stepMathew Maidment2016-03-311-26/+57
|\ \ | | | | | | Prevent cache overflow when single stepping
| * | DynCom: Optimize single steppingMerryMage2016-03-301-26/+57
| |/
* / armstate: Correct FIQ register bankingLioncash2016-03-211-4/+3
|/ | | | FIQ has seven banked registers (R8 to R14), not two.
* ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode namerob turner2016-01-191-9/+9
|
* arm_dyncom_dec: Fix decoding of VMLSLioncash2015-12-302-206/+202
| | | | | | Previously, all VMLS variants would misdecode as CDP (which isn't necessarily wrong in itself, however VMLS has it's own label of execution)
* dyncom: Handle modifying the APSR via an MRC instructionLioncash2015-12-281-12/+9
|
* dyncom: Remove PC dispatch from several instructionsLioncash2015-12-211-94/+0
| | | | These instructions aren't capable of using the PC as a destination
* dyncom: Handle unprivileged load/store variants correctlyLioncash2015-12-201-7/+33
| | | | | | | LDRT/LDRBT/STRBT/STRT should simulate the load or store as if the host CPU is in user mode. STRT is also allowed to use the PC as an operand
* dyncom: Remove static keyword from header functionsLioncash2015-12-063-19/+19
|
* arm_interface: Make GetNumInstructions constLioncash2015-12-061-1/+1
|
* arm_interface: directly initialize class membersLioncash2015-12-061-7/+2
|
* dyncom: const correctness changesLioncash2015-12-063-7/+7
|
* armstate: Zero out the registers on creationLioncash2015-11-291-11/+11
| | | | | std::array isn't always guaranteed to explicitly zero out it's contents without an initializer list.
* Merge pull request #1122 from polaris-/gdbstubbunnei2015-11-123-9/+68
|\ | | | | gdbstub implementation
| * Remove unnecessary new lines, changed Deinit to Shutdownpolaris-2015-10-121-1/+0
| |
| * Use BreakpointAddress struct instead of passing address directlypolaris-2015-10-041-3/+3
| |
| * Implement gdbstubpolaris-2015-10-043-9/+69
| |
* | CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.Emmanuel Gil Peyrot2015-10-093-45/+45
|/ | | | The LOG_* function itself already appends one.
* general: Silence some warnings when using clangLioncash2015-09-161-1/+0
|
* General: Replace NULL and '0' usages with nullptr where applicableLioncash2015-09-113-30/+30
|
* DynCom: Converted all 0xE condition code checks to ConditionCode::ALarchshift2015-09-062-132/+132
|
* dyncom: Simplify some comparisons in CondPassedLioncash2015-08-261-4/+4
|
* dyncom: Change return type of CondPassed to boolLioncash2015-08-261-57/+39
|
* Integrate the MicroProfile profiling libraryYuri Kunde Schlesner2015-08-251-0/+7
| | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view.
* Merge pull request #1025 from yuriks/heap-managementYuri Kunde Schlesner2015-08-222-2/+0
|\ | | | | Kernel: Correct(er) handling of Heap and Linear Heap allocations
| * Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner2015-08-162-2/+0
| | | | | | | | | | These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next.
* | vfp: use std::swap where applicableLioncash2015-08-162-12/+6
|/
* Merge pull request #1027 from lioncash/debuggerbunnei2015-08-144-1/+49
|\ | | | | debugger: Add the ability to view VFP register contents
| * arm_interface: Implement interface for retrieving VFP registersLioncash2015-08-074-1/+49
| |
* | ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types.Emmanuel Gil Peyrot2015-08-114-305/+310
| |
* | arm_disasm: ARMv6 mul/div and abs media instructionsaroulin2015-08-112-1/+119
| | | | | | | | | | | | SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD, SMMLA, SMMUL, SMMLS USAD8, USADA8
* | arm_disasm: ARMv6 parallel add/sub media instructionsaroulin2015-08-112-0/+167
| | | | | | | | {S, U, Q, UQ, SH, UH}{ADD16, ASX, SAX, SUB16, ADD8, SUB8}
* | arm_disasm: ARMv6 reversal media instructionsaroulin2015-08-092-0/+26
| | | | | | | | | | REV, REV16, REVSH Only their ARM encoding, Thumb encoding is still missing.
* | arm_disasm: ARMv6 saturation media instructionsaroulin2015-08-092-2/+55
| | | | | | | | SSAT, SSAT16, USAT, USAT16
* | arm_disasm: ARMv6 packing and sign-extend media instructionsaroulin2015-08-092-1/+181
| | | | | | | | | | | | PKH, SEL SXTAB, SXTAB16, SXTB, SXTB16, SXTH, SXTAH UXTAB, UXTAB16, UXTB, UXTB16, UXTH, UXTAH
* | Merge pull request #1026 from lioncash/disasmLioncash2015-08-071-12/+4
|\ \ | |/ |/| arm_disasm: Remove unnecessary code
| * arm_disasm: Remove unnecessary codeLioncash2015-08-071-12/+4
| | | | | | | | This part of disassembly only determines the opcode, there's no need for offset calculation here.
* | Disassembler: ARMv6K REX instructionsaroulin2015-08-062-6/+97
| |
* | Disassembler: ARMv6K hint instructionsaroulin2015-08-062-0/+56
| |
* | Merge pull request #1008 from lioncash/pcbunnei2015-07-302-21/+40
|\ \ | | | | | | dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM
| * | dyncom: Handle the case where PC is the source register for STR/VSTM/VLDMLioncash2015-07-292-21/+40
| |/
* / dyncom: Remove an unused variableLioncash2015-07-291-3/+0
|/ | | | This was used prior to InterpreterTranslate existing.
* dyncom: Handle left-operand PC correctly for data-processing opsLioncash2015-07-291-7/+33
| | | | | | This is considered deprecated in the ARM manual (using PC as an operand), however, this is still able to be executed on the MPCore (which I'm quite sure would be rare to begin with).
* dyncom: Remove an unnecessary typedefLioncash2015-07-282-7/+5
|
* dyncom: Use enum class for instruction decoding resultsLioncash2015-07-285-41/+40
|
* dyncom: Remove code duplication regarding thumb instructionsLioncash2015-07-283-23/+12
|
* dyncom: Migrate exclusive memory access control into armstateLioncash2015-07-282-50/+35
|
* dyncom: Remove duplicated typedef and externLioncash2015-07-281-4/+0
| | | | These are already present in arm_dyncom_dec.h.
* dyncom: Use std::array for register arraysLioncash2015-07-262-28/+29
|
* dyncom: Use ARMul_State as an objectLioncash2015-07-2611-1102/+1022
| | | | Gets rid of C-like parameter passing.
* dyncom: Remove unnecessary initialization code.Lioncash2015-07-264-59/+2
| | | | | | Targeting ARM version variants was only a thing on armemu. The reset routine also does basically the same thing as NewState.
* dyncom: Remove unnecessary abort-related cruftLioncash2015-07-262-48/+1
| | | | Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary.
* dyncom: Rename armdefs.h to armstate.hLioncash2015-07-2613-31/+31
|
* dyncom: Get rid of skyeye typedefsLioncash2015-07-267-61/+55
|
* dyncom: Move helper functions to their own headerLioncash2015-07-269-41/+56
|
* dyncom: Move arminit.cpp and armsupp.cpp into skyeye_commonLioncash2015-07-262-0/+0
|
* armdefs: Remove unnecessary extern keywordsLioncash2015-07-261-25/+25
|
* dyncom: Pass SVC immediates directly.Lioncash2015-07-211-1/+2
| | | | Previously it would just re-read the already decoded instruction and extract the immediate value.
* dyncom: Properly retrieve the PC value in BX if used.Lioncash2015-07-201-3/+5
|
* Dyncom: Support for a missing ARMv6 Thumb MOV encodingYuri Kunde Schlesner2015-07-181-10/+4
|
* arm_dyncom_interpreter: Simplify assignment in SMLAWLioncash2015-07-171-1/+1
| | | | Also a side-benefit of not having implementation-defined behavior.
* Merge pull request #876 from linkmauve/include-cleanupsYuri Kunde Schlesner2015-07-114-4/+12
|\ | | | | Cleanup includes, mostly in common
| * Core, VideoCore: Replace or fix exit() calls.Emmanuel Gil Peyrot2015-06-282-4/+6
| |
| * Core: Cleanup core includes.Emmanuel Gil Peyrot2015-06-281-0/+5
| |
| * Common: Fix FileUtil includes, and everything relying on those.Emmanuel Gil Peyrot2015-06-281-0/+1
| |
* | vfp: Change return type of VFPInit from unsigned int to void.Lioncash2015-06-292-4/+2
| |
* | vfp: Handle accesses to FPINST/FPINST2 system registersLioncash2015-06-294-42/+53
|/ | | | Also has a side-benefit of correcting access to the FPEXC register.
* vfp: Handle accesses to the VFP media feature registersLioncash2015-06-133-4/+8
| | | | These are able to be accessed in any privilege mode.
* vfp: Implement VMOVBCR/VMOVBRCLioncash2015-06-122-5/+8
|
* arm_dyncom_thumb: Fix handling of writeback for thumb LDMIALioncash2015-06-041-5/+19
|
* arm_dyncom_thumb: Fix encoding of BKPT's immediateLioncash2015-06-011-1/+4
|
* arm_dyncom_thumb: Implement CPS and SETENDLioncash2015-06-011-0/+13
|
* arm_dyncom_thumb: Implement SXTH, SXTB, UXTH, and UXTB.Lioncash2015-06-011-0/+11
|
* arm_dyncom_thumb: Implement REV, REV16, and REVSH.Lioncash2015-06-011-2/+12
|
* Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot2015-05-296-24/+24
|
* Merge pull request #826 from lioncash/tablesYuri Kunde Schlesner2015-05-271-22/+11
|\ | | | | arm_dyncom_thumb: Merge STR/LDR table subsets.
| * arm_dyncom_thumb: Merge STR/LDR table subsets.Lioncash2015-05-271-22/+11
| |
* | arm_dyncom_interpreter: Remove unused variableLioncash2015-05-261-5/+1
| | | | | | | | Thum decoding directly checks if the thumb bit is set instead of using a temporary.
* | arm_dyncom_interpreter: Remove unused macroLioncash2015-05-251-1/+0
|/
* dyncom: Get rid of armemu.hLioncash2015-05-244-49/+29
|
* dyncom: Remove unused cpu parameter from decode_thumb_instrLioncash2015-05-231-3/+2
|
* dyncom: remove load_r15 from arm_instLioncash2015-05-232-490/+331
| | | | It's entirely unused. Also allows getting rid of more clunky macros.
* dyncom: Remove unnecessary parameter for load/store operationsLioncash2015-05-231-39/+39
|
* VFP: Log as trace to get rid of spamming.bunnei2015-05-231-23/+23
|
* dyncom: Eliminate clang warningsLioncash2015-05-214-406/+404
| | | | Gets rid of a whole load of missing brace initialization warnings.
* Merge pull request #772 from lioncash/warnbunnei2015-05-182-6/+6
|\ | | | | core/video_core: Fix a few warnings when compiling on MSVC.
| * vfp: Get rid of warningsLioncash2015-05-142-6/+6
| | | | | | | | | | - Unary minus operator applied to unsigned type. - Unsafe use of bool.
* | Merge pull request #774 from lioncash/decodingsYuri Kunde Schlesner2015-05-152-33/+191
|\ \ | | | | | | dyncom: Add ARMv6K NOP and hint instructions to the interpreter.
| * | dyncom: Add ARMv6K NOP and hint instructions to the decoding tableLioncash2015-05-142-12/+152
| | |
| * | dyncom: Handle some MSR variants individuallyLioncash2015-05-142-24/+41
| | | | | | | | | | | | 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-142-14/+15
| |/
* | Merge pull request #770 from lioncash/dyncom_cleanbunnei2015-05-152-275/+260
|\ \ | | | | | | 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-142-196/+197
| | |
| * | dyncom: Remove unused structsLioncash2015-05-141-8/+0
| |/
* / Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-153-3/+2
|/ | | | | | | 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: Removed irrelevant log.bunnei2015-05-141-2/+0
|
* dyncom: Fix decoding of BKPT's immediateLioncash2015-05-131-1/+1
| | | | A shift here is intended since the representation is imm12:imm4
* Merge pull request #752 from lioncash/flushbunnei2015-05-123-84/+98
|\ | | | | vfp: Handle flush-to-zero mode.
| * vfp: Handle flush-to-zero mode.Lioncash2015-05-113-84/+98
| |
* | 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.
* Merge pull request #728 from lioncash/varsLioncash2015-05-081-19/+17
|\ | | | | dyncom: Remove an unnecessary variable in the interpreter
| * dyncom: Remove an unnecessary variable in the interpreterLioncash2015-05-081-19/+17
| | | | | | | | All this was doing was needlessly aliasing a variable.
* | Remove unnecessary dyncom header filesLioncash2015-05-085-80/+2
|/
* Common: Remove common.hYuri Kunde Schlesner2015-05-073-2/+2
|
* Clean-up includesYuri Kunde Schlesner2015-05-072-0/+4
|
* HLE: Clean up SVC dispatch mechanismYuri Kunde Schlesner2015-05-061-2/+2
|
* Dyncom: Move cream cache to ARMul_State.bunnei2015-05-024-25/+18
|
* dyncom: Remove more unused/unnecessary codeLioncash2015-04-204-92/+1
| | | | Gets rid of a sizeable amount of stuff in armdefs.
* dyncom: Remove unused/unnecessary VFP cruftLioncash2015-04-186-822/+15
|
* Core_ARM11: Replace debug prints with our own logging functions in vfpsingle.Emmanuel Gil Peyrot2015-04-142-39/+36
|
* Headers: Add some forgotten overrides, thanks clang!Emmanuel Gil Peyrot2015-04-141-1/+1
|
* dyncom: Remove unnecessary enum and typedefLioncash2015-04-075-50/+30
| | | | Also fixes descriptions in the process.
* vfp: Make the FPSID values match the MPCoreLioncash2015-04-061-7/+7
|
* vfp: Get rid of the VFP_OFFSET macroLioncash2015-04-065-64/+69
|
* Merge pull request #685 from lioncash/cpregsbunnei2015-04-068-134/+212
|\ | | | | dyncom: Set the MPCore CP15 register reset values on initialization.
| * core: Migrate 3DS-specific CP15 register setting into InitLioncash2015-04-061-8/+0
| |
| * arm_interface: Support retrieval/storage to CP15 registersLioncash2015-04-063-0/+25
| |
| * Move CP15 enum definitions into their own enum.Lioncash2015-04-065-168/+163
| | | | | | | | 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: 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-024-88/+265
| | | | Also implements writing to the rest of the ARM11 MPCore CP15 register set.
* dyncom: Move CP15 register reading into its own function.Lioncash2015-04-024-49/+253
| | | | Keeps everything contained. Added all supported readable registers in an ARM11 MPCore.
* dyncom: Migrate InAPrivilegedMode to armsuppLioncash2015-03-263-4/+7
| | | | It's a generic helper function, so it should be here anyway.
* Merge pull request #674 from lioncash/sys-instrsbunnei2015-03-251-2/+62
|\ | | | | dyncom: Implement RFE and SRS.
| * dyncom: Implement SRSLioncash2015-03-241-1/+32
| |
| * dyncom: Implement RFELioncash2015-03-241-1/+30
| |
* | dyncom: Remove unused/unnecessary macros and macro constantsLioncash2015-03-242-39/+2
|/
* armmmu: Remove unnecessary enum valuesLioncash2015-03-211-30/+20
| | | | We don't need to care about XScale or Intel specific ARM stuff.
* Merge pull request #659 from lioncash/setendbunnei2015-03-205-83/+233
|\ | | | | Implement SETEND.
| * dyncom: Make Load/Store instructions support big endianLioncash2015-03-175-82/+198
| |
| * dyncom: Implement SETENDLioncash2015-03-151-1/+35
| |
* | arm_interface: Get rid of GetTicks.Lioncash2015-03-163-12/+0
|/ | | | Removes a TODO.
* 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
|
* Merge pull request #538 from yuriks/perf-statTony Wasserka2015-03-071-0/+8
|\ | | | | Add profiling infrastructure and widget
| * Add profiling infrastructure and widgetYuri Kunde Schlesner2015-03-021-0/+8
| |
* | vfp: Get rid of warningsLioncash2015-03-042-4/+4
|/
* Merge pull request #620 from lioncash/bkptbunnei2015-02-281-2/+3
|\ | | | | arm_disasm: Show conditional code for BKPT instructions.
| * arm_disasm: Show conditional code for BKPT instructions.Lioncash2015-02-281-2/+3
| | | | | | | | Changed cond_to_str to take a uint32, since unsigned numbers are only ever passed to it, and this can be a source of warnings for some compilers (also indexing an array without bounds checking a signed number is kind of iffy).
* | arm_disasm: Remove unused variableLioncash2015-02-281-2/+1
|/ | | | Also declared an array as static, as it's only used in this translation unit.
* arm: The CP15 Main ID register is not writeableLioncash2015-02-261-3/+1
|
* arm: Remove unnecessary booleansLioncash2015-02-252-22/+5
| | | | We don't care about any of these.
* Cleaned up unaligned access.Kevin Hartman2015-02-221-17/+2
|
* Merge pull request #582 from lioncash/warningsbunnei2015-02-181-4/+4
|\ | | | | vfpinstr: Fix trivial signed/unsigned mismatch warnings
| * vfpinstr: Fix trivial signed/unsigned mismatch warningsLioncash2015-02-181-4/+4
| |
* | Merge pull request #579 from lioncash/bkptbunnei2015-02-182-2/+28
|\ \ | |/ |/| dyncom: Support conditional BKPT instructions
| * dyncom: Support conditional BKPT instructionsLioncash2015-02-172-2/+28
| |
* | Merge pull request #574 from lioncash/warnbunnei2015-02-161-2/+2
|\ \ | |/ |/| vfpdouble: Use %p for printing pointer addresses.
| * vfpdouble: Use %p for printing pointer addresses.Lioncash2015-02-151-2/+2
| |
* | dyncom: Actually set the destination register for USAD8/USADA8.Lioncash2015-02-161-0/+1
|/ | | | Idiotville: Population: 1 - Inhabitant name: Lioncash
* arm: Set the A bit on reset.Lioncash2015-02-151-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.
* core: Apply static to local functionsLioncash2015-02-135-221/+227
|
* arm: General cleanupLioncash2015-02-1313-227/+116
| | | | | | | - 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-134-12/+17
|
* dyncom: Clean up the constructorLioncash2015-02-133-16/+7
| | | | 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-124-55/+1
| | | | This was only used for armemu, which has since been removed. Removed components related to this as well.
* armdefs: Remove unnecessary extern CLioncash2015-02-121-6/+0
|
* arm: Remove ARM26 support.Lioncash2015-02-112-45/+4
| | | | This will never be used. 32-bit is the norm.
* Merge pull request #559 from lioncash/cleanbunnei2015-02-114-24/+40
|\ | | | | 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-113-3/+10
| | | | | | | | Initially, we were starting the emulator in USER26MODE, which is incorrect, this should be USER32MODE.
| * arm: Change some more constants into enumsLioncash2015-02-112-21/+30
| |
* | Asserts: break/crash program, fit to style guide; log.h->assert.harchshift2015-02-112-1/+2
| | | | | | | | | | | | | | 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.
* | Merge pull request #556 from lioncash/cleanbunnei2015-02-114-28/+19
|\| | | | | arm: Remove TRUE/FALSE defines
| * arm: Remove TRUE/FALSE definesLioncash2015-02-104-28/+19
| | | | | | | | | | - Removed the Debug parameter from ARMul_State since it isn't used. - Changed ARMul_CoProInit to a void function. It always returned true.
* | arm_dyncom_thumb: Make lookup tables staticLioncash2015-02-101-7/+7
|/ | | | These don't need to be recreated all the time.
* Merge pull request #553 from lioncash/denormbunnei2015-02-102-0/+6
|\ | | | | vfp: Normalize accumulator for multiply accumulate instructions
| * vfp: Normalize accumulator for multiply accumulate instructionsLioncash2015-02-102-0/+6
| |
* | dyncom: Add more regs to MCR/MRCLioncash2015-02-102-18/+35
|/ | | | Adds the registers that were left out of some coprocessor ranges.
* Scheduler refactor Pt. 1Kevin Hartman2015-02-103-56/+20
| | | | | | | | | | | | | * 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.
* vfpdouble: Fix the FTOUI NaN sign settingLioncash2015-02-091-1/+1
| | | | This was fixed for vfpsingle, but not vfpdouble
* Throw more unused/unnecessary VFP code outLioncash2015-02-093-215/+1
|
* vfp_helper: Convert some flags to enums. Throw out more duplicated FPSCR stuffLioncash2015-02-094-192/+153
|
* vfp_helper: Normalize tabs to spacesLioncash2015-02-091-172/+170
|
* vfp_helper: Remove unnecessary extern C blocksLioncash2015-02-061-17/+1
|
* vfp: Move FPSID, FPEXC, and FPSCR values over to enums.Lioncash2015-02-063-150/+104
| | | | Also got rid of duplicate definitions of some of these values.
* Merge pull request #537 from lioncash/vfpbunnei2015-02-041-6/+6
|\ | | | | vfp: Fix VCVT
| * vfp: Fix VCVTLioncash2015-02-041-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.
* | Merge pull request #536 from lioncash/deadbunnei2015-02-042-1765/+0
|\ \ | |/ |/| vfp: Throw out unused code
| * vfp: Throw out unused codeLioncash2015-02-042-1765/+0
| |
* | dyncom: Remove more unnecessary codeLioncash2015-02-031-45/+3
|/
* core: Fix some warnings on OSXLioncash2015-02-031-2/+4
|
* Merge pull request #525 from lioncash/armwarnbunnei2015-02-012-6/+3
|\ | | | | vfp: Get rid of some compile warnings
| * vfp: Get rid of some compile warningsLioncash2015-02-012-6/+3
| |
* | arm: Clean up ARMul_StateLioncash2015-02-013-136/+83
|/ | | | Remove unnecessary/unused struct variables.
* arm: Adios armemuLioncash2015-02-0112-8576/+164
|
* dyncom: clean up arm_dyncom_dec.hLioncash2015-01-301-43/+2
|
* arm: Move headers over to pragma onceLioncash2015-01-307-31/+11
|
* arm: Get rid of armcpu.h and skyeye_types.hLioncash2015-01-305-113/+0
|
* arm: Clean out armos.h and armmmu.hLioncash2015-01-302-181/+23
|
* arm: Throw out a lot of unnecessary codeLioncash2015-01-306-1536/+56
|
* armdefs: Move some defines over to enumsLioncash2015-01-301-131/+112
|
* dyncom: Minor cleanupLioncash2015-01-271-126/+137
| | | | Narrow scopes for the instruction variables. Remove unnecessary parentheses.
* Update vfp.cppbunnei2015-01-271-1/+1
| | | VFP: Changed a debug log to trace.
* Merge pull request #410 from chinhodado/cleanupbunnei2015-01-245-483/+157
|\ | | | | Cleanup: Logging in Core
| * Cleanup: Logging in CoreChin2015-01-195-483/+157
| |
* | vfp: Clean up vertical alignment for instructionsLioncash2015-01-231-131/+125
| |
* | dyncom: Minor cleanupLioncash2015-01-221-282/+270
| | | | | | | | Removes some unused macros and cleans up indentation inconsistencies
* | dyncom: Clarify precedence for ternary statementsLioncash2015-01-203-3/+3
| |
* | 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
|
* vfp: Remove dead codeLioncash2015-01-121-50/+14
|
* 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-123-12/+26
|
* 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-095-11/+16
|
* 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-072-1/+9
|\ \ | |/ |/| Ported the CoreTiming namespace from PPSSPP
| * CoreTiming: Ported the CoreTiming namespace from PPSSPPSubv2015-01-072-1/+9
| | | | | | | | | | | | 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-062-16/+18
|\ \ | |/ |/| 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-062-16/+18
| |
* | 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-054-25/+117
|\ \ | | | | | | dyncom: Implement QADD/QSUB/QDADD/QDSUB
| * | dyncom: Implement QADD/QSUB/QDADD/QDSUBLioncash2015-01-054-25/+117
| | |
* | | skyeye: Remove duplicate typedefsLioncash2015-01-044-41/+17
|/ / | | | | | | citra already has its own typedefs like this.
* | Merge pull request #398 from lioncash/smbunnei2015-01-031-1/+43
|\ \ | |/ |/| dyncom: Implement SMLAW
| * dyncom: Implement SMLAWLioncash2015-01-031-1/+43
| |
* | VFP: Minor cleanup, functionally the same.bunnei2015-01-031-2587/+2476
|/
* 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.
* | armemu: Fix missing Q flag check for SMLSD.Lioncash2015-01-031-2/+6
| |
* | dyncom: Implement SMLAD/SMUAD/SMLSD/SMUSDLioncash2015-01-035-50/+84
|/
* 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
| |
* | Fix SADD8/SSUB8 in the armemuLioncash2015-01-011-50/+28
| |
* | 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-312-654/+221
| |
* | Merge pull request #369 from darkf/mingw_bunnei2014-12-311-0/+8
|\ \ | | | | | | Fix MinGW build (2)
| * \ Fix merge conflictsdarkf2014-12-3022-9156/+8501
| |\ \
| * | | Add comment regarding __WIN32__ in SkyEye codedarkf2014-11-291-0/+4
| | | |
| * | | Fix MinGW builddarkf2014-11-291-0/+4
| | | |
* | | | vfp: Get rid of a few warningsLioncash2014-12-302-2/+2
| |_|/ |/| |
* | | vfp: Implement VMOVBRRSSLioncash2014-12-303-12/+44
| | |
* | | dyncom: Implement USAT16/SSAT16Lioncash2014-12-301-2/+61
| |/ |/|
* | dyncom: Implement USAT/SSATbunnei2014-12-303-2/+131
| |
* | dyncom: Various cleanups to match coding style, no functional changes.bunnei2014-12-305-7087/+5962
| |
* | Merge pull request #361 from lioncash/moreqopsbunnei2014-12-294-65/+142
|\ \ | | | | | | dyncom/armemu: Implement QADD8/QSUB8.
| * | dyncom: Implement QADD8/QSUB8Lioncash2014-12-291-32/+42
| | |
| * | armemu: Implement QADD8/QSUB8Lioncash2014-12-293-33/+100
| | |
* | | dyncom: Fix SMLALXY's instruction labelsLioncash2014-12-291-2/+2
|/ / | | | | | | They were erroneously labeled as SMLAL.
* | dyncom: Implement UXTB16/UXTAB16Lioncash2014-12-291-2/+55
| |
* | 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
| | |
* | | vfp: Actually make the code somewhat readableLioncash2014-12-295-1664/+1053
| | |
* | | dyncom: Implement PKHBT and PKHTB.bunnei2014-12-281-2/+57
| | |
* | | armemu: Fix PKHTB to do an arithmetic shift and correctly decode immediate field.bunnei2014-12-281-13/+5
| | |
* | | dyncom: Implement USAD8/USADA8Lioncash2014-12-283-3/+53
| | |
* | | Merge pull request #354 from lioncash/usaduflowbunnei2014-12-283-4/+14
|\ \ \ | |/ / |/| | armemu: Fix underflows in USAD8/USADA8
| * | armemu: Fix underflows in USAD8/USADA8Lioncash2014-12-283-4/+14
| | | | | | | | | | | | Initially reported by xdec.
* | | dyncom: Implement UQADD8, UQADD16, UQSUB8, UQSUB16, UQASX, and UQSAX.Lioncash2014-12-273-12/+102
| | |
* | | armemu: Implement UQADD8, UQADD16, UQSUB16, UQASX, and UQSAXLioncash2014-12-273-19/+93
|/ /
* | dyncom: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAXLioncash2014-12-271-11/+123
| |
* | armemu: Implement UHADD8, UHADD16, UHSUB8, UHSUB16, UHASX, and UHSAXLioncash2014-12-271-2/+73
| |
* | Merge pull request #339 from bunnei/fixup-gsp-synchbunnei2014-12-265-95/+31
|\ \ | | | | | | Fixup gsp synch
| * | ARM: Add a mechanism for faking CPU time elapsed during HLE.bunnei2014-12-265-95/+31
| | | | | | | | | | | | - 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-233-13/+28
| |
* | 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
| | |
* | | Merge pull request #335 from lioncash/cpsrcreatebunnei2014-12-234-25/+78
|\ \ \ | | | | | | | | armemu: Emulate the GE and Q flags.
| * | | 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-234-15/+54
| |/ /
* / / 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-218-8/+8
|\ \ \ \ | |/ / / |/| | | License change
| * | | License changepurpasmart962014-12-218-8/+8
| | | |
* | | | armemu: Implement SADD8/SSUB8Lioncash2014-12-211-14/+87
| |/ / |/| |
* | | Merge pull request #296 from lioncash/dynbunnei2014-12-201-1/+47
|\ \ \ | | | | | | | | dyncom: Implement UMAAL
| * | | dyncom: Implement UMAALLioncash2014-12-191-1/+47
| |/ /
* | | 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
| |/ /
* | | Merge pull request #290 from lioncash/vsubbunnei2014-12-171-2/+5
|\ \ \ | | | | | | | | armemu: Backport some VFP fixes from 3dmoo.
| * | | armemu: Fix FTOUI NaN sign.Normmatt2014-12-161-1/+1
| | | |
| * | | armemu: Fix FSUBS bug where NaN shouldn't be negatedNormmatt2014-12-161-1/+4
| |/ /
* / / armemu: Implement UXTAB16Lioncash2014-12-161-10/+25
|/ /
* | armemu: Fix UXTB16Lioncash2014-12-151-12/+12
| | | | | | | | Rotation bits are 10 and 11, not 9 and 10.
* | Merge pull request #276 from lioncash/decrappifybunnei2014-12-151-306/+169
|\ \ | | | | | | Clean up armdefs.h a little.
| * | Clean up armdefs.hLioncash2014-12-141-306/+169
| | |
* | | ARM: Pull some SkyEye fixes from 3dmoo.bunnei2014-12-153-419/+485
|/ /
* | Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-135-109/+109
| |
* | 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
| |
* | 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 unused includes to common/thread.hEmmanuel Gil Peyrot2014-11-251-2/+0
|
* HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-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.
* Change some SkyEye defines to const intsYuri Kunde Schlesner2014-11-242-34/+16
| | | | | This prevents them from interfering with other constants defined in different namespaces.
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-197-12/+12
|
* Fix documentation of parametersLioncash2014-11-182-2/+2
|
* Merge pull request #194 from lioncash/virtbunnei2014-11-151-1/+1
|\ | | | | ARM_Interface: Make destructor virtual
| * ARM_Interface: Make destructor virtualLioncash2014-11-141-1/+1
| | | | | | | | Fixes some warnings on OSX.
* | 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.
* | Fix compilation errorsSean Maas2014-11-031-2/+2
| |
* | ARM: Merged additional ARMv6 instructions implemented by 3dmoo.bunnei2014-11-021-42/+234
| |
* | ARM: Merge latest VFP fixes from 3dmoo team.bunnei2014-11-024-2096/+2388
| |
* | Fix VFP compilation errors with gccYuri Kunde Schlesner2014-10-311-12/+12
| |
* | Merge pull request #153 from yuriks/add-overridebunnei2014-10-282-18/+18
|\ \ | | | | | | Add override keyword where appropriate
| * | Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-262-18/+18
| | | | | | | | | | | | This was automated using `clang-modernize`.
* | | vfp_helper: Get rid of integer type redefinitionsLioncash2014-10-261-7/+1
|/ /
* | ARM: Removed unnecessary and unused SkyEye MMU code.bunnei2014-10-2521-7728/+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: Updated dyncom core to use fast label lookup table on clang.bunnei2014-10-251-3/+7
| |
* | ARM: Integrate SkyEye faster "dyncom" interpreter.bunnei2014-10-2518-50/+8216
| | | | | | | | | | | | | | | | | | | | 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-63/+63
| | | | | | | | Removed s_ prefix
* | Merge pull request #97 from archshift/cleanupbunnei2014-09-141-1/+1
|\ \ | | | | | | Small, general code cleanup
| * | Dead code removal: video_core.cpp, load_symbol_map.cpparchshift2014-09-071-1/+1
| | |
* | | Merge pull request #99 from archshift/ext-checkbunnei2014-09-111-39/+39
|\ \ \ | | | | | | | | loader.cpp: improved file extension checking, made Upper/LowerStr useful, moved string_util into Common namespace
| * | | Added string_util to common, small changes in loader.cpparchshift2014-09-091-39/+39
| | |/ | |/|
* / | core: Prune redundant includesarchshift2014-09-091-1/+0
|/ /
* / core: Make the ARM disassembler use std::string internallyLioncash2014-09-063-189/+143
|/
* 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-144-20/+18
|\ | | | | | | | | | | 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-023-0/+11
| |
| * arm: removed unnecessary code when calling SVC from skyeyebunnei2014-05-301-16/+0
| |
* | Added 'this' reference to num_instructions field so it's properly updated,as before the method was affecting the local method parameter rather than the class fieldDisruption2014-06-011-1/+1
| |
* | Merge branch 'threading'bunnei2014-05-237-36/+119
|\|
| * 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-213-45/+45
| |
| * ARM_Interface: added SaveContext and LoadContext functions for HLE thread switchingbunnei2014-05-213-1/+63
| |
| * 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-175-20/+30
| |\
| * \ Merge master into threading to add support for VFPbunnei2014-05-1728-136/+14183
| |\ \
| * | | added option to set CPSR register to arm_interfacebunnei2014-05-123-0/+20
| | | |
* | | | 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-175-20/+30
|/ /
* | 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/+8755
|/ | | | - added initial VFP code from skyeye
* - disable strict alignment on LDRD/STRDbunnei2014-05-071-17/+22
| | | | - handle RD in STREX/STREXB
* commented out useless debug logs that just spammed consolebunnei2014-05-061-3/+3
|
* - 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
|
* added a module to load symbol map files for debuggingbunnei2014-05-012-0/+46
|
* removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable classbunnei2014-04-282-3/+1
|
* 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
|
* missed this file with commit 95e5436fbunnei2014-04-111-1/+10
|
* 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-093-94/+57
|
* fixed project includes to use new directory structurebunnei2014-04-0910-27/+27
|
* got rid of 'src' folders in each sub-projectbunnei2014-04-0925-0/+15528