#
14176:c6c06f180cb9 |
|
23-Jul-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
arch-arm, cpu: fix ARM ubsan build on GCC 7.4.0
In src/cpu/reg_class.hh, numPinnedWrites was unset because the constructors were not well factored out.
Change-Id: Ib2fc8d34a1adf5c48826d257a31dd24dfa64a08a Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20048 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
14043:2cbe8d275b08 |
|
31-May-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
arch-arm: implement VMINNM scalar thumb
VMINNM was implemented at Iabbbca2932557cf6c98ce36690c385c3ddf39ed8 but the thumb scalar encoding was missing. This patch implements it.
Change-Id: Ia29ec77dbd82f6be6b3d040a0e737794f52c33bf Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19108 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13979:1e0c4607ac12 |
|
30-Apr-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
arch-arm: implement VMINNM and VMAXNM scalar version
ARMv8.2 16-bit versions have not yet been implemented, but a placeholders were created for them.
Refactor the nearby decoding tree to closely match the ARM spec A32 decode table.
That piece of the tree can also be called from thumb which decodes it in the same way, although the thumb decode table has a different terminology
The old code didn't match neither A32 or T32 terminologies, so it is better to at least match one of them to help verify correctness.
Change-Id: Iabbbca2932557cf6c98ce36690c385c3ddf39ed8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18690 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13978:896f9f7a1d16 |
|
10-Apr-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
arch-arm: implement VMINNM and VMAXNM SIMD version
This instruction is backported from aarch64.
In order to use the existing fplibMinNum backend, we first move VMIN and VPMIN to use fplib. Adding VMINNM is then trivial.
Change-Id: I404daabeb6079f60e51a648a06d5b3e54f1c24a9 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18689 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13977:13f7408bafff |
|
10-Apr-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
arch-arm: rename operands to match spec in isa/formats/fp.isa
Matches ARM DDI 0487D.a decoding tables.
Change-Id: I48338ef956a04308d55d1022229ebe0962a8fe5d Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18688 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13753:b9671850fdce |
|
11-Mar-2019 |
Ryan Gambord <gambordr@oregonstate.edu> |
arch-arm: Fixing implicit fallthrough build errors
2c242d6 introduced implicit-fallthrough errors when building against ARM.
Added "default: return new Unknown(machInst);" to offending switch statements; please verify this is the corret behavior
Signed-off-by: Ryan Gambord
Change-Id: I5f5e3661ec562d4a3b2699e07d1195e6877ff959 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17071 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
|
#
13738:84439021dcf6 |
|
18-Feb-2019 |
Ciro Santilli <ciro.santilli@arm.com> |
arch-arm: implement floating point aarch32 VCVTA family
These instructions round floating point to integer, and were added to aarch32 as an extension to ARMv7.
Change-Id: I62d1705badc95a4e8954a5ad62b2b6bc9e4ffe00 Reviewed-on: https://gem5-review.googlesource.com/c/16788 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
13169:eb3b2bea4231 |
|
08-May-2018 |
Matt Horsnell <matt.horsnell@arm.com> |
arch-arm: AArch32 Crypto AES
This patch implements the AArch32 AES instructions from the Crypto extension.
Change-Id: I51e6deda748b0c26135bcfe9d0c7128f3af91f3d Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Matt Horsnell <matt.horsnell@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/13248 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
13168:4965381c122d |
|
11-Apr-2018 |
Matt Horsnell <matt.horsnell@arm.com> |
arch-arm: AArch32 Crypto SHA
This patch implements the AArch32 secure hashing instructions from the Crypto extension.
Change-Id: Iaba8424ab71800228a9aff039d93f5c35ee7d8e5 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/13247 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
13120:690a0db8e58b |
|
28-Jun-2018 |
Edmund Grimley Evans <Edmund.Grimley-Evans@arm.com> |
arch-arm: Add FP16 support introduced by Armv8.2-A
This changeset adds support for FP/SIMD instructions with half-precision floating-point operands.
Change-Id: I4957f111c9c5e5d6a3747fe9d169d394d642fee8 Signed-off-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/13084 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12595:b5a51007feac |
|
19-Feb-2018 |
Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com> |
arm: Fix implicit-fallthrough warnings when building with gcc-7+
gcc 7 onwards have additional heuristics to detect implicit fallthroughs and it fails the build with warnings for ARM as a result. There was one gcc bug[1] that I fixed but the rest are cases that gcc cannot detect due to the point at which it does the fallthrough check. Most of this patch adds __builtin_unreachable() hints in places that throw this warning to indicate to gcc that the fallthrough will never happen.
The remaining cases are actually possible fallthroughs due to incorrect code running on the simulator; in which case an Unknown instruction is returned.
[1] https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01105.html
Change-Id: I1baa9fa0ed15181c10c755c0bd777f88b607c158 Signed-off-by: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com> Reviewed-on: https://gem5-review.googlesource.com/8541 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
|
#
11671:520509f3e66c |
|
13-Oct-2016 |
Mitch Hayenga <mitch.hayenga@arm.com> |
isa,arm: Add missing AArch32 FP instructions
This commit adds missing non-predicated, scalar floating point instructions. Specifically VRINT* floating point integer rounding instructions and VSEL* floating point conditional selects.
Change-Id: I23cbd1389f151389ac8beb28a7d18d5f93d000e7 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nathanael Premillieu <nathanael.premillieu@arm.com>
|
#
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
|
#
9550:e0e2c8f83d08 |
|
19-Feb-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
scons: Fix up numerous warnings about name shadowing
This patch address the most important name shadowing warnings (as produced when using gcc/clang with -Wshadow). There are many locations where constructor parameters and function parameters shadow local variables, but these are left unchanged.
|
#
8607:5fb918115c07 |
|
31-Oct-2011 |
Gabe Black <gblack@eecs.umich.edu> |
GCC: Get everything working with gcc 4.6.1.
And by "everything" I mean all the quick regressions.
|
#
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.
|
#
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.
|
#
8270:34d2cb97a7a8 |
|
04-May-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Fix small bug with vcvt instruction
|
#
8144:db0663be3f31 |
|
17-Mar-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Fix small bug with VLDM/VSTM instructions.
|
#
7853:69aae4379062 |
|
18-Jan-2011 |
Matt Horsnell <Matt.Horsnell@ARM.com> |
ARM: The ARM decoder should not panic when decoding undefined holes is arch.
This can abort simulations when the fetch unit runs ahead and speculatively decodes instructions that are off the execution path.
|
#
7643:775ccd204013 |
|
25-Aug-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Seperate out the renamable bits in the FPSCR.
|
#
7639:8c09b7ff5b57 |
|
25-Aug-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement all ARM SIMD instructions.
|
#
7591:aabe621e58df |
|
23-Aug-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Decode neon memory instructions.
|
#
7435:62bdb68bb314 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the neon instruction space.
|
#
7413:18e0f95d1f32 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Detect a bad offset field for the VFP Ldm/Stm instructions in the decoder.
|
#
7407:70f65d4c7fe3 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Get rid of some of the old FP implementation.
|
#
7398:063002e7106b |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement conversion to/from half precision.
|
#
7394:bd00fbc41bb1 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Even though writes to MVFR0/1 should be unpredictable, we need to make them to do nothing.
|
#
7392:43b0cd94ced6 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the version of VMRS that writes to the APSR.
|
#
7389:714dea5b5298 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VCMPE instruction.
|
#
7380:baee640ca6a4 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the version of VCVT float to int that rounds towards zero.
|
#
7379:92ef7238d230 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the floating/fixed point VCVT instructions.
|
#
7377:ce388054b481 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of VCMP.
|
#
7376:3b781776b2d9 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add support for VFP vector mode.
|
#
7374:9a80d013b955 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement VCVT between double and single width FP.
|
#
7373:65786254fdd1 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement vcvt between int and fp. Ignore rounding.
|
#
7372:66dffab79795 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Consolidate the VFP register index computation code.
|
#
7371:83612101a826 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP negated multiplies.
|
#
7370:6fa1e296585d |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP versions of VMLA and VMLS.
|
#
7369:f71b906540cf |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of vdiv and vsqrt.
|
#
7368:3053e3587124 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of vsub.
|
#
7367:8c3ec534f022 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of vadd.
|
#
7366:4efa4733e66e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of vabs.
|
#
7365:a7a6cc5f6a89 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of vneg.
|
#
7364:9d34477e6adb |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the VFP version of vmul.
|
#
7363:3b3b3325140c |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Move the VFP data operation decode into a function.
|
#
7356:ff7e89d1a964 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Move the FP decode blocks into functions.
|
#
7346:b8826d184ea3 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the VSTR instruction.
|
#
7337:41379badc620 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the VLDR instruction.
|
#
7335:76f94f8ed949 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode all the various forms of vmov.
|
#
7326:299edea3e5a2 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the VMRS instruction.
|
#
7323:3b28dfe5a13a |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the VMSR instruction.
|
#
7321:d0fdf3452086 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode 8, 16, and 32 bit transfers between core and extension (fp) registers.
|
#
7178:7f0ac1abc621 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the VFP load/store multiple instructions.
|
#
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.
|
#
6252:af2c9d9accda |
|
21-Jun-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Remove the currently unecessary FPAOp class.
|
#
6243:3a1698fbbc9f |
|
21-Jun-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Make the isa parser aware that CPSR is being used.
|
#
6242:1cee707c1228 |
|
21-Jun-2009 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Pull some static code out of the isa desc and create miscregs.hh.
|
#
6019:76890d8b28f5 |
|
05-Apr-2009 |
Stephen Hines <hines@cs.fsu.edu> |
arm: add ARM support to M5
|