(old) | htmldiff from- | (new) |
Debug Change PE State to EL3 allows the debugger to move the PE into EL3 from a lower Exception level or to a specific mode at the current Exception level.
DCPS3 is undefined if any of:
When the PE executes DCPS3:
For more information on the operation of the DCPS<n> instructions, see DCPS.
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
if !HaveEL(EL3) then UNDEFINED;
if !Halted() || EDSCR.SDD == '1' then UNDEFINED;
if ELUsingAArch32(EL3) then
from_secure = CurrentSecurityStateIsSecure() == SS_Secure;
();
if PSTATE.M == M32_Monitor then SCR.NS = '0';
AArch32.WriteMode(M32_Monitor);
if HavePANExt() then
if !from_secure then
PSTATE.PAN = '0';
elsif SCTLR.SPAN == '0' then
PSTATE.PAN = '1';
PSTATE.E = SCTLR.EE;
LR_mon = bits(32) UNKNOWN;
SPSR_mon = bits(32) UNKNOWN;
DLR = bits(32) UNKNOWN;
DSPSR = bits(32) UNKNOWN;
else // Targeting EL3 using AArch64
AArch64.MaybeZeroRegisterUppers();
MaybeZeroSVEUppers(EL3);
PSTATE.nRW = '0';
PSTATE.SP = '1';
PSTATE.EL = EL3;
if HaveUAOExt() then PSTATE.UAO = '0';
ELR_EL3 = bits(64) UNKNOWN;
ESR_EL3 = bits(64) UNKNOWN;
SPSR_EL3 = bits(64) UNKNOWN;
DLR_EL0 = bits(64) UNKNOWN;
DSPSR_EL0 = bits(64) UNKNOWN;
sync_errors = HaveIESB() && SCTLR_EL3.IESB == '1';
if HaveDoubleFaultExt() && SCR_EL3.EA == '1' && SCR_EL3.NMEA == '1' then
sync_errors = TRUE;
// SCTLR_EL3.IESB might be ignored in Debug state.
if !ConstrainUnpredictableBool(Unpredictable_IESBinDebug) then
sync_errors = FALSE;
if sync_errors then SynchronizeErrors();
UpdateEDSCRFields(); // Update EDSCR PE state flags
Internal version only: isa v01_27v01_26, pseudocode v2022-03_relv2021-12_to_suppress_diffs_in_2022_03_RC1
; Build timestamp: 2022-03-29T102022-03-08T10:4611
Copyright © 2010-20222010-2021 Arm Limited or its affiliates. All rights reserved.
This document is Non-Confidential.
(old) | htmldiff from- | (new) |