Commit graph

494 commits

Author SHA1 Message Date
bunnei d4ad36796f Merge pull request #2366 from MerryMage/MemoryReadCode
arm_dynarmic: Provide MemoryReadCode callback
2016-12-22 14:25:15 -05:00
MerryMage 608278503c arm_dynarmic: Provide MemoryReadCode callback
Change of interface in dynarmic 36082087ded632079b16d24137fdd0c450ce82ea
2016-12-22 16:07:14 +00:00
bunnei d445aad022 ThreadContext: Move from "core" to "arm_interface". 2016-12-22 00:27:49 -05:00
Lioncash bec7bc3ec9 gdbstub: Remove global variable from public interface
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.
2016-12-15 16:37:22 -05:00
Lioncash cb4293adf1 core: Add missing #pragma once directives where applicable 2016-12-15 15:40:51 -05:00
Emmanuel Gil Peyrot 01e0d578d3 Core: Add a forgotten #include <cstring> for memcpy. 2016-12-11 01:20:45 +00:00
MerryMage eb5be59f9c dynarmic: Add ticks based on ticks executed, not ticks requested 2016-11-26 20:32:33 +00:00
James Rowe 13888eac06 Expose page table to dynarmic for optimized reads and writes to the JIT 2016-11-24 20:41:18 -07:00
Yuri Kunde Schlesner fa5d9d8266 Use negative priorities to avoid special-casing the self-include 2016-09-21 00:15:56 -07:00
Emmanuel Gil Peyrot 1138ec0d49 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
Yuri Kunde Schlesner 1e4a5da9f4 Manually tweak source formatting and then re-run clang-format 2016-09-18 21:14:25 -07:00
Emmanuel Gil Peyrot 628ed4376a Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
Emmanuel Gil Peyrot b26517b08c Dyncom: Disable clang-format on the decoding table. 2016-09-18 09:36:57 +09:00
bunnei 45bc24774f arm_dynarmic: Implement GetVFPSystemReg/SetVFPSystemReg. 2016-09-15 17:58:06 -04:00
bunnei acdc361fc0 arm: ResetContext shouldn't be part of ARM_Interface. 2016-09-15 17:49:30 -04:00
bunnei 5a7c1e9b5d arm_dynarmic/arm_dyncom: Remove unnecessary "virtual" keyword. 2016-09-15 17:49:30 -04:00
bunnei 5cf4dd301d dyncom: Use VFP_FPSCR/VFP_FPEXC. 2016-09-15 17:49:29 -04:00
bunnei f1072aa569 dynarmic: Implement ARM CPU interface. 2016-09-15 17:49:26 -04:00
wwylele 913472e010 ARM: add ClearInstructionCache function 2016-08-27 21:38:06 +08:00
MerryMage abe5d64fd6 dyncom: Read-after-write in SMLA
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.
2016-08-22 15:13:33 +01:00
MerryMage 0da5e44c89 Dyncom: Correct implementation of STM for R15 2016-08-14 00:49:34 +01:00
MerryMage a7711eaf4f dyncom: Fix translation of thumb REVSH 2016-07-28 11:51:29 +01:00
archshift b1f3ae6056 Make arm_dyncom_trans* into a fully fledged compilation unit 2016-06-12 01:54:45 -07:00
archshift 3b371f5816 arm_dyncom_interpreter: slightly change AllocBuffer to be intuitive 2016-06-12 00:31:52 -07:00
archshift 090a9166fc arm_dyncom_interpreter: Add specialized GetAddressingOpLoadStoreT func
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.
2016-06-10 18:45:48 -07:00
archshift 39e3e9c2d9 arm_dyncom_interpreter: rename operation functions to fit style guide 2016-06-10 18:42:08 -07:00
archshift 31b8dc0ca4 arm_dyncom_interpreter: Rename anonymous enum to TransExtData 2016-06-10 18:35:57 -07:00
archshift 5bf480bf56 arm_dyncom_interpreter.cpp: #include translation info from inc files 2016-06-10 18:25:30 -07:00
Mat M c59b338a39 Merge pull request #1568 from JayFoxRox/fix-printf
Fix ftoi and disable VFPv3
2016-05-26 19:03:00 -04:00
Jannik Vogel 7d2670f08e Remove exceptions parameter from normaliseround VFP functions 2016-05-18 16:28:13 +02:00
Jannik Vogel 053fb90466 Fix exception propagation for VFP single precision 2016-05-18 15:24:42 +02:00
Jannik Vogel afa5e151e8 Fix exception propagation for VFP double precision 2016-05-18 15:24:42 +02:00
Jannik Vogel 128981cf3c Fix read-after-write in SMUAD, SMLAD, SMUSD, SMLSD 2016-05-18 14:03:02 +02:00
Jannik Vogel f39adfffe7 Set fpscr for new threads 2016-05-17 08:59:52 +02:00
Jannik Vogel cc6731695e Fix ftoi behaviour 2016-05-16 15:00:45 +02:00
Jannik Vogel e686f222a9 Respect fpscr in ftoiz 2016-05-16 15:00:45 +02:00
Jannik Vogel c571e1237c Disable VFP3 instructions 2016-05-16 15:00:45 +02:00
Lioncash e4ccba3ffa dyncom: Reset the context into user mode correctly
The other mode was system mode.
2016-05-09 16:30:55 -04:00
Yuri Kunde Schlesner 2396b01d5d Common: Remove section measurement from profiler (#1731)
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.
2016-04-29 00:07:10 -07:00
mailwl c4f53f4f6b Fix BLX LR opcode interpretation 2016-04-09 19:11:02 +03:00
mailwl 1b840ce43c Update cpsr (T)humb bit while creating thread 2016-04-08 18:41:09 +03:00
mailwl f1fb108e03 Fix thumb ADR instruction alignment 2016-04-06 19:46:58 +03:00
Mathew Maidment 3cf5e4d51c Merge pull request #1643 from MerryMage/make_unique
Common: Remove Common::make_unique, use std::make_unique
2016-04-05 20:10:11 -04:00
MerryMage 9f9c987924 Common: Remove Common::make_unique, use std::make_unique 2016-04-05 13:31:17 +01:00
Mathew Maidment 723d1b2e3f Merge pull request #1618 from MerryMage/one-step
Prevent cache overflow when single stepping
2016-03-31 11:00:42 -04:00
MerryMage c1d2977e0a DynCom: Optimize single stepping 2016-03-30 18:57:59 +01:00
Lioncash 438bbb84e7 armstate: Correct FIQ register banking
FIQ has seven banked registers (R8 to R14), not two.
2016-03-21 18:56:27 -04:00
rob turner 0d435fe4d8 ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode name 2016-01-19 18:42:16 +01:00
Lioncash 49e3979ae6 arm_dyncom_dec: Fix decoding of VMLS
Previously, all VMLS variants would misdecode as CDP
(which isn't necessarily wrong in itself, however
VMLS has it's own label of execution)
2015-12-30 14:23:07 -05:00
Lioncash 39609e9d6e dyncom: Handle modifying the APSR via an MRC instruction 2015-12-28 07:52:04 -05:00