https://sourceware.org/bugzilla/show_bug.cgi?id=27139
Bug ID: 27139 Summary: [AArch64] opcodes/aarch64-opc.c: system register id_aa64mmfr2_el1 incorrectly marked as requiring arch=armv8.2-a Product: binutils Version: 2.36 (HEAD) Status: UNCONFIRMED Severity: minor Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: nate at thatsmathematics dot com Target Milestone: --- For aarch64, gas has the system register `id_aa64mmfr2_el1` marked as requiring the armv8.2-a architecture or higher. The relevant line in opcodes/aarch64-opc.c is SR_V8_2 ("id_aa64mmfr2_el1", CPENC (3,0,C0,C7,2), F_REG_READ), and assembling the following fails unless `-march=armv8.2-a` is specified: .global foo .text foo: mrs x0, id_aa64mmfr2_el1 However I can find no indication in the architecture reference manual that this is actually required. The register seems to be part of basic armv8-a, just like `id_aa64mfr0_el1` and `id_aa64mfr0_el1`. In particular I am able to read from this register (in a kernel module) on a Raspberry Pi Cortex-A72 which claims only to be armv8-a. I think `SR_V8_2` should simply be `SR_CORE`. Tested on HEAD, 2.35.50.20210101, commit f9a6a8f09dc231. -- You are receiving this mail because: You are on the CC list for the bug.