Author: blaine
Date: Wed Oct 27 17:59:01 2010
New Revision: 117504

URL: http://llvm.org/viewvc/llvm-project?rev=117504&view=rev
Log:
small tweaks to reflect statements of what really ever shipped.  ABI is, and 
has been, accurate for what we ship.

Modified:
    cfe/trunk/docs/Block-ABI-Apple.txt

Modified: cfe/trunk/docs/Block-ABI-Apple.txt
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/Block-ABI-Apple.txt?rev=117504&r1=117503&r2=117504&view=diff
==============================================================================
--- cfe/trunk/docs/Block-ABI-Apple.txt (original)
+++ cfe/trunk/docs/Block-ABI-Apple.txt Wed Oct 27 17:59:01 2010
@@ -67,19 +67,21 @@
     BLOCK_HAS_COPY_DISPOSE =  (1 << 25),
     BLOCK_HAS_CTOR =          (1 << 26), // helpers have C++ code
     BLOCK_IS_GLOBAL =         (1 << 28),
-    BLOCK_HAS_STRET =         (1 << 29),
+    BLOCK_HAS_STRET =         (1 << 29), // IFF BLOCK_HAS_SIGNATURE
     BLOCK_HAS_SIGNATURE =     (1 << 30), 
 };
 
-In 10.6.ABI the (1<<29) was unconditionally set and ignored by the runtime - 
it was a transitional marker that did not get deleted after the transition. 
This bit is now paired with (1<<30), and represented as the pair (3<<30), for 
the following combinations of valid bit settings, and their meanings.
+In 10.6.ABI the (1<<29) was usually set and was always ignored by the runtime 
- it had been a transitional marker that did not get deleted after the 
transition. This bit is now paired with (1<<30), and represented as the pair 
(3<<30), for the following combinations of valid bit settings, and their 
meanings.
 
 switch (flags & (3<<29)) {
-  case (0<<29):  <unused>    , error
+  case (0<<29):      10.6.ABI, no signature field available
   case (1<<29):      10.6.ABI, no signature field available
   case (2<<29): ABI.2010.3.16, regular calling convention, presence of 
signature field
   case (3<<29): ABI.2010.3.16, stret calling convention, presence of signature 
field,
 }
 
+The signature field is not always populated.
+
 The following discussions are presented as 10.6.ABI otherwise.
 
 Block literals may occur within functions where the structure is created in 
stack local memory.  They may also appear as initialization expressions for 
Block variables of global or static local variables.


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to