> On Mar 22, 2016, at 12:06 PM, Bryan Chan <bryan.c...@ca.ibm.com> wrote:
> 
> jgr...@apple.com wrote on 2016-03-22 02:37:47 PM:
> 
> > The runtime functions are hacked in various unsavory ways to give 
> > them Swift-like calling conventions. Many of them also have 
> > important semantics that the compiler needs to be aware of, so if 
> > they aren't exported as standard library API in some way, you really
> > shouldn't interact with them directly. 
> > (swift_class_getInstanceExtents happens to be OK, but what are you 
> > trying to do with it?)
> 
> I am trying to build Swift on a different architecture (s390x). This
> function was causing crashes due to the ABI mismatch, and I also
> found that the issue is not 100% fixed on x86 either, so I wondered
> if the community has an opinion on the right way to deal with this
> in the runtime, or if the answer is simply "don't do this for
> 3-scalar returns".
> 

Yeah, there's no good way right now to return three scalars from Clang. 
swift_class_getInstanceExtents and a few other runtime entrypoints like 
allocBox and allocError use the `TwoWordPair::Return` hack to use types that 
happen to return in two registers on i386, x86_64, armv7, and arm64. If s390x's 
C ABI doesn't define any such types, you might need to wait for proper support 
for Swift calling conventions in Clang. I believe it's on John McCall's 
near-term todo list to do that.

-Joe
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to