Profiling synchronization barrier
This instruction is a barrier that ensures that all existing profiling data for the current PE has been formatted, and profiling buffer addresses have been translated such that all writes to the profiling buffer have been initiated. A following DSB instruction completes when the writes to the profiling buffer have completed.
If FEAT_SPE is not implemented, this instruction executes as a NOP.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
| CRm | op2 | ||||||||||||||||||||||||||||||
if !IsFeatureImplemented(FEAT_SPE) then EndOfDecode(Decode_NOP); end;
if IsFeatureImplemented(FEAT_FGT) && IsFeatureImplemented(FEAT_SPEv1p5) then let trap_to_el2 : boolean = (PSTATE.EL IN {EL0, EL1} && EL2Enabled() && !IsInHost() && (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') && HFGITR_EL2().PSBCSYNC == '1'); if trap_to_el2 then // to be renamed var except : ExceptionRecord = ExceptionSyndrome(Exception_LDST64BTrap); except.syndrome.iss = 0x3[24:0]; let preferred_exception_return : bits(64) = ThisInstrAddr{}(); let vect_offset : integer = 0x0; AArch64_TakeException(EL2, except, preferred_exception_return, vect_offset); end; end; ProfilingSynchronizationBarrier();
2025-12_rel 2025-12-10 16:41:45
Copyright © 2010-2025 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.