MerryMage
9f9c987924
Common: Remove Common::make_unique, use std::make_unique
10 years ago
MerryMage
c1d2977e0a
DynCom: Optimize single stepping
10 years ago
Lioncash
438bbb84e7
armstate: Correct FIQ register banking
FIQ has seven banked registers (R8 to R14), not two.
10 years ago
rob turner
0d435fe4d8
ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode name
10 years ago
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)
10 years ago
Lioncash
39609e9d6e
dyncom: Handle modifying the APSR via an MRC instruction
10 years ago
Lioncash
0908f894ca
dyncom: Remove PC dispatch from several instructions
These instructions aren't capable of using the PC as a destination
10 years ago
Lioncash
2f0474efa5
dyncom: Handle unprivileged load/store variants correctly
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
10 years ago
Lioncash
8813673601
dyncom: Remove static keyword from header functions
10 years ago
Lioncash
0f083bdf0f
arm_interface: Make GetNumInstructions const
10 years ago
Lioncash
dd441a3dd6
arm_interface: directly initialize class members
10 years ago
Lioncash
93cd3dccc5
dyncom: const correctness changes
10 years ago
Lioncash
af06eaf78d
armstate: Zero out the registers on creation
std::array isn't always guaranteed to explicitly zero out it's contents
without an initializer list.
10 years ago
polaris-
6621f16576
Remove unnecessary new lines, changed Deinit to Shutdown
10 years ago
Emmanuel Gil Peyrot
b0c7762520
CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.
The LOG_* function itself already appends one.
10 years ago
polaris-
8205925b08
Use BreakpointAddress struct instead of passing address directly
10 years ago
polaris-
1d319e5b46
Implement gdbstub
10 years ago
polaris-
021fab70ac
Implement gdbstub
10 years ago
Lioncash
08147474cb
general: Silence some warnings when using clang
10 years ago
Lioncash
5c77b656b8
General: Replace NULL and '0' usages with nullptr where applicable
10 years ago
archshift
358f54fa1d
DynCom: Converted all 0xE condition code checks to ConditionCode::AL
10 years ago
Lioncash
3fb10e8f62
dyncom: Simplify some comparisons in CondPassed
10 years ago
Lioncash
f8425c3dad
dyncom: Change return type of CondPassed to bool
10 years ago
Yuri Kunde Schlesner
424b0fa646
Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
11 years ago
Yuri Kunde Schlesner
168d376c67
Memory: Move address type conversion routines to memory.cpp/h
These helpers aren't really part of the kernel, and mem_map.cpp/h is
going to be moved there next.
11 years ago
Lioncash
d7335fa5f0
vfp: use std::swap where applicable
11 years ago
Emmanuel Gil Peyrot
fe83e1f777
ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the standard u?int*_t types.
11 years ago
aroulin
1af26ea3d8
arm_disasm: ARMv6 mul/div and abs media instructions
SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD,
SMMLA, SMMUL, SMMLS
USAD8, USADA8
11 years ago
aroulin
0e37ee5692
arm_disasm: ARMv6 parallel add/sub media instructions
{S, U, Q, UQ, SH, UH}{ADD16, ASX, SAX, SUB16, ADD8, SUB8}
11 years ago
aroulin
e752fd5728
arm_disasm: ARMv6 reversal media instructions
REV, REV16, REVSH
Only their ARM encoding, Thumb encoding is still missing.
11 years ago
aroulin
86d63d8fd8
arm_disasm: ARMv6 saturation media instructions
SSAT, SSAT16, USAT, USAT16
11 years ago
aroulin
aecd0de63e
arm_disasm: ARMv6 packing and sign-extend media instructions
PKH, SEL
SXTAB, SXTAB16, SXTB, SXTB16, SXTH, SXTAH
UXTAB, UXTAB16, UXTB, UXTB16, UXTH, UXTAH
11 years ago
Lioncash
daabb4fab3
arm_interface: Implement interface for retrieving VFP registers
11 years ago
Lioncash
59d5358068
arm_disasm: Remove unnecessary code
This part of disassembly only determines the opcode, there's no need for offset calculation here.
11 years ago
aroulin
4721ff6747
Disassembler: ARMv6K REX instructions
11 years ago
aroulin
0d4ad676e9
Disassembler: ARMv6K hint instructions
11 years ago
Lioncash
46663d657f
dyncom: Remove an unused variable
This was used prior to InterpreterTranslate existing.
11 years ago
Lioncash
2e420aba3c
dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM
11 years ago
Lioncash
2182adff9e
dyncom: Handle left-operand PC correctly for data-processing ops
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).
11 years ago
Lioncash
9be4ef3879
dyncom: Remove an unnecessary typedef
11 years ago
Lioncash
89540ea761
dyncom: Use enum class for instruction decoding results
11 years ago
Lioncash
7e4fb4db19
dyncom: Remove code duplication regarding thumb instructions
11 years ago
Lioncash
a507ea23c1
dyncom: Migrate exclusive memory access control into armstate
11 years ago
Lioncash
db4e99c186
dyncom: Remove duplicated typedef and extern
These are already present in arm_dyncom_dec.h.
11 years ago
Lioncash
816b1ca776
dyncom: Use std::array for register arrays
11 years ago
Lioncash
0ecc6e2f04
dyncom: Use ARMul_State as an object
Gets rid of C-like parameter passing.
11 years ago
Lioncash
03213f893e
dyncom: Remove unnecessary initialization code.
Targeting ARM version variants was only a thing on armemu.
The reset routine also does basically the same thing as NewState.
11 years ago
Lioncash
3257d797e1
dyncom: Remove unnecessary abort-related cruft
Both the MPCore and the ARM9 have the same data abort model (base restored), so differentiating isn't necessary.
11 years ago
Lioncash
dfb424b6d1
dyncom: Rename armdefs.h to armstate.h
11 years ago
Lioncash
4bb1a5ca47
dyncom: Get rid of skyeye typedefs
11 years ago