This is misleading since daifset is not a local variable—it is a system register—and it looks identical to other (actual) variables in HLIL. Furthermore, representing this as an assignment implies that _WriteStatusReg returns a value (which it does not).
A better rendering would simply be:
_WriteStatusReg(daifset, 2)
As this does not create the false impression that the result of this expression is stored, and is also simply easier to read.
Take the following assembly:
This writes
0x2
to the DAIFSet system register.This gets rendered in LLIL and higher) as:
This is misleading since
daifset
is not a local variable—it is a system register—and it looks identical to other (actual) variables in HLIL. Furthermore, representing this as an assignment implies that_WriteStatusReg
returns a value (which it does not).A better rendering would simply be:
As this does not create the false impression that the result of this expression is stored, and is also simply easier to read.