bug-binutils
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]