<div dir="ltr">Hi Tim,<div><br></div><div>Basic idea from a read through sounds ok. As long as the compact unwind isn't touching generic code in any way that's uncomfortable I'm fine with post commit :)</div><div><br></div><div>-eric</div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 28, 2015 at 10:50 AM Tim Northover via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I'd like to start upstreaming support for Apple's watchOS and tvOS<br>
platforms. The more substantial changes are to support watchOS, tvOS<br>
is mostly just iOS with the freedom to diverge in future.<br>
<br>
At the LLVM level, the watchOS ABI is very close to an extension of<br>
AAPCS-VFP to support 16-byte naturally aligned vectors, increasing the<br>
required stack alignment to 16 as a result. Exception handling uses a<br>
new compact unwind format (like ARM64 & x86), falling back to DWARF if<br>
necessary.<br>
<br>
So, I've split the LLVM patches into what I think are reasonably<br>
self-contained chunks:<br>
<br>
1. Add Triple basic support, with one exercising feature for testing:<br>
the .watchos_version_min and .tvos_version_min directives.<br>
2. Ensure correct libcalls are present on Watch and TV.<br>
3. Support generic changes for new watchOS ABI.<br>
4. Support watchOS compact unwind format and switch to DWARF as fallback.<br>
5. A helper function used by Clang to determine watchOS versions.<br>
<br>
The most substantial change that could use looking over is probably<br>
the compact unwind generation. The rest is pretty obvious and<br>
straightforward: "grep ios | add watchOS and tvOS".<br>
<br>
So are people happy for these to go in? I'm hoping to upload the<br>
corresponding Clang bits later today.<br>
<br>
Cheers.<br>
<br>
Tim.<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>