#
10338:8bee5f4edb92 |
|
29-Apr-2014 |
Curtis Dunham <Curtis.Dunham@arm.com> |
arm: use condition code registers for ARM ISA
Analogous to ee049bf (for x86). Requires a bump of the checkpoint version and corresponding upgrader code to move the condition code register values to the new register file.
|
#
10337:85001c018d4c |
|
03-Sep-2014 |
Andrew Bardsley <Andrew.Bardsley@arm.com> |
arm: ISA X31 destination register fix
This patch substituted the zero register for X31 used as a destination register. This prevents false dependencies based on X31.
|
#
10037:5cac77888310 |
|
24-Jan-2014 |
ARM gem5 Developers |
arm: Add support for ARMv8 (AArch64 & AArch32)
Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64 kernel you are restricted to AArch64 user-mode binaries. This will be addressed in a later patch.
Note: Virtualization is only supported in AArch32 mode. This will also be fixed in a later patch.
Contributors: Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation) Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation) Mbou Eyole (AArch64 NEON, validation) Ali Saidi (AArch64 Linux support, code integration, validation) Edmund Grimley-Evans (AArch64 FP) William Wang (AArch64 Linux support) Rene De Jong (AArch64 Linux support, performance opt.) Matt Horsnell (AArch64 MP, validation) Matt Evans (device models, code integration, validation) Chris Adeniyi-Jones (AArch64 syscall-emulation) Prakash Ramrakhyani (validation) Dam Sunwoo (validation) Chander Sudanthi (validation) Stephan Diestelhorst (validation) Andreas Hansson (code integration, performance opt.) Eric Van Hensbergen (performance opt.) Gabe Black
|
#
8902:75b524b64c28 |
|
19-Mar-2012 |
Andreas Hansson <andreas.hansson@arm.com> |
gcc: Clean-up of non-C++0x compliant code, first steps
This patch cleans up a number of minor issues aiming to get closer to compliance with the C++0x standard as interpreted by gcc and clang (compile with std=c++0x and -pedantic-errors). In particular, the patch cleans up enums where the last item was succeded by a comma, namespaces closed by a curcly brace followed by a semi-colon, and the use of the GNU-extension typeof (replaced by templated functions). It does not address variable-length arrays, zero-size arrays, anonymous structs, range expressions in switch statements, and the use of long long. The generated CPU code also has a large number of issues that remain to be fixed, mainly related to overflows in implicit constant conversion (due to shifts).
|
#
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.
|
#
8229:78bf55f23338 |
|
15-Apr-2011 |
Nathan Binkert <nate@binkert.org> |
includes: sort all includes
|
#
8140:7449084b1612 |
|
17-Mar-2011 |
Matt Horsnell <Matt.Horsnell@arm.com> |
ARM: Fix RFE macrop.
This changes the RFE macroop into 3 microops:
URa = [sp]; URb = [sp+4]; // load CPSR,PC values from stack sp = sp + offset; // optionally auto-increment PC = URa; CPSR = URb; // write to the PC and CPSR.
Importantly: - writing to PC is handled in the last micro-op. - loading occurs prior to state changes.
|
#
7643:775ccd204013 |
|
25-Aug-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Seperate out the renamable bits in the FPSCR.
|
#
7310:239ab4e0c7d4 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Allow flattening into any mode.
|
#
7171:75996fe47db8 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Eliminate the unused rhi and rlo operands.
|
#
6734:4ac7bc30c482 |
|
10-Nov-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Fix the integer register indexes.
The PC indexes in the various register sets was defined in the section for unaliased registers which was throwing off the indexing. This moves those where they belong. Also, to make detecting accesses to the PC easier and because it's in the same place in all modes, the intRegForceUser function now passes it through as index 15.
|
#
6726:a5322e816a2a |
|
08-Nov-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Support forcing load/store multiple to use user registers.
|
#
6724:70129fdded75 |
|
08-Nov-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Split the condition codes out of the CPSR.
This allows those bits to be renamed while allowing the other fields to control the behavior of the processor.
|
#
6721:77318ac91316 |
|
08-Nov-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add back in spots for Rhi and Rlo, and use a named constant for LR.
|
#
6717:07546255fb03 |
|
08-Nov-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Set up an intregs.hh for ARM.
Add constants for all the modes and registers, maps for aliasing, functions that use the maps and range check, and use a named constant instead of a magic number for the microcode register.
|