gem5.git
14 years agoARM: Decode unconditional ARM instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Decode unconditional ARM instructions.

14 years agoARM: Make sure ldm exception return writes back its base in the right mode.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Make sure ldm exception return writes back its base in the right mode.

This change moves the writeback of load multiple instructions to the beginning
of the macroop. That way, the MicroLdrRetUop that changes the mode will
necessarily happen later, ensuring the writeback happens in the original mode.
The actual value in the base register if it also shows up in the register list
is undefined, so it's fine if it gets clobbered by one of the loads. For
stores where the base register is the lowest numbered in the register list,
the original value should be written back. That means stores can't write back
at the beginning, but the mode changing problem doesn't affect them so they
can continue to write back at the end.

14 years agoARM: Rework how unrecognized/unimplemented instructions are handled.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Rework how unrecognized/unimplemented instructions are handled.

Instead of panic immediately when these instructions are executed, an
UndefinedInstruction fault is returned. In FS mode (not currently
implemented), this is the fault that should, to my knowledge, be triggered in
these situations and should be handled using the normal architected
mechanisms. In SE mode, the fault causes a panic when it's invoked that gives
the same information as the instruction did. When/if support for speculative
execution of ARM is supported, this will allow a mispeculated and unrecognized
and/or unimplemented instruction from causing a panic. Only once the
instruction is going to be committed will the fault be invoked, triggering the
panic.

14 years agoARM: Add support for "SUBS PC, LR and related instructions".
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Add support for "SUBS PC, LR and related instructions".

14 years agoARM: Make ldrs into the PC and ldm exception return do interworking branches.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Make ldrs into the PC and ldm exception return do interworking branches.

14 years agoARM: Align the PC when using it as the base for a load.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Align the PC when using it as the base for a load.

14 years agoARM: Implement ADR as separate from ADD.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Implement ADR as separate from ADD.

14 years agoARM: Add support for interworking branch ALU instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Add support for interworking branch ALU instructions.

14 years agoARM: Fix when the flag bits are updated for thumb.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Fix when the flag bits are updated for thumb.

14 years agoARM: Don't rely on undefined behavior to get arithmetic right shift.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
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.

14 years agoARM: Restrict the shift amount from a register to 8 bits.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
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.

14 years agoARM: Update the stats now that VFP load/store multiple is implemented.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Update the stats now that VFP load/store multiple is implemented.

14 years agoARM: Define the VFP load/store multiple instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Define the VFP load/store multiple instructions.

14 years agoARM: Decode the VFP load/store multiple instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Decode the VFP load/store multiple instructions.

14 years agoARM: Fix the constant describing the number of floating point registers.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Fix the constant describing the number of floating point registers.

14 years agoARM: Add templates for VFP load/store multiple instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Add templates for VFP load/store multiple instructions.

14 years agoARM: Add base classes for VFP load/store multiple.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Add base classes for VFP load/store multiple.

14 years agoARM: Add floating point load/store microops.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Add floating point load/store microops.

14 years agoARM: Add an fp version of one of the microop indexed registers.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Add an fp version of one of the microop indexed registers.

14 years agoARM: Move the mmap region to where Linux actually has it.
Gabe Black [Wed, 2 Jun 2010 17:58:04 +0000 (12:58 -0500)]
ARM: Move the mmap region to where Linux actually has it.

14 years agoARM: Eliminate the unused rhi and rlo operands.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Eliminate the unused rhi and rlo operands.

14 years agoARM: Move the macro mem constructor out of the isa desc.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
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.

14 years agoARM: Make macroops panic if executed directly.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Make macroops panic if executed directly.
The macroop should never be executed, only it's microops will.

14 years agoARM: GCC < 4.3 has some issues with attribute no return on some functions. Fix so...
Ali Saidi [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: GCC < 4.3 has some issues with attribute no return on some functions. Fix so it works for older gccs.

14 years agoARM: Split out the "basic" templates and format.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Split out the "basic" templates and format.

--HG--
rename : src/arch/arm/isa/formats/basic.isa => src/arch/arm/isa/templates/basic.isa

14 years agoARM: Remove unnecessary cruft from includes.isa.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Remove unnecessary cruft from includes.isa.

14 years agoARM: Move the inst2string function out of the isa_desc.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Move the inst2string function out of the isa_desc.
Delete the now empty formats/util.isa.

14 years agoARM: Get rid of the unused ArmGenericCodeSubs.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Get rid of the unused ArmGenericCodeSubs.

14 years agoARM: Make the predecoder print out the ExtMachInst it gathered when traced.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Make the predecoder print out the ExtMachInst it gathered when traced.

14 years agoARM: Remove special naming for the new version of multiply.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Remove special naming for the new version of multiply.

14 years agoARM: Hook the new multiply instructions into all the decoders.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Hook the new multiply instructions into all the decoders.

14 years agoARM: Implement all integer multiply instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Implement all integer multiply instructions.

14 years agoARM: Add templates for multiply instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Add templates for multiply instructions.

14 years agoARM: Add base classes for multiply instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Add base classes for multiply instructions.

14 years agoARM: Decode plain binary immediate thumb data processing instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Decode plain binary immediate thumb data processing instructions.

14 years agoARM: Define a new "movt" data processing instruction.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Define a new "movt" data processing instruction.

14 years agoARM: Hook the new branch instructions into the 32 bit thumb decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Hook the new branch instructions into the 32 bit thumb decoder.

14 years agoARM: Hook the new branch instructions into the 16 bit thumb decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Hook the new branch instructions into the 16 bit thumb decoder.

14 years agoARM: Eliminate the old style branch instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:03 +0000 (12:58 -0500)]
ARM: Eliminate the old style branch instructions.

