#
8588:ef28ed90449d |
|
27-Sep-2011 |
Gabe Black <gblack@eecs.umich.edu> |
ISA parser: Use '_' instead of '.' to delimit type modifiers on operands.
By using an underscore, the "." is still available and can unambiguously be used to refer to members of a structure if an operand is a structure, class, etc. This change mostly just replaces the appropriate "."s with "_"s, but there were also a few places where the ISA descriptions where handling the extensions themselves and had their own regular expressions to update. The regular expressions in the isa parser were updated as well. It also now looks for one of the defined type extensions specifically after connecting "_" where before it would look for any sequence of characters after a "." following an operand name and try to use it as the extension. This helps to disambiguate cases where a "_" may legitimately be part of an operand name but not separate the name from the type suffix.
Because leaving the "_" and suffix on the variable name still leaves a valid C++ identifier and all extensions need to be consistent in a given context, I considered leaving them on as a breadcrumb that would show what the intended type was for that operand. Unfortunately the operands can be referred to in code templates, the Mem operand in particular, and since the exact type of Mem can be different for different uses of the same template, that broke things.
|
#
8304:16911ff780d3 |
|
13-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Construct the predicate test register for more instruction programatically.
If one of the condition codes isn't being used in the execution we should only read it if the instruction might be dependent on it. With the preeceding changes there are several more cases where we should dynamically pick instead of assuming as we did before.
|
#
8303:5a95f1d2494e |
|
13-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Further break up condition code into NZ, C, V bits.
Break up the condition code bits into NZ, C, V registers. These are individually written and this removes some incorrect dependencies between instructions.
|
#
8302:9f23d01421de |
|
13-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Remove the saturating (Q) condition code from the renamed register.
Move the saturating bit (which is also saturating) from the renamed register that holds the flags to the CPSR miscreg and adds a allows setting it in a similar way to the FP saturating registers. This removes a dependency in instructions that don't write, but need to preserve the Q bit.
|
#
8301:858384f3af1c |
|
13-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Break up condition codes into normal flags, saturation, and simd.
This change splits out the condcodes from being one monolithic register into three blocks that are updated independently. This allows CPUs to not have to do RMW operations on the flags registers for instructions that don't write all flags.
|
#
8206:c3090dc00ddf |
|
04-Apr-2011 |
William Wang <William.Wang@arm.com> |
ARM: Cleanup and small fixes to some NEON ops to match the spec.
Only certain bits of the cpacr can be written, some must be equal. Mult instructions that write the same register should do something sane
|
#
7760:e93e7e0caae1 |
|
15-Nov-2010 |
Giacomo Gabrielli <Giacomo.Gabrielli@arm.com> |
CPU/ARM: Add SIMD op classes to CPU models and ARM ISA.
|
#
7422:feddb9077def |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode to specialized conditional/unconditional versions of instructions.
This is to avoid condition code based dependences from effectively serializing instructions when the instruction doesn't actually use them.
|
#
7229:ed81380fd089 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Fix signed most significant multiply instructions.
|
#
7228:09302e193402 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Fix multiply overflow flag setting.
|
#
7196:80c72fc2063b |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Fix multiply operations.
These fixes were provided by Ali and fix the saturation condition code and various multiply instructions.
|
#
7162:97fe2d298f3e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Remove special naming for the new version of multiply.
|
#
7160:3f4333b1d4af |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement all integer multiply instructions.
|