#
14031:7edee4296f90 |
|
31-May-2019 |
Chun-Chen TK Hsu <chunchenhsu@google.com> |
arm: Fix decoding of CRC32 instructions in thumb32
The CRC32 and CRC32C instructions are incorrectly decoded in thumb32 mode according to the latest manual: https://developer.arm.com/docs/ddi0597/latest/top-level-encodings-for-t32/16-bit#dpint_2r
Change-Id: I9c6684f1ec7fe14d3b4cdf13f117a9819e046578 Signed-off-by: Chun-Chen TK Hsu Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19028 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
|
#
13354:c1bdac713ae5 |
|
19-Sep-2018 |
Ciro Santilli <ciro.santilli@arm.com> |
arm: update hint instruction decoding to match ARMv8.5
This fixes:
- unallocated hints that have since been allocated - unallocated and unimplemented hint instructions being treated as Unknown instead of the correct NOP - missing encoding for DBG on A32
Unallocated and unimplemented hints give a warning if executed.
The most important fix was for the CSDB Spectre mitigation instruction, which was added recently and previously unallocated and treated as Unknown.
The Linux kernel v4.18 ARMv7 uses CSDB it and boot would fail with "undefined instruction" since Linux commit 1d4238c56f9816ce0f9c8dbe42d7f2ad81cb6613
Change-Id: I283da3f08a9af4148edc6fb3ca2930cbb97126b8 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/13475 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>
|
#
12542:03cb745f9982 |
|
13-Feb-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Add AArch32 HLT Semihosting interface
AArch32 HLT instruction is now able to issue Arm Semihosting commands as the AArch64 counterpart in either Arm and Thumb mode.
Change-Id: I77da73d2e6a9288c704a5f646f4447022517ceb6 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/8372 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12258:08990d24fe41 |
|
13-Oct-2017 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arm: Add support for armv8 CRC32 instructions
This patch introduces the ARM A32/T32/A64 CRC Instructions, which are mandatory since ARMv8.1. The UNPREDICTABLE behaviours are implemented as follows: 1) CRC32(C)X (64 bit) instructions are decoded as Undefined in Aarch32 2) The instructions support predication in Aarch32 3) Using R15(PC) as source/dest operand is permitted in Aarch32
Change-Id: Iaf29b05874e1370c7615da79a07f111ded17b6cc Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5521 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
8909:7fa0a081f12f |
|
21-Mar-2012 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Clean up condCodes in IT blocks.
|
#
8782:10c9297e14d5 |
|
02-Nov-2011 |
Gabe Black <gblack@eecs.umich.edu> |
SE/FS: Get rid of FULL_SYSTEM in the ARM ISA.
|
#
7602:cd1930acae4e |
|
23-Aug-2010 |
Gene Wu <Gene.Wu@arm.com> |
ARM: BX instruction can be contitional if last instruction in a IT block
Branches are allowed to be the last instuction in an IT block. Before it was assumed that they could not. So Branches in thumb2 were Uncond.
|
#
7432:7501a6d33e3e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Combine some redundant cases in one of the data decode functions.
|
#
7419:10e7f0f18461 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Hook the misc instructions into the thumb decoder.
|
#
7418:e81194228b6e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Move some miscellaneous instructions out of the decoder to share with thumb.
|
#
7410:1589cdca3c6e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement the bkpt instruction.
|
#
7408:ee6949c5bb5b |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement support for the IT instruction and the ITSTATE bits of CPSR.
|
#
7316:bb190cb8ee69 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the CPS instruction.
|
#
7308:d70cc65e9bc8 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the setend instruction.
|
#
7290:ea9189fbb84f |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Make sure some undefined thumb32 instructions fault.
|
#
7258:6e8a3c0a2a40 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the bfi and bfc instructions.
|
#
7256:4229d955ee8e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the ubfx and sbfx instructions.
|
#
7255:61445190b527 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode miscellaneous arm mode media instructions.
|
#
7252:bba68021edca |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the clz instruction.
|
#
7250:40b0a5327df8 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the rbit instruction.
|
#
7248:f5563135de40 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the nop instruction.
|
#
7243:d503503b3966 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the usad8 and usada8 instructions.
|
#
7240:40a17fb6a9c5 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the sel instruction.
|
#
7237:4c1445a9e72b |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode pkh instructions.
|
#
7235:14dcfcf361ef |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the sign/zero extend instructions.
|
#
7231:a9fa4128c5c9 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the 8/16 bit signed/unsigned add/subtract half instructions.
|
#
7227:6f435f54b1fb |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the saturation instructions.
|
#
7224:7d22b6d6093f |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the signed add/subtract and subtract/add instructions.
|
#
7222:c6c7740edaf3 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the unsigned 8 and 16 bit add and subtract instructions.
|
#
7220:31a36c59a937 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the unsigned saturating instructions.
|
#
7218:36503d623788 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the ssub instructions.
|
#
7216:a3261b965224 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the SADD8 and SADD16 instructions.
|
#
7213:beadb1dc1be6 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode 32 bit thumb data processing register instructions.
|
#
7212:746657ee59a2 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the 16 bit thumb versions of the REV* instructions.
|
#
7211:34f55e88891c |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the ARM version of the REV* instructions.
|
#
7210:10d2d0e1e39d |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Pull decoding of ARM pack, unpack, saturate and reverse instructions into a format.
|
#
7201:253d16049184 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Hook up the push/pop versions of stm/ldm in thumb.
|
#
7195:ccd270981263 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the scalar saturating add/subtract instructions.
|
#
7194:f72dc8789553 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the parallel add and subtract instructions.
|
#
7188:1310866e4ed5 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Add support for "SUBS PC, LR and related instructions".
|
#
7185:13467caed8e1 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement ADR as separate from ADD.
|
#
7183:e02a07983705 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Fix when the flag bits are updated for thumb.
|
#
7162:97fe2d298f3e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Remove special naming for the new version of multiply.
|
#
7161:a1e9b36bd4bf |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Hook the new multiply instructions into all the decoders.
|
#
7157:788dfd6e2d0e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode plain binary immediate thumb data processing instructions.
|
#
7154:1fa6d1db1f32 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Hook the new branch instructions into the 16 bit thumb decoder.
|
#
7146:f68d5f1f748c |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Remove the special naming from the new version of data processing instructions.
|
#
7141:423e3dce3e27 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Hook the external data processing instructions into the Thumb decoder.
|
#
7139:20b265c1515f |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Hook the new external data processing instructions to the ARM decoder.
|