14 years agoARM: Hook the new branch instructions into the ARM decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Hook the new branch instructions into the ARM decoder.

14 years agoARM: Implement branch instructions external to the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Implement branch instructions external to the decoder.

14 years agoARM: Add new templates for branch instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Add new templates for branch instructions.

14 years agoARM: Implement new base classes for branches.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Implement new base classes for branches.

14 years agoARM: Replace the interworking branch base class with a special operand.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Replace the interworking branch base class with a special operand.

14 years agoARM: Fix PC operand handling.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Fix PC operand handling.

14 years agoARM: Remove the special naming from the new version of data processing instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Remove the special naming from the new version of data processing instructions.

14 years agoARM: Get rid of unnecessary flag calculating functions.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Get rid of unnecessary flag calculating functions.

14 years agoARM: Get rid of the unused Jump format.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Get rid of the unused Jump format.

14 years agoARM: Get rid of obsoleted predicated inst formats, etc.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Get rid of obsoleted predicated inst formats, etc.

14 years agoARM: Implement disassembly for the new data processing classes.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Implement disassembly for the new data processing classes.

14 years agoARM: Hook the external data processing instructions into the Thumb decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Hook the external data processing instructions into the Thumb decoder.

14 years agoARM: Move the modified_imm function from all ARM instructions to just data processing...
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Move the modified_imm function from all ARM instructions to just data processing ones.

14 years agoARM: Hook the new external data processing instructions to the ARM decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Hook the new external data processing instructions to the ARM decoder.

14 years agoARM: Implement data processing instructions external to the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Implement data processing instructions external to the decoder.

14 years agoARM: Add new base classes for data processing instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Add new base classes for data processing instructions.

14 years agoARM: Hook up 32 bit thumb load/store multiple.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Hook up 32 bit thumb load/store multiple.

14 years agoARM: Hook up 16 bit thumb load/store multiple.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Hook up 16 bit thumb load/store multiple.

14 years agoARM: Reimplement load/store multiple external to the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:02 +0000 (12:58 -0500)]
ARM: Reimplement load/store multiple external to the decoder.

--HG--
rename : src/arch/arm/isa/formats/macromem.isa => src/arch/arm/isa/insts/macromem.isa
rename : src/arch/arm/isa/formats/macromem.isa => src/arch/arm/isa/templates/macromem.isa

14 years agoARM: Move the templates for predicated instructions into a separate file.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Move the templates for predicated instructions into a separate file.
This allows the templates to all be available at the same time before any of
the formats, etc. This breaks an artificial circular dependence.

--HG--
rename : src/arch/arm/isa/formats/pred.isa => src/arch/arm/isa/templates/pred.isa

14 years agoARM: Remove the special naming for the new memory instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Remove the special naming for the new memory instructions.
These are the only memory instructions now.

14 years agoARM: Eliminate the old memory formats which are no longer used.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Eliminate the old memory formats which are no longer used.

14 years agoARM: Eliminate decoding for the very deprecated FPA instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Eliminate decoding for the very deprecated FPA instructions.

14 years agoARM: Make the addressing mode 3 loads/stores use the externally defined instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Make the addressing mode 3 loads/stores use the externally defined instructions.

14 years agoARM: Pull double memory instructions out of the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Pull double memory instructions out of the decoder.

14 years agoARM: Force the condition code for 16 bit thumb instructions to be unconditional.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Force the condition code for 16 bit thumb instructions to be unconditional.
Before, because 16 bit thumb instructions didn't set the upper 16 bits of the
ExtMachInst, that field would be interpretted as "equals".

14 years agoARM: Decode 16 bit thumb PC relative memory instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Decode 16 bit thumb PC relative memory instructions.

14 years agoARM: Decode 16 bit thumb immediate addressed memory instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Decode 16 bit thumb immediate addressed memory instructions.

14 years agoARM: Decode 16 bit thumb register addressed memory instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Decode 16 bit thumb register addressed memory instructions.

14 years agoARM: Make single stores decode to the new external store instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Make single stores decode to the new external store instructions.

