aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm
AgeCommit message (Collapse)Author
2016-05-09dyncom: Reset the context into user mode correctlyLioncash
The other mode was system mode.
2016-04-29Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner
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-09Fix BLX LR opcode interpretationmailwl
2016-04-08Update cpsr (T)humb bit while creating threadmailwl
2016-04-06Fix thumb ADR instruction alignmentmailwl
2016-04-05Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment
Common: Remove Common::make_unique, use std::make_unique
2016-04-05Common: Remove Common::make_unique, use std::make_uniqueMerryMage
2016-03-31Merge pull request #1618 from MerryMage/one-stepMathew Maidment
Prevent cache overflow when single stepping
2016-03-30DynCom: Optimize single steppingMerryMage
2016-03-21armstate: Correct FIQ register bankingLioncash
FIQ has seven banked registers (R8 to R14), not two.
2016-01-19ARM_Disasm::DisassembleMemHalf: actually use width in determining opcode namerob turner
2015-12-30arm_dyncom_dec: Fix decoding of VMLSLioncash
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-28dyncom: Handle modifying the APSR via an MRC instructionLioncash
2015-12-20dyncom: Remove PC dispatch from several instructionsLioncash
These instructions aren't capable of using the PC as a destination
2015-12-19dyncom: Handle unprivileged load/store variants correctlyLioncash
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
2015-12-06dyncom: Remove static keyword from header functionsLioncash
2015-12-06arm_interface: Make GetNumInstructions constLioncash
2015-12-06arm_interface: directly initialize class membersLioncash
2015-12-06dyncom: const correctness changesLioncash
2015-11-29armstate: Zero out the registers on creationLioncash
std::array isn't always guaranteed to explicitly zero out it's contents without an initializer list.
2015-11-11Merge pull request #1122 from polaris-/gdbstubbunnei
gdbstub implementation
2015-10-11Remove unnecessary new lines, changed Deinit to Shutdownpolaris-
2015-10-09CitraQt, SkyEye, Loader, VideoCore: Remove newlines in LOG_* calls.Emmanuel Gil Peyrot
The LOG_* function itself already appends one.
2015-10-04Use BreakpointAddress struct instead of passing address directlypolaris-
2015-10-04Implement gdbstubpolaris-
2015-09-16general: Silence some warnings when using clangLioncash
2015-09-11General: Replace NULL and '0' usages with nullptr where applicableLioncash
2015-09-05DynCom: Converted all 0xE condition code checks to ConditionCode::ALarchshift
2015-08-26dyncom: Simplify some comparisons in CondPassedLioncash
2015-08-25dyncom: Change return type of CondPassed to boolLioncash
2015-08-24Integrate the MicroProfile profiling libraryYuri Kunde Schlesner
This brings goodies such as a configurable user interface and multi-threaded timeline view.
2015-08-22Merge pull request #1025 from yuriks/heap-managementYuri Kunde Schlesner
Kernel: Correct(er) handling of Heap and Linear Heap allocations
2015-08-16Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner
These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next.
2015-08-15vfp: use std::swap where applicableLioncash
2015-08-13Merge pull request #1027 from lioncash/debuggerbunnei
debugger: Add the ability to view VFP register contents
2015-08-11ARM Core, Video Core, CitraQt, Citrace: Use CommonTypes types instead of the ↵Emmanuel Gil Peyrot
standard u?int*_t types.
2015-08-11arm_disasm: ARMv6 mul/div and abs media instructionsaroulin
SMLAD, SMUAD, SMLSD, SMUSD, SMLALD, SMLSLD, SMMLA, SMMUL, SMMLS USAD8, USADA8
2015-08-11arm_disasm: ARMv6 parallel add/sub media instructionsaroulin
{S, U, Q, UQ, SH, UH}{ADD16, ASX, SAX, SUB16, ADD8, SUB8}
2015-08-09arm_disasm: ARMv6 reversal media instructionsaroulin
REV, REV16, REVSH Only their ARM encoding, Thumb encoding is still missing.
2015-08-09arm_disasm: ARMv6 saturation media instructionsaroulin
SSAT, SSAT16, USAT, USAT16
2015-08-09arm_disasm: ARMv6 packing and sign-extend media instructionsaroulin
PKH, SEL SXTAB, SXTAB16, SXTB, SXTB16, SXTH, SXTAH UXTAB, UXTAB16, UXTB, UXTB16, UXTH, UXTAH
2015-08-07Merge pull request #1026 from lioncash/disasmLioncash
arm_disasm: Remove unnecessary code
2015-08-06arm_interface: Implement interface for retrieving VFP registersLioncash
2015-08-06arm_disasm: Remove unnecessary codeLioncash
This part of disassembly only determines the opcode, there's no need for offset calculation here.
2015-08-06Disassembler: ARMv6K REX instructionsaroulin
2015-08-06Disassembler: ARMv6K hint instructionsaroulin
2015-07-30Merge pull request #1008 from lioncash/pcbunnei
dyncom: Handle the case where PC is the source register for STR/VSTM/VLDM
2015-07-29dyncom: Remove an unused variableLioncash
This was used prior to InterpreterTranslate existing.
2015-07-29dyncom: Handle the case where PC is the source register for STR/VSTM/VLDMLioncash
2015-07-28dyncom: Handle left-operand PC correctly for data-processing opsLioncash
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).