Commit c2d2385d authored by Jeffrey Lee's avatar Jeffrey Lee Committed by ROOL
Browse files

Remove CSDB architecture version warnings

Although CSDB was only codified at around the time that ARMv8.4 was
introduced, there aren't any architecture version restrictions placed on
it in the ARMv8 ARM, and the encoding was even added to a new edition of
the ARMv7 ARM, also without any architecture version restrictions.

For ordinary instructions this would feel a lot like a documentation
error, but since CSDB is a barrier instruction which fits inside a
NOP-like address space (MSR which doesn't write to any PSR fields), and
it was introduced as part of Arm's Spectre/Meltdown mitigations, it's
likely that Arm did their homework and confirmed that the encoding has
the correct behaviour on all (licensed) implementations.

The ARMv7 ARM only goes back to ARMv4, but it's likely that older CPUs
also implement CSDB correctly, by virtue of the fact that they'll be too
old to be doing any speculative execution.

With the above in mind, it should be safe to remove our "ARMv8.4 or
later" warning from the disassembly.

Version 2.08. Tagged as 'Debugger-2_08'
parent 779900bc
......@@ -9,12 +9,12 @@
GBLS Module_ApplicationDate
GBLS Module_HelpVersion
GBLS Module_ComponentName
Module_MajorVersion SETS "2.07"
Module_Version SETA 207
Module_MajorVersion SETS "2.08"
Module_Version SETA 208
Module_MinorVersion SETS ""
Module_Date SETS "16 May 2020"
Module_ApplicationDate SETS "16-May-20"
Module_Date SETS "19 Jun 2021"
Module_ApplicationDate SETS "19-Jun-21"
Module_ComponentName SETS "Debugger"
Module_FullVersion SETS "2.07"
Module_HelpVersion SETS "2.07 (16 May 2020)"
Module_FullVersion SETS "2.08"
Module_HelpVersion SETS "2.08 (19 Jun 2021)"
END
/* (2.07)
/* (2.08)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 2.07
#define Module_MajorVersion_CMHG 2.08
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 16 May 2020
#define Module_Date_CMHG 19 Jun 2021
#define Module_MajorVersion "2.07"
#define Module_Version 207
#define Module_MajorVersion "2.08"
#define Module_Version 208
#define Module_MinorVersion ""
#define Module_Date "16 May 2020"
#define Module_Date "19 Jun 2021"
#define Module_ApplicationDate "16-May-20"
#define Module_ApplicationDate "19-Jun-21"
#define Module_ComponentName "Debugger"
#define Module_FullVersion "2.07"
#define Module_HelpVersion "2.07 (16 May 2020)"
#define Module_LibraryVersionInfo "2:7"
#define Module_FullVersion "2.08"
#define Module_HelpVersion "2.08 (19 Jun 2021)"
#define Module_LibraryVersionInfo "2:8"
......@@ -54,7 +54,6 @@ TSB_A1(cond,nonstandard)
CSDB_A1(cond,nonstandard)
{
COMMON
ONLY1(ARMv8p4);
_UNPREDICTABLE(cond!=14);
sprintf(params->buf,"CSDB%s",condition(JUSTPARAMS,cond));
return;
......
......@@ -318,11 +318,17 @@ Hints ROUT
ADRCC r10, EsbH
ADREQ r10, TsbH
ADRHI r10, CsdbH
[ WarnARMv8
[ WarnARMv8
MOVCC r14, #Mistake_ARMv8p2
MOVCS r14, #Mistake_ARMv8p4
MOVEQ r14, #Mistake_ARMv8p4
MOVHI r14, #0 ; CSDB was only codified in ARMv8p4, but is believed to have correct behaviour on all architecture versions
STR r14, Mistake
|
[ WarnARMv6K
MOVHI r14, #0
STRHI r14, Mistake
]
]
AND r8, r4, #2_1111:SHL:28
TEQS r8, #2_1110:SHL:28 ; Note conditional is unpredictable
MOVNE r14, #Mistake_Unpred
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment