summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dynarmic/arm_dynarmic.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-13/+14
2018-09-04Update microprofile scopes.Markus Wick1-0/+4
Blame the subsystems which deserve the blame :) The updated list is not complete, just the ones I've spotted on random sampling the stack trace.
2018-08-31core/core: Replace includes with forward declarations where applicableLioncash1-0/+1
The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers.
2018-08-25core: Namespace all code in the arm subdirectory under the Core namespaceLioncash1-0/+4
Gets all of these types and interfaces out of the global namespace.
2018-08-16dynarmic: Update to 550d662MerryMage1-0/+3
550d662 load_store_exclusive: Define s == t state to be Constraint_NONE 0b69381 A64/translate: Allow for unpredictable behaviour to be defined 6d236d4 system: Implement MRS CNTFRQ_EL0 6cbb6fb A32/testenv: Add missing headers 6729328 externals: Update xbyak to v5.67 1812bd2 Squashed 'externals/xbyak/' changes from 2794cde7..671fc805 9a95802 externals: Document subtrees 714a840 A64: Implement SQ{ADD, SUB}, and UQ{ADD, SUB}'s vector variants 8cab459 A64: Implement UQADD/UQSUB's scalar variants 18a8151 ir: Add opcodes for unsigned saturating add and subtract a5660ee x64/reg_alloc: Use type alias for array returned by GetArgumentInfo() 29489b5 ir/value: Use type alias CoprocessorInfo for std::array<u8, 8> e23ba26 status_register_access: Add support for bits 0 and 1 of mask to MSR 55190bd fuzz_with_unicorn: Split utility functions into fuzz_util 23b049d A32/translate/load_store: Correct detection of writeback 7ec9f15 A32/translate: Add TranslateSingleInstruction efeecb4 A32/ir_emitter: Bug fix: IREmitter::ExceptionRaised using incorrect opcode 08d1d19 A32/decoders: Split instruction list into include file 2d929cc tests: Refactor unicorn_emu to allow for A32 unicorn f672368 microinstruction: Improve assert messages 7ebff50 emit_x64_vector: EmitVectorNarrow16: AVX512 implementation edce230 emit_x64_vector: EmitVectorNarrow32: prefer pblendw to loading constant
2018-08-13arm_dynarmic: Remove IsExecuting check from PrepareRescheduleMerryMage1-3/+1
No longer required. HaltExecution is a no-op if it is not currently executing.
2018-08-13CPU/Timing: Use an approximated amortized amount of ticks when advancing timing.Subv1-1/+10
We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast. This lets us bypass certain hangs in some games like Breath of the Wild. We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads).
2018-07-31kernel: Remove unnecessary includesLioncash1-1/+1
Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included.
2018-07-31arm_dynarmic: Make SetTlsAddress() prototype and definition consistentLioncash1-1/+1
Makes the definition use the same type aliases as in its prototype.
2018-07-31arm_dynarmic: Remove unnecessary qualifying of ThreadContextLioncash1-3/+3
Given the ARM_Dynarmic class inherits from ARM_Interface, we don't need to qualify here.
2018-07-31arm_dynarmic: Correct initializer list orderLioncash1-5/+3
Amends the initializer list to be in the same order that each variable would be initialized in. We also do this to ensure we don't use a bogus uninitialized instance of the exclusive monitor within MakeJit() We can also remove the jit member from the initializer list as this is initialized by PageTableChanged()
2018-07-24arm_dynarmic: Make MakeJit() a const member functionLioncash1-2/+2
This functions doesn't modify instance state, so it can be a made a const member function.
2018-07-24exclusive_monitor: Use consistent type alias for u64Lioncash1-7/+6
Uses the same type aliases we use for virtual addresses, and converts one lingering usage of std::array<uint64_t, 2> to u128 for consistency.
2018-07-22Implement exclusive monitorMerryMage1-7/+60
2018-07-21CPU: Save and restore the TPIDR_EL0 system register on every context switch.Subv1-0/+8
Note that there's currently a dynarmic bug preventing this register from being written.
2018-07-21arm_interface: Remove unused tls_address member of ThreadContextLioncash1-2/+0
Currently, the TLS address is set within the scheduler, making this member unused.
2018-07-16scheduler: Clear exclusive state when switching contextsMerryMage1-0/+4
2018-07-03Update clang formatJames Rowe1-1/+1
2018-07-03Rename logging macro back to LOG_*James Rowe1-1/+1
2018-05-02general: Make formatting of logged hex values more straightforwardLioncash1-1/+1
This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on).
2018-04-27general: Convert assertion macros over to be fmt-compatibleLioncash1-1/+1
2018-04-26core: Replace remaining old non-generic logger usages with fmt-capable equivalentsLioncash1-2/+2
LOG_GENERIC usages will be amended in a follow-up to keep API changes separate from interface changes, as it will require removing a parameter from the relevant function in the VMManager class.
2018-03-24arm_dynarmic: Fix timingMerryMage1-7/+3
2018-03-16arm_interface: Support unmapping previously mapped memory.bunnei1-0/+4
2018-03-14core: Move process creation out of global state.bunnei1-1/+2
2018-02-25Implements citra-emu/citra#3184N00byKing1-7/+12
2018-02-21dynarmic: Update to 6b4c6b0MerryMage1-2/+18
6b4c6b0 impl: Update PC when raising exception 7a1313a A64: Implement FDIV (vector) b2d781d system: Raise exception for YIELD, WFE, WFI, SEV, SEVL b277bf5 Correct FPSR and FPCR 7673933 A64: Implement USHL 8d0e558 A64: Implement UCVTF (vector, integer), scalar variant da9a4f8 A64: Partially implement FCVTZU (scalar, fixed-point) and FCVTZS (scalar, fixed-point) 7479684 A64: Implement system register TPIDR_EL0 0fd75fd A64: Implement system registers FPCR and FPSR 31e370c A64: Implement system register CNTPCT_EL0 9a88fd3 A64: Implement system register CTR_EL0 1d16896 A64: Implement NEG (vector) 3184edf IR: Add IR instruction ZeroVector 31f8fbc emit_x64_floating_point: Add maybe_unused to preprocess parameter 567eb1a A64: Implement FMINNM (scalar) c6d8fa1 A64: Implement FMAXNM (scalar) 616056d constant_pool: Add frame parameter a3747cb A64: Implement ADDP (scalar) 5cd5d9f reg_alloc: Only exchange GPRs dd0452a A64: Implement DUP (element), scalar variant e5732ea emit_x64_floating_point: Correct FP{Max,Min}{32,64} implementations for -0/+0 40eb9c3 A64: Implement FMAX (scalar), FMIN (scalar) 7cef39b fuzz_with_unicorn: QEMU's implementation of FCVT is incorrect 826dce2 travis: Switch unicorn repository 9605f28 a64/config: Allow NaN emulation accuracy to be set e9435bc a64_emit_x64: Add conf to A64EmitContext 30b596d fuzz_with_unicorn: Explicitly test floating point instructions be292a8 A64: Implement FSQRT (scalar) 3c42d48 backend_x64: Accurately handle NaNs 4aefed0 fuzz_with_unicorn: Print AArch64 disassembly
2018-02-21arm_dynarmic: LOG_INFO on unicorn fallbackMerryMage1-0/+4
2018-02-12arm_dynarmic: Support direct page table accessMerryMage1-6/+14
2018-02-09dynarmic: Update to 41ae12263MerryMage1-30/+44
Changes: Primarily implementing more A64 instructions
2018-01-20Fixes some cast warnings, partial port of citra #3064 (#106)River City Ransomware1-3/+3
* Fixes some cast warnings, partially fixes citra #3064 * Converted casts to uint32_t to u32 * Ran clang-format
2018-01-13Update dynarmic to bc73004MerryMage1-12/+17
bc73004 a64_merge_interpret_blocks: Remove debug output 4e656ed tests/A64: Randomize PSTATE.<NZCV> fd9530b A64: Optimization: Merge interpret blocks 3c9eb04 testenv: Use format constants 324f3fc tests/A64: Unicorn interface fixes 98ecbe7 tests/A64: Fuzz against unicorn b1d38e7 tests/A64: Move TestEnvironment to own header 5218ad9 A64/data_processing_pcrel: bug: ADR{,P} instructions sign extend their immediate b1a8c39 A64/data_processing_addsub: bug: {ADD,SUB}S (extended register) instructions write to ZR when d = 31 64827fb a64_emit_x64: bug: A64CallSupervisor trampled callee-save registers 1bfa04d emit_x64: bug: OP m/r64, imm32 form instructions sign-extend their immediate on x64 edadeea A64 inferface: Use two argument static_assert 9ab1304 A64: Add ExceptionRaised IR instruction 6843eed Update readme 7438d07 A64/translate: Add TranslateSingleInstruction function
2018-01-13yuzu: Update license text to be consistent across project.bunnei1-1/+1
2018-01-12arm_dynarmic: Implement coreMerryMage1-42/+128
2018-01-04arm_dynarmic: Gut interface until dynarmic is ready for general use.bunnei1-134/+41
2018-01-03arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei1-21/+5
2017-09-30arm_interface: Set TLS address for dynarmic core.bunnei1-0/+14
2017-09-30arm: Use 64-bit addressing in a bunch of places.bunnei1-48/+81
2017-09-30Moved down_count to CoreTimingHuw Pascoe1-8/+1
2017-09-25ARM_Interface: Implement PageTableChangedMerryMage1-5/+17
2017-09-15CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime.Subv1-1/+3
2017-08-21CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions.Subv1-1/+1
2017-02-03arm_dynarmic: Update memory interfaceMerryMage1-10/+10
2017-02-03arm_dynarmic: CP15 supportMerryMage1-4/+7
2016-12-22arm_dynarmic: Provide MemoryReadCode callbackMerryMage1-0/+1
Change of interface in dynarmic 36082087ded632079b16d24137fdd0c450ce82ea
2016-12-22ThreadContext: Move from "core" to "arm_interface".bunnei1-2/+2
2016-12-11Core: Add a forgotten #include <cstring> for memcpy.Emmanuel Gil Peyrot1-0/+1
2016-11-26dynarmic: Add ticks based on ticks executed, not ticks requestedMerryMage1-2/+2
2016-11-25Expose page table to dynarmic for optimized reads and writes to the JITJames Rowe1-0/+1
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-4/+2
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-15arm_dynarmic: Implement GetVFPSystemReg/SetVFPSystemReg.bunnei1-5/+12
2016-09-15arm: ResetContext shouldn't be part of ARM_Interface.bunnei1-9/+0
2016-09-15dynarmic: Implement ARM CPU interface.bunnei1-0/+176