[llvm-dev] compler-rt, __aeabi_memcpy () possibly broken (ARM)

Renato Golin via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 11 07:42:35 PDT 2016


On 11 April 2016 at 15:12, Tim Northover <t.p.northover at gmail.com> wrote:
> Normal AAPCS functions are allowed to corrupt d0-d7 and d16-d31, but
> the RTABI seems pretty explicit that these functions aren't. I think
> we've got a real problem here.

Hum... (went to read the AAPCS again), right.

I'm guessing we haven't got that problem yet because no one uses those
registers or they save/restore. But this is a potential problem, yes.

On free-standing environments (Linux), Vinicius fixed the need for
__aeabi_mempcy to point to memcpy, so we could remove RT's copy if
it's only about Linux (and possibly Android's bionic). But I don't
know about BSD or OSX.

However, implementing a crude version of those functions in RT is not
a solution, as we're bound to get many things wrong for a long time.

cheers,
--renato


More information about the llvm-dev mailing list