Closed
Description
I've come to believe the ABI scheme I cooked up is overly complicated. The current scheme involves a set of ABIs, some of which are "platform specific" and some of which are not, and we select the most specific one we can for a given target. I'd prefer to say that an ABI string selects exactly one ABI, and then define some meta-ABIs that may vary by platform. In addition, some ABIs may be specific to a platform, in which case invocations of functions with that ABI cannot be compiled to other platforms.
I'm thinking of a set of ABI strings like:
C
-- a meta descriptor representing "C-like conventions", as todayfastcall
-- LLVM's fastcallstdcall
-- win32 specificsystem
--stdcall
on windows,C
elsewhere (borrowed from D)aapcs
-- ARM specific- etc