[llvm-commits] Support for ARM Run-Time ABI

Renato Golin renato.golin at arm.com
Fri Sep 17 08:55:52 PDT 2010


Patch: Attached

Rationale: When choosing EABI variant for ARM targets, LLVM should use
functions as defined by the RTABI document [1] to be compatible with
other compilers that follow the same standard, including armcc and
CodeSourcery's GCC. This patch includes some of the specifications
that get automatically selected when the Target Triple is chosen to
conform to the EABI ("arm/thumb*-eabi-*"). Comments are provided,
indicating the specific section of the document it conforms to.

Contents: This patch contains three changes:
 1. Floating-Point helpers: LLVM selects EABI helpers instead of the
default GNU ones, also compatible with CodeSourcery's GCC.
 2. Remainder helper: LLVM lowers the remainder operation by selecting
the helper function and reading the remainder from the appropriate
register.
 3. Memset: EABI memset has a different order of parameters, so we
need to do custom lowering to move them around.

Authors: Renato Golin & Evzen Muller (ARM Ltd.)

[1] http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043c/IHI0043C_rtabi.pdf

-- 
cheers,
--renato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eabi.patch
Type: text/x-patch
Size: 13938 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20100917/ebb848cd/attachment.bin>


More information about the llvm-commits mailing list