Commit Graph

  • f7f75ad053 ARM: Implement the ldrex instruction. Gabe Black 2010-06-02 12:58:07 -05:00
  • 00baeb742d ARM: Decode the usad8 and usada8 instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • 8f566e5ee3 ARM: Implement the usad8 and usada8 instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • c643b1c274 ARM: Add a base class to support usada8. Gabe Black 2010-06-02 12:58:07 -05:00
  • 64ade8316e ARM: Decode the sel instruction. Gabe Black 2010-06-02 12:58:07 -05:00
  • 7fa6835a0c ARM: Implement the sel instruction. Gabe Black 2010-06-02 12:58:07 -05:00
  • 498f9d925e ARM: Add a base class for the sel instruction. Gabe Black 2010-06-02 12:58:07 -05:00
  • f581fd3f89 ARM: Decode pkh instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • 9ffc5e2ae6 ARM: Implement the pkh instruction. Gabe Black 2010-06-02 12:58:07 -05:00
  • c4d09747a5 ARM: Decode the sign/zero extend instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • 69365876d8 ARM: Implement zero/sign extend instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • 554fb3774e ARM: Add a base class for extend and add instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • cb2e3b0ace ARM: Generalize the saturation instruction bases for use in other instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • a1208aa66d ARM: Decode the 8/16 bit signed/unsigned add/subtract half instructions. Gabe Black 2010-06-02 12:58:07 -05:00
  • cabf766a06 ARM: Implement the 8/16 bit signed/unsigned add/subtract half instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 82614b6f3a ARM: Fix signed most significant multiply instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 3cff58602a ARM: Fix multiply overflow flag setting. Gabe Black 2010-06-02 12:58:06 -05:00
  • 90c2284714 ARM: Decode the saturation instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 61b8e33225 ARM: Implement the saturation instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • c96f03a250 ARM: Implement base classes for the saturation instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 0aff168f1a ARM: Decode the signed add/subtract and subtract/add instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 8ba812f1fb ARM: Implement signed add/subtract and subtract/add. Gabe Black 2010-06-02 12:58:06 -05:00
  • a895514d35 ARM: Decode the unsigned 8 and 16 bit add and subtract instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 3f12eb02ab ARM: Implement the unsigned 8 bit and 16 bit vector adds and subtracts. Gabe Black 2010-06-02 12:58:06 -05:00
  • 29acf9516c ARM: Decode the unsigned saturating instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • be888e67e7 ARM: Implement the unsigned saturating instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 5495ebd68d ARM: Decode the ssub instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • fd6e9f304e ARM: Implement the ssub instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • bcf0454864 ARM: Decode the SADD8 and SADD16 instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 87975aa691 ARM: Implement the SADD8 and SADD16 instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • d70c31437a ARM: Support instructions that set the GE bits when they write the condition codes. Gabe Black 2010-06-02 12:58:06 -05:00
  • e32aaefe8c ARM: Decode 32 bit thumb data processing register instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • f19b605aed ARM: Decode the 16 bit thumb versions of the REV* instructions. Gabe Black 2010-06-02 12:58:06 -05:00
  • 15356af288 ARM: Decode the ARM version of the REV* instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • 59c726b6f4 ARM: Pull decoding of ARM pack, unpack, saturate and reverse instructions into a format. Gabe Black 2010-06-02 12:58:05 -05:00
  • aa8493d7d1 ARM: Implement the REV* instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • c981a4de2b ARM: Add base classes suitable for the REV* instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • 57443a2144 ARM: Make LDM that loads the PC perform an interworking branch. Gabe Black 2010-06-02 12:58:05 -05:00
  • 1344fc2668 ARM: Decode the swp and swpb instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • e157b1f52a ARM: Implement the swp and swpb instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • 1884ed65bd ARM: Decode MRS and MSR for thumb. Gabe Black 2010-06-02 12:58:05 -05:00
  • ff3b21bc2b ARM: Replace the versions of MRS and MSR in the ARM decoder with the new ones. Gabe Black 2010-06-02 12:58:05 -05:00
  • f0811eb208 ARM: Define versions of MSR and MRS outside the decoder. Gabe Black 2010-06-02 12:58:05 -05:00
  • f61bb9adb9 ARM: Hook up the push/pop versions of stm/ldm in thumb. Gabe Black 2010-06-02 12:58:05 -05:00
  • a76ab8e040 ARM: Hook SVC into the thumb decoder. Gabe Black 2010-06-02 12:58:05 -05:00
  • cbdebf852e ARM: Implement SVC (was SWI) outside of the decoder. Gabe Black 2010-06-02 12:58:05 -05:00
  • caa95639ec ARM: Update the stats for the new syscall behavior. Gabe Black 2010-06-02 12:58:05 -05:00
  • 34032f97d6 ARM: Trigger system calls from the SupervisorCall invoke method. Gabe Black 2010-06-02 12:58:05 -05:00
  • 52460938cb ARM: Fix multiply operations. Gabe Black 2010-06-02 12:58:05 -05:00
  • 4fb6fcd82d ARM: Decode the scalar saturating add/subtract instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • 30dd622622 ARM: Decode the parallel add and subtract instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • 62e8487d57 ARM: Implement signed saturating add and/or subtract instructions. Gabe Black 2010-06-02 12:58:05 -05:00
  • a1253ec644 ARM: Implemented prefetch instructions/decoding (pli, pld, pldw). Gabe Black 2010-06-02 12:58:05 -05:00
  • 61b00d3224 ARM: Decode unconditional ARM instructions. Gabe Black 2010-06-02 12:58:04 -05:00
  • b6e2f5d33f ARM: Make sure ldm exception return writes back its base in the right mode. Gabe Black 2010-06-02 12:58:04 -05:00
  • 89060f1fd8 ARM: Rework how unrecognized/unimplemented instructions are handled. Gabe Black 2010-06-02 12:58:04 -05:00
  • aa45fafb2e ARM: Add support for "SUBS PC, LR and related instructions". Gabe Black 2010-06-02 12:58:04 -05:00
  • 2419903dc0 ARM: Make ldrs into the PC and ldm exception return do interworking branches. Gabe Black 2010-06-02 12:58:04 -05:00
  • 28227440a7 ARM: Align the PC when using it as the base for a load. Gabe Black 2010-06-02 12:58:04 -05:00
  • d63f748b53 ARM: Implement ADR as separate from ADD. Gabe Black 2010-06-02 12:58:04 -05:00
  • e92dc21fde ARM: Add support for interworking branch ALU instructions. Gabe Black 2010-06-02 12:58:04 -05:00
  • 11c3361be4 ARM: Fix when the flag bits are updated for thumb. Gabe Black 2010-06-02 12:58:04 -05:00
  • 14d25fbad0 ARM: Don't rely on undefined behavior to get arithmetic right shift. Shifting to the right of a signed value when the MSB is one is technically undefined behavior, even though in my experience it's done the "right thing" and sign extended the value. This replaces the arithmetic right shift code in ARM that uses that coincidence with some code that relies on bit math. Gabe Black 2010-06-02 12:58:04 -05:00
  • 05d880f7a1 ARM: Restrict the shift amount from a register to 8 bits. The shift amount when taken from a register is supposed to be truncated to an 8 bit value. Gabe Black 2010-06-02 12:58:04 -05:00
  • d8294575e1 ARM: Update the stats now that VFP load/store multiple is implemented. Gabe Black 2010-06-02 12:58:04 -05:00
  • 9ebaf8ecd5 ARM: Define the VFP load/store multiple instructions. Gabe Black 2010-06-02 12:58:04 -05:00
  • 3f83094af2 ARM: Decode the VFP load/store multiple instructions. Gabe Black 2010-06-02 12:58:04 -05:00
  • 647edea970 ARM: Fix the constant describing the number of floating point registers. Gabe Black 2010-06-02 12:58:04 -05:00
  • 2f3102f1ef ARM: Add templates for VFP load/store multiple instructions. Gabe Black 2010-06-02 12:58:04 -05:00
  • 739f23c64c ARM: Add base classes for VFP load/store multiple. Gabe Black 2010-06-02 12:58:04 -05:00
  • cb631d87c3 ARM: Add floating point load/store microops. Gabe Black 2010-06-02 12:58:04 -05:00
  • 3a11412c99 ARM: Add an fp version of one of the microop indexed registers. Gabe Black 2010-06-02 12:58:04 -05:00
  • d5aee75efe ARM: Move the mmap region to where Linux actually has it. Gabe Black 2010-06-02 12:58:04 -05:00
  • a8eb9d521c ARM: Eliminate the unused rhi and rlo operands. Gabe Black 2010-06-02 12:58:03 -05:00
  • b02c7f1bcd ARM: Move the macro mem constructor out of the isa desc. This code doesn't use the parser at all, and moving it out reduces the conceptual complexity of that code. Gabe Black 2010-06-02 12:58:03 -05:00
  • 7b62e9ad71 ARM: Make macroops panic if executed directly. The macroop should never be executed, only it's microops will. Gabe Black 2010-06-02 12:58:03 -05:00
  • 8fadf2691d ARM: GCC < 4.3 has some issues with attribute no return on some functions. Fix so it works for older gccs. Ali Saidi 2010-06-02 12:58:03 -05:00
  • f18040a205 ARM: Split out the "basic" templates and format. Gabe Black 2010-06-02 12:58:03 -05:00
  • c175f1b993 ARM: Remove unnecessary cruft from includes.isa. Gabe Black 2010-06-02 12:58:03 -05:00
  • e29ec7d2ed ARM: Move the inst2string function out of the isa_desc. Delete the now empty formats/util.isa. Gabe Black 2010-06-02 12:58:03 -05:00
  • ae135228fc ARM: Get rid of the unused ArmGenericCodeSubs. Gabe Black 2010-06-02 12:58:03 -05:00
  • 8c012e9571 ARM: Make the predecoder print out the ExtMachInst it gathered when traced. Gabe Black 2010-06-02 12:58:03 -05:00
  • 458bd025d4 ARM: Remove special naming for the new version of multiply. Gabe Black 2010-06-02 12:58:03 -05:00
  • 2196f75a25 ARM: Hook the new multiply instructions into all the decoders. Gabe Black 2010-06-02 12:58:03 -05:00
  • 33da368e99 ARM: Implement all integer multiply instructions. Gabe Black 2010-06-02 12:58:03 -05:00
  • 50229be27f ARM: Add templates for multiply instructions. Gabe Black 2010-06-02 12:58:03 -05:00
  • 3430b34cff ARM: Add base classes for multiply instructions. Gabe Black 2010-06-02 12:58:03 -05:00
  • c7d2f43641 ARM: Decode plain binary immediate thumb data processing instructions. Gabe Black 2010-06-02 12:58:03 -05:00
  • dcf218155d ARM: Define a new "movt" data processing instruction. Gabe Black 2010-06-02 12:58:03 -05:00
  • b615ed1470 ARM: Hook the new branch instructions into the 32 bit thumb decoder. Gabe Black 2010-06-02 12:58:03 -05:00
  • 274badd201 ARM: Hook the new branch instructions into the 16 bit thumb decoder. Gabe Black 2010-06-02 12:58:03 -05:00
  • b6b2f8891a ARM: Eliminate the old style branch instructions. Gabe Black 2010-06-02 12:58:03 -05:00
  • d082705b01 ARM: Hook the new branch instructions into the ARM decoder. Gabe Black 2010-06-02 12:58:02 -05:00
  • 9869343636 ARM: Implement branch instructions external to the decoder. Gabe Black 2010-06-02 12:58:02 -05:00
  • a6c1c8debb ARM: Add new templates for branch instructions. Gabe Black 2010-06-02 12:58:02 -05:00
  • ef3972eaae ARM: Implement new base classes for branches. Gabe Black 2010-06-02 12:58:02 -05:00
  • 769f3406fe ARM: Replace the interworking branch base class with a special operand. Gabe Black 2010-06-02 12:58:02 -05:00
  • b6e7029dd5 ARM: Fix PC operand handling. Gabe Black 2010-06-02 12:58:02 -05:00
  • 7eb3ea2798 ARM: Remove the special naming from the new version of data processing instructions. Gabe Black 2010-06-02 12:58:02 -05:00
  • 4f08b52af2 ARM: Get rid of unnecessary flag calculating functions. Gabe Black 2010-06-02 12:58:02 -05:00