gcsss2

Guarded Control Stack Switch Stack 2

GCSSS2 <Xt>

Second step to switch the GCS pointer.

Details

Second step of a two-instruction sequence to switch the Guarded Control Stack pointer, completing the switch initiated by GCSSS1. This privileged instruction commits the new GCS pointer value and is available when FEAT_GCS is implemented and requires EL1 or higher. The instruction does not affect condition flags.

Pseudocode Operation

if FEAT_GCS == '0' then
  UNDEFINED
else if PSTATE.EL == EL0 then
  UNDEFINED
else
  GCSSwitchStack2(X[t])

Example

GCSSS2 x3

Encoding

Binary Layout
1101010100
1
01
011
0111
0111
011
Rt
 
Format System
Opcode 0xD52B7760
Extension FEAT_GCS (Security)

Operands

  • Xt
    New Stack Ptr

Reference (Arm A64 ISA)

Instruction Forms

Encoding Instruction ISA Bit pattern
0xD52B7760 GCSSS2 <Xt> A64 1101010100 | 1 | 01 | 011 | 0111 | 0111 | 011 | Rt

Description

Guarded Control Stack Switch Stack 2 validates that the most recent entry of the Guarded control stack being switched to contains an In-progress cap entry, stores a Valid cap entry to the Guarded control stack that is being switched from, and sets Xt to the Guarded control stack pointer that is being switched from.