[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/27139] New: [AArch64] opcodes/aarch64-opc.c: system register id
From: |
nate at thatsmathematics dot com |
Subject: |
[Bug gas/27139] New: [AArch64] opcodes/aarch64-opc.c: system register id_aa64mmfr2_el1 incorrectly marked as requiring arch=armv8.2-a |
Date: |
Fri, 01 Jan 2021 08:27:35 +0000 |
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.
- [Bug gas/27139] New: [AArch64] opcodes/aarch64-opc.c: system register id_aa64mmfr2_el1 incorrectly marked as requiring arch=armv8.2-a,
nate at thatsmathematics dot com <=