[llvm-commits] [PATCH]Add support for fstmx/fldmx instructions on the ARM backend

Silviu Baranga silbar01 at arm.com
Thu May 24 05:21:38 PDT 2012


Hi Jim,

 

Thanks for the review.

 

These instructions also support the "DB" suffix, and having 

either IA/DB is a required part of the syntax.

 

The tests from fstmx-arm.txt were supposed to test that 

some invalid bit patterns are not decoded as vstm/vldm

instructions (which is  the current behaviour).

Those bit patterns are invalid because they have an odd 

imm8 field (so they are not vstm/vldm instructions) and

the value of the 22nd bit is 1 (so they are not fstmx/fldmx

instructions).

 

I've removed the fstmx-arm.txt test, and added instead

the invalid-fstmx.txt test file (the new patch is attached).

 

Thanks,

Silviu

 

From: Jim Grosbach [mailto:grosbach at apple.com] 
Sent: 22 May 2012 17:32
To: Silviu Baranga
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [PATCH]Add support for fstmx/fldmx instructions on the ARM
backend

 

Hi Silviu,

 

Do these instructions only support the "IA" suffix? Is that suffix always a
required part of the syntax?

 

Index: test/MC/Disassembler/ARM/fstmx-arm.txt

===================================================================

--- test/MC/Disassembler/ARM/fstmx-arm.txt         (revision 0)

+++ test/MC/Disassembler/ARM/fstmx-arm.txt      (revision 0)

@@ -0,0 +1,9 @@

+# RUN: echo "0x0d 0x0b 0xc7 0x0c" | llvm-mc --disassemble
-triple=armv7-linux-gnueabi |& FileCheck %s

+# RUN: echo "0x0b 0x5b 0xd2 0x0c" | llvm-mc --disassemble
-triple=armv7-linux-gnueabi |& FileCheck %s

+# RUN: echo "0x07 0x1b 0x69 0x0d" | llvm-mc --disassemble
-triple=armv7-linux-gnueabi |& FileCheck %s

+# RUN: echo "0x09 0xeb 0x37 0x0d" | llvm-mc --disassemble
-triple=armv7-linux-gnueabi |& FileCheck %s

+# RUN: echo "0x0d 0xfb 0xa4 0x0c" | llvm-mc --disassemble
-triple=armv7-linux-gnueabi |& FileCheck %s

+# RUN: echo "0x0b 0x3b 0xfb 0x0c" | llvm-mc --disassemble
-triple=armv7-linux-gnueabi |& FileCheck %s

+

+# CHECK-NOT: vstm

+# CHECK-NOT: vldm

 

Why all the separate run lines with 'echo' instead of having the bytes in
the file directly, one instruction per line, like the other tests?
Additionally, this should be checking what the disassembly should be, not
just what it should not be. i.e., CHECK lines as well as CHECK-NOT.
Relatedly, what is this testing that the entries in fl-encoding.txt do not
cover?

 

-Jim

 

On May 22, 2012, at 4:05 AM, Silviu Baranga <silbar01 at arm.com> wrote:





Hi,

 

The fstmx/fldmx ARM instructions are currently not implemented in the ARM
backend.

Although these instructions are deprecated, they should still be supported
for assembly and

disassembly purposes.

 

The patch adds support for these instructions and also fixes a problem with
the

vstm/vldm instructions which were colliding with the fstmx/fldmx encoding
space.

 

Please review this patch.

 

Thanks,

Silviu

<fstmx.diff>

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120524/66a2eb1a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fstmx.diff
Type: application/octet-stream
Size: 15939 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120524/66a2eb1a/attachment.obj>


More information about the llvm-commits mailing list