The GCSPOPM characteristics are:
Loads the 64-bit doubleword that is pointed to by the current Guarded control stack pointer, writes it to the destination register, and increments the current Guarded control stack pointer register by the size of a Guarded control stack procedure return record.
This instruction is present only when FEAT_GCS is implemented. Otherwise, direct accesses to GCSPOPM are UNDEFINED.
GCSPOPM is a 64-bit System instruction.
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
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 |
output for Guarded control stack procedure return record | |||||||||||||||||||||||||||||||
output for Guarded control stack procedure return record |
Output value for Guarded control stack procedure return record.
Accesses to this instruction use the following encodings in the System instruction encoding space:
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b01 | 0b011 | 0b0111 | 0b0111 | 0b001 |
if PSTATE.EL == EL0 then X[t, 64] = GCSPOPM(); elsif PSTATE.EL == EL1 then X[t, 64] = GCSPOPM(); elsif PSTATE.EL == EL2 then X[t, 64] = GCSPOPM(); elsif PSTATE.EL == EL3 then X[t, 64] = GCSPOPM();
04/07/2023 11:22; 1b994cb0b8c6d1ae5a9a15edbc8bd6ce3b5c7d68
Copyright © 2010-2023 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.