https://llvm.org/bugs/show_bug.cgi?id=27250

Renato Golin <renato.go...@linaro.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |INVALID

--- Comment #3 from Renato Golin <renato.go...@linaro.org> ---
To be clear, what's going on here is that in AArch64, ARM ARM (C1.2), the
assembler is allowed (but not compelled) to not use hashes for immediates,
which is not true for ARMv7 and previous.

Whoever wrote that code abused of a specific behaviour that was not intended
for that kind of inline asm constraint. There is nothing to fix in the
compiler, since the code is not invalid. We just need to find another
constraint code to make it output expressions, rather than immediates.

The proper fix is to change the code to:

void foo () {
  asm(".globl test; .set test, %c0" :: "I"(24));
}

Works on ARM and AArch64, GCC and Clang.

(hat tip to Jim Wilson)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to