On Ubuntu 17.04, with aarch64-linux-gnu-as installed, compile the following assembly code:
# code.s
_start:
mrs x0,icc_igrpen0_el1
with
aarch64-linux-gnu-as code.s
gives the following error:
as.s: Assembler messages:
as.s:3: Error: unknown or missing system register name at operand 2 -- `mrs x0,icc_igrpen0_el1'
However, icc_igrpen0_el1 is described in documentation of ARMv8 profile,cortext-a53 TRM and GICv3 specification.
And the same error applies to registers starts with ICC_.Why gnu assembler does not recognize those ICC_* registers?
ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile, those registers should be used to control the GICv3. These registers should be implemented in ARMv8-compitable architecture. - Douglas Fulton Shaw