[LLVMdev] Add support for ldr pseudo instruction in ARM integrated assembler

Sean Silva chisophugis at gmail.com
Fri Oct 25 16:23:41 PDT 2013


(also, see my other reply)


On Fri, Oct 25, 2013 at 6:04 PM, Renato Golin <renato.golin at linaro.org>wrote:

> On 25 October 2013 22:35, Sean Silva <chisophugis at gmail.com> wrote:
>
>> I would like to see this features supported.
>>
>
> Hi Sean,
>
> I'm not opposing, I'm just saying that we'll need critical reasons for
> having a support that will introduce GCC-extensions blindly.
>
>
>
>>  I have run into code in the wild that cannot be handled by the LLVM
>> toolchain due to this issue.
>>
>
> What kind of situation? Was it possible to change the source file? Or was
> it something that only this extension can express?
>

It was in a tutorial on embedded programming (and a damn good one at that!)
<http://www.bravegnu.org/gnu-eprog/>. I didn't know very much about ARM
assembler (still don't; I still haven't "gone deep" with ARM like I have
with x86). Really all I remember about the situation was "GNU as supports
this with the = sign and not without, and LLVM supports this without the
equal sign but not with" (I also tried a couple other trivial modifications
guided by the diagnostics and looking at the LLVM source, but basically I
was seeing a situation where minor changes (remember, from a total newb to
ARM asm) to the program couldn't make both GNU as and LLVM happy). After
looking through the ARM assembler test suite and seeing a couple FIXME's
relating to LDR, I assumed that that part of the assembler was just
incomplete and didn't pursue using the LLVM toolchain for the tutorial any
further.

Any guidance for completing that tutorial with the LLVM toolchain would be
much appreciated, as I'd really like to go through it again using the LLVM
toolchain (the "binutils" part is obviously not quite there yet, and if I'm
feeling ambitious I can implement that functionality as I go (not much is
needed); but I would hope that the rest is doable with the LLVM toolchain
as-is). I have attached a somewhat cleaned-up version of my
working-directory for the tutorial in case if it is helpful (it assumes
that qemu and arm-none-eabi-* are in your $PATH).

-- Sean Silva



>
> cheers,
> --renato
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131025/e6f4ba75/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm-embedded.tar
Type: application/x-tar
Size: 30720 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131025/e6f4ba75/attachment.tar>


More information about the llvm-dev mailing list