summaryrefslogtreecommitdiff
path: root/src/arch/arm/isa
AgeCommit message (Collapse)Author
2010-06-02ARM: Implement support for the IT instruction and the ITSTATE bits of CPSR.Gabe Black
2010-06-02ARM: Get rid of some of the old FP implementation.Gabe Black
2010-06-02ARM: Implement the ARM TLB/Tablewalker. Needs performance improvements.Ali Saidi
2010-06-02ARM: Add BKPT instructionAli Saidi
--HG-- rename : src/arch/arm/isa/formats/unknown.isa => src/arch/arm/isa/formats/breakpoint.isa
2010-06-02ARM: Implement ARM CPU interruptsAli Saidi
2010-06-02ARM: Implement conversion to/from half precision.Gabe Black
2010-06-02ARM: Clean up VFPGabe Black
2010-06-02ARM: Clean up the implementation of the VFP instructions.Gabe Black
2010-06-02ARM: Even though writes to MVFR0/1 should be unpredictable, we need to make ↵Gabe Black
them to do nothing.
2010-06-02ARM: Implement the version of VMRS that writes to the APSR.Gabe Black
2010-06-02ARM: Ignore reads and writes to DCIMVAC.Gabe Black
2010-06-02ARM: Implement the VCMPE instruction.Gabe Black
2010-06-02ARM: Fix vcvtr so that it uses the rounding mode in the FPSCR.Gabe Black
2010-06-02ARM: Fix saturation of VCVT from fp to integer.Gabe Black
2010-06-02ARM: Compensate for ARM's underflow coming from -before- rounding, but x86's ↵Gabe Black
after.
2010-06-02ARM: Implement flush to zero for destinations as well.Gabe Black
2010-06-02ARM: Fix up nans to match ARM's expected behavior.Gabe Black
2010-06-02ARM: Implement flush to zero mode for VFP, and clean up some corner cases.Gabe Black
2010-06-02ARM: Add barriers that make sure FP operations happen where they're supposed to.Gabe Black
2010-06-02ARM: Implement the version of VCVT float to int that rounds towards zero.Gabe Black
2010-06-02ARM: Implement the floating/fixed point VCVT instructions.Gabe Black
2010-06-02ARM: Add code to extract and record VFP exceptions.Gabe Black
2010-06-02ARM: Implement the VFP version of VCMP.Gabe Black
2010-06-02ARM: Add support for VFP vector mode.Gabe Black
2010-06-02ARM: Introduce new VFP base classes that are optionally microops.Gabe Black
2010-06-02ARM: Implement VCVT between double and single width FP.Gabe Black
2010-06-02ARM: Implement vcvt between int and fp. Ignore rounding.Gabe Black
2010-06-02ARM: Consolidate the VFP register index computation code.Gabe Black
2010-06-02ARM: Implement the VFP negated multiplies.Gabe Black
2010-06-02ARM: Implement the VFP versions of VMLA and VMLS.Gabe Black
2010-06-02ARM: Implement the VFP version of vdiv and vsqrt.Gabe Black
2010-06-02ARM: Implement the VFP version of vsub.Gabe Black
2010-06-02ARM: Implement the VFP version of vadd.Gabe Black
2010-06-02ARM: Implement the VFP version of vabs.Gabe Black
2010-06-02ARM: Implement the VFP version of vneg.Gabe Black
2010-06-02ARM: Implement the VFP version of vmul.Gabe Black
2010-06-02ARM: Move the VFP data operation decode into a function.Gabe Black
2010-06-02ARM: Make integer division by zero return a fault.Gabe Black
2010-06-02ARM: Decode ARM unconditional MRC and MCR instructions.Gabe Black
2010-06-02ARM: Move the CP15 decode block into a function.Gabe Black
2010-06-02ARM: Decode the unconditional version of ARM fp instructions.Gabe Black
2010-06-02ARM: Move the FP decode blocks into functions.Gabe Black
2010-06-02ARM: Warn/ignore when TLB maintenance operations are performed.Gabe Black
2010-06-02ARM: Convert the CP15 registers from MPU to MMU.Gabe Black
2010-06-02ARM: Add some support for wfi/wfe/yield/etcAli Saidi
2010-06-02ARM: Undef instruction on invalid user CP15 accessAli Saidi
2010-06-02ARM: Decode the VSTR instruction.Gabe Black
2010-06-02ARM: Implement the vstr instruction.Gabe Black
2010-06-02ARM: BXJ should be BX when there is no J supportAli Saidi
2010-06-02ARM: Fix the implementation of the VFP ldm and stm macroops.Gabe Black
There were four bugs in these instructions. First, the loaded value was being stored into a floating point register as floating point, changing the value as it was transfered. Second, the meaning of the "up" bit had been reversed. Third, the statically sized microop array wasn't bit enough for all possible inputs. It's now dynamically sized and should always be big enough. Fourth, the offset was stored as an unsigned 8 bit value. Negative offsets would look like moderately large positive offsets.