14 years agoARM: Add a .w to the disassembly of 32 bit thumb instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Add a .w to the disassembly of 32 bit thumb instructions.
This isn't technically correct since the .w should only be added if there are
32 and 16 bit encodings, but always having it always is better than never
having it.

14 years agoARM: Make 32 bit thumb use the new, external load instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Make 32 bit thumb use the new, external load instructions.

14 years agoARM: Define the store instructions from outside the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Define the store instructions from outside the decoder.

--HG--
rename : src/arch/arm/isa/insts/ldr.isa => src/arch/arm/isa/insts/str.isa

14 years agoARM: Define the load instructions from outside the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Define the load instructions from outside the decoder.

14 years agoARM: Implement a new set of base classes for non macro memory instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Implement a new set of base classes for non macro memory instructions.

14 years agoARM: Create a "decoder" directory for the files implementing the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Create a "decoder" directory for the files implementing the decoder.

--HG--
rename : src/arch/arm/isa/armdecode.isa => src/arch/arm/isa/decoder/arm.isa
rename : src/arch/arm/isa/decoder.isa => src/arch/arm/isa/decoder/decoder.isa
rename : src/arch/arm/isa/thumbdecode.isa => src/arch/arm/isa/decoder/thumb.isa
rename : src/arch/arm/isa/vfpdecode.isa => src/arch/arm/isa/decoder/vfp.isa

14 years agoARM: Flesh out the 32 bit thumb store single instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Flesh out the 32 bit thumb store single instructions.

14 years agoARM: Implement the 32 bit thumb load word instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:01 +0000 (12:58 -0500)]
ARM: Implement the 32 bit thumb load word instructions.

14 years agoARM: Add an operand for accessing the current PC.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add an operand for accessing the current PC.

14 years agoARM: Flesh out 32 bit thumb load word decoding.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Flesh out 32 bit thumb load word decoding.

14 years agoARM: Implement some 32 bit thumb data processing immediate instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Implement some 32 bit thumb data processing immediate instructions.

14 years agoARM: Replace the "never" condition with the "unconditional" condition.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Replace the "never" condition with the "unconditional" condition.

14 years agoARM: Add a base class for 32 bit thumb data processing immediate instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a base class for 32 bit thumb data processing immediate instructions.

14 years agoARM: Add a function to decode 32 bit thumb immediate values.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a function to decode 32 bit thumb immediate values.

14 years agoARM: Expand the decoding for 32 bit thumb data processing immediate instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Expand the decoding for 32 bit thumb data processing immediate instructions.

14 years agoARM: Stub out the 32 bit Thumb portion of the decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Stub out the 32 bit Thumb portion of the decoder.

14 years agoARM: Add bitfields for 32 bit thumb.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add bitfields for 32 bit thumb.

14 years agoARM: Decode VFP instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Decode VFP instructions.

14 years agoARM: Stub out the 16 bit thumb decoder.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Stub out the 16 bit thumb decoder.

14 years agoARM: Add thumb bitfields to the ExtMachInst and the isa definition.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add thumb bitfields to the ExtMachInst and the isa definition.

14 years agoARM: Make the decoder handle thumb instructions separately.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Make the decoder handle thumb instructions separately.

--HG--
rename : src/arch/arm/isa/decoder.isa => src/arch/arm/isa/armdecode.isa
rename : src/arch/arm/isa/decoder.isa => src/arch/arm/isa/thumbdecode.isa

14 years agoARM: Add a thumb bit bitfield.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a thumb bit bitfield.

14 years agoARM: Make the predecoder handle Thumb instructions.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Make the predecoder handle Thumb instructions.

14 years agoARM: Make sure ExtMachInst is used consistently instead of regular MachInst.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Make sure ExtMachInst is used consistently instead of regular MachInst.

14 years agoARM: Add a bitfield for setting the regular, inst bits of an ExtMachInst.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a bitfield for setting the regular, inst bits of an ExtMachInst.

14 years agoARM: Add a bit to the ExtMachInst to select thumb mode.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Add a bit to the ExtMachInst to select thumb mode.

14 years agoARM: Allow ARM processes to start in Thumb mode.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Allow ARM processes to start in Thumb mode.

14 years agoARM: Detect thumb mode elf images.
Gabe Black [Wed, 2 Jun 2010 17:58:00 +0000 (12:58 -0500)]
ARM: Detect thumb mode elf images.

14 years agoARM: Add a new base class for instructions that can do an interworking branch.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Add a new base class for instructions that can do an interworking branch.

14 years agoARM: Track the current ISA mode using the PC.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Track the current ISA mode using the PC.

14 years agoARM: Fix custom writer/reader code for non indexed operands.
Gabe Black [Wed, 2 Jun 2010 17:57:59 +0000 (12:57 -0500)]
ARM: Fix custom writer/reader code for non indexed operands.