On Aug 17, 2009, at 4:08 PM, David Chisnall wrote:
> Author: theraven
> Date: Mon Aug 17 18:08:21 2009
> New Revision: 79288
>
> URL: http://llvm.org/viewvc/llvm-project?rev=79288&view=rev
> Log:
> Changes to TargetABIInfo to (hopefully) select the correct calling
> convention. This has been tested on FreeBSD, and now correctly
> generates GCC-compatible code for functions returning small
> structures. Please test it on other platforms!
Yay for good results!
> if (strcmp(TargetPrefix, "x86") == 0) {
> bool IsDarwin = strstr(getContext().Target.getTargetTriple(),
> "darwin");
> + bool isPPCStructReturnABI = IsDarwin ||
> + strstr(getContext().Target.getTargetTriple(), "cygwin") ||
> + strstr(getContext().Target.getTargetTriple(), "mingw") ||
> + strstr(getContext().Target.getTargetTriple(), "netware") ||
> + strstr(getContext().Target.getTargetTriple(), "freebsd") ||
> + strstr(getContext().Target.getTargetTriple(), "openbsd");
I admit that the original check for darwin was completely hideous
here, but this is making it a lot worse. Can this be factored out
into targetInfo somehow? At the very least, can this use llvm::Triple
to do this decoding?
-Chris
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits