This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Calling convention for "Routines for floating point emulation"


I'd like to ask what should be the calling convention/ABI for these
routines on platforms with hardware floating point support (but
somehow still want to generate a libcall for whatever reasons).

In particular, it seems that on all the platforms with a
arm*-*-gnueabihf triple I've checked (alarm armv7h, alarm armv6h,
debian armhf, fedora armv7hl) the __powidf2 function (and possibly
many others) are compiled with the AAPCS VFP calling convention, which
is also how it is used by gcc. However, LLVM dev (CC'd) claims that
these routines are meant to be always using soft floating point
calling convention even on platforms using hard floating point ABI.

A breif google search doesn't show document supporting either so what
exactly should be used? Is it documented anywhere or what's the
default rule to decide the calling conventions for these functions? In
either case I think it's be nice if the document is a little more
explicit about this.

Yichao Yu

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]