[LLVMbugs] [Bug 13138] New: ARM Assembler does not support syntax for implementation defined DSB instructions

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jun 18 10:34:41 PDT 2012


http://llvm.org/bugs/show_bug.cgi?id=13138

             Bug #: 13138
           Summary: ARM Assembler does not support syntax for
                    implementation defined DSB instructions
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: ARM
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: richard.barton at arm.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


The DSB (Data Synchronization Barrier) instruction ensures the completion of
memory accesses and has assembly syntax:

DSB{<c>}{<q>}  {<option>}

Where the optional <option> value can impose a limitation on the types of
memory accesses effected. There are a number of proscribed assembly strings for
this option, the default is "SY"

The ARMARM says the following about this value:

"All other encodings of option are reserved. It is implementation defined
whether options other than SY are implemented. All unsupported and reserved
options must execute as a full system DSB operation, but software must not rely
on this behavior."

Currently, the MC Assembler does not have any syntax for the reserved option
values. GNU recognises "DSB 0x0" for example as the reserved option value 0.
The ARM assembler in MC throws a syntax error on this instruction.

In addition, all encodings of this instruction with any of bits 12:19 unset or
any of the bits 8:11 set is UNPREDICTABLE. The MC decoder does not recognise
this.

Reproduce with:

echo "DSB #0x1" | .../llvm-mc -triple armv7 -show-inst -show-encoding
echo "0x4f 0xf0 0x7e 0xfa | .../llvm-mc -triple armv7 -disassemble -show-isnt
-show-encoding

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list