[llvm-bugs] [Bug 25720] New: integrated assembler has poor diagnostics

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Dec 2 12:21:14 PST 2015


            Bug ID: 25720
           Summary: integrated assembler has poor diagnostics
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: ARM
          Assignee: unassignedbugs at nondot.org
          Reporter: nicolasweber at gmx.de
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

When trying to build boringssl with clang's integrated assembler, it complains
about this:

thakis at thakis:~/src/chrome/src$ cat arm.S
.fpu neon
.align 4
.global foo
.hidden foo
.type foo, %function
and sp, sp, #0xffffffe0
thakis at thakis:~/src/chrome/src$
third_party/llvm-build/Release+Asserts/bin/clang -c arm.S -march=armv7-a 
-target arm-linux-androideab
arm.S:7:14: error: invalid operand for instruction
and sp, sp, #0xffffffe0

gas accepts this without complaints and converts it into a BIC instruction (a
and not b), as ~0xffffffe0 = 1f fits into the 8bit unshifted immediate.  The
integrated assembler should do this too:

thakis at thakis:~/src/chrome/src$
-c arm.S
thakis at thakis:~/src/chrome/src$
-D -marm arm.o 

arm.o:     file format elf32-littlearm

Disassembly of section .text:

00000000 <.text>:
   0:    e3cdd01f     bic    sp, sp, #31
   4:    e1a00000     nop            ; (mov r0, r0)
   8:    e1a00000     nop            ; (mov r0, r0)
   c:    e1a00000     nop            ; (mov r0, r0)

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20151202/67bb6dba/attachment.html>

More information about the llvm-bugs mailing list