SYSL
System instruction with result
For more information, see
Op0 equals 0b01, cache maintenance, TLB maintenance, and address translation instructions
for the encodings of System instructions.
This instruction is used by the aliases
GCSPOPM
op1 == '011' && CRn == '0111' && CRm == '0111' && op2 == '001'
GCSSS2
op1 == '011' && CRn == '0111' && CRm == '0111' && op2 == '011'
See
below for details of when each alias is preferred.
1
1
0
1
0
1
0
1
0
0
1
0
1
SYSL <Xt>, #<op1>, <Cn>, <Cm>, #<op2>
AArch64.CheckSystemAccess('01', op1, CRn, CRm, op2, Rt, L);
constant integer t = UInt(Rt);
constant integer sys_op0 = 1;
constant integer sys_op1 = UInt(op1);
constant integer sys_op2 = UInt(op2);
constant integer sys_crn = UInt(CRn);
constant integer sys_crm = UInt(CRm);
<Xt>
Is the 64-bit name of the general-purpose destination register, encoded in the "Rt" field.
<op1>
Is a 3-bit unsigned immediate, in the range 0 to 7, encoded in the "op1" field.
<Cn>
Is a name 'Cn', with 'n' in the range 0 to 15, encoded in the "CRn" field.
<Cm>
Is a name 'Cm', with 'm' in the range 0 to 15, encoded in the "CRm" field.
<op2>
Is a 3-bit unsigned immediate, in the range 0 to 7, encoded in the "op2" field.
Alias Conditions
AArch64.SysInstrWithResult(sys_op0, sys_op1, sys_crn, sys_crm, sys_op2, t);