← Home

DAIF

Interrupt Mask Bits

Allows access to the interrupt mask bits.

Configuration

This register is present only when FEAT_AA64 is implemented. Otherwise, direct accesses to DAIF are UNDEFINED.

Attributes

DAIF is a 64-bit register.

Field descriptions

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
RES0
RES0DAIFRES0

Bits [63:10]:

Reserved, RES0.

D, bit [9]:

Process state D mask.

DMeaning
0b0

Watchpoint, Breakpoint, and Software Step exceptions targeted at the current Exception level are not masked.

0b1

Watchpoint, Breakpoint, and Software Step exceptions targeted at the current Exception level are masked.

When the target Exception level of the debug exception is higher than the current Exception level, the exception is not masked by this bit.

The reset behavior of this field is:

A, bit [8]:

SError exception mask bit.

AMeaning
0b0

Exception not masked.

0b1

Exception masked.

The reset behavior of this field is:

I, bit [7]:

IRQ mask bit.

IMeaning
0b0

Exception not masked.

0b1

Exception masked.

The reset behavior of this field is:

F, bit [6]:

FIQ mask bit.

FMeaning
0b0

Exception not masked.

0b1

Exception masked.

The reset behavior of this field is:

Bits [5:0]:

Reserved, RES0.

Access Instructions

Accesses to this register use the following encodings in the System register encoding space:

MRS <Xt>, DAIF

(op0 = 0b11, op1 = 0b011, CRn = 0b0100, CRm = 0b0010, op2 = 0b001)

if !IsFeatureImplemented(FEAT_AA64) then UNDEFINED; elsif PSTATE.EL == EL0 then if ELIsInHost(EL0) || SCTLR_EL1.UMA == '0' then if EL2Enabled() && HCR_EL2.TGE == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else AArch64.SystemAccessTrap(EL1, 0x18); else X[t, 64] = Zeros(54):PSTATE.<D,A,I,F>:Zeros(6); elsif PSTATE.EL == EL1 then X[t, 64] = Zeros(54):PSTATE.<D,A,I,F>:Zeros(6); elsif PSTATE.EL == EL2 then X[t, 64] = Zeros(54):PSTATE.<D,A,I,F>:Zeros(6); elsif PSTATE.EL == EL3 then X[t, 64] = Zeros(54):PSTATE.<D,A,I,F>:Zeros(6);

MSR DAIF, <Xt>

(op0 = 0b11, op1 = 0b011, CRn = 0b0100, CRm = 0b0010, op2 = 0b001)

if !IsFeatureImplemented(FEAT_AA64) then UNDEFINED; elsif PSTATE.EL == EL0 then if ELIsInHost(EL0) || SCTLR_EL1.UMA == '0' then if EL2Enabled() && HCR_EL2.TGE == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else AArch64.SystemAccessTrap(EL1, 0x18); else PSTATE.<D,A,I,F> = X[t, 64]<9:6>; elsif PSTATE.EL == EL1 then PSTATE.<D,A,I,F> = X[t, 64]<9:6>; elsif PSTATE.EL == EL2 then PSTATE.<D,A,I,F> = X[t, 64]<9:6>; elsif PSTATE.EL == EL3 then PSTATE.<D,A,I,F> = X[t, 64]<9:6>;

MSR DAIFSet, #<imm>

(op0 = 0b00, op1 = 0b011, CRn = 0b0100, op2 = 0b110)

MSR DAIFClr, #<imm>

(op0 = 0b00, op1 = 0b011, CRn = 0b0100, op2 = 0b111)


Version 2025.09 — Copyright © 2010-2025 Arm Limited or its affiliates.

This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.