[PATCH][AArch64] Enable access to the whole MRS/MSR system reg encoding space

Tom Coxon tom.coxon at arm.com
Mon Sep 29 03:32:56 PDT 2014

Hi Jim,

Could you let me know which patch would be preferred? The new one is attached. The previous one you approved (but was shot down by James Molloy) didn't include the command line option.


-----Original Message-----
From: Tom Coxon [mailto:tom.coxon at arm.com] 
Sent: 19 September 2014 17:02
To: 'Jim Grosbach'
Cc: llvm-commits; 'james at jamesmolloy.co.uk'
Subject: RE: [PATCH][AArch64] Enable access to the whole MRS/MSR system reg encoding space

Hi Jim,

Thanks for approving the patch. In case you missed it, James Molloy raised a concern:

> However, the change makes the production compiler less strict, and I
> don't think that's right. This change should be enabled behind a flag
> so that a user explicitly has to opt-in to it.

I've attached an alternative patch that enables it only when -aarch64-enable-undefined-sysregs is used. Could you let me know your preference?


-----Original Message-----
From: Jim Grosbach [mailto:grosbach at apple.com] 
Sent: 18 September 2014 17:55
To: Tom Coxon
Cc: llvm-commits
Subject: Re: [PATCH][AArch64] Enable access to the whole MRS/MSR system reg encoding space

Huh. I thought we already did that for exactly the reasons you state. In any case, sounds reasonable to me. Patch looks fine, please commit.


> On Sep 18, 2014, at 6:57 AM, Tom Coxon <tom.coxon at arm.com> wrote:
> Hi all,
> The attached patch enables access to the whole space of ARMv8-A system registers through the S<op0>_<op1>_<Cn>_<Cm>_<op2> syntax.
> This is useful to anyone needing to write assembly code supporting new system registers before the assembler has learned the official names for them.
> Although this is a real use case, it is niche and most users should still use the official system registers names. In order to avoid encouraging general use of this syntax, ARM is not planning to document this in the ARMARM.
> Regards,
> Tom
> Files changed:
> lib/Target/AArch64/AArch64InstrFormats.td          |   12 +++----
> .../AArch64/Disassembler/AArch64Disassembler.cpp   |   24 +++----------
> .../AArch64/InstPrinter/AArch64InstPrinter.cpp     |   12 +++----
> lib/Target/AArch64/Utils/AArch64BaseInfo.cpp       |   36 +++++++-------------
> lib/Target/AArch64/Utils/AArch64BaseInfo.h         |    2 +-
> test/MC/AArch64/arm64-system-encoding.s            |    4 +++
> test/MC/AArch64/basic-a64-diagnostics.s            |   16 ++++-----
> test/MC/AArch64/basic-a64-instructions.s           |    8 +++--
> 8 files changed, 44 insertions(+), 70 deletions(-)
> <0001-AArch64-Allow-access-to-all-system-registers-with-MR.patch>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AArch64-Allow-access-to-all-system-registers-with-MR.patch
Type: application/octet-stream
Size: 8311 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140929/922eae71/attachment.obj>

More information about the llvm-commits mailing list