summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-09 11:03:39 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-09 11:03:39 -0500
commita6ef2279c71a4528c5bfebf1b857a6faf554a160 (patch)
tree1289c6ce008bca65d80abc39cfce84000f8ba0d1 /doc
parent64e5dd3421dade2ead540572fc0d945ade1f02bb (diff)
downloadroux-a6ef2279c71a4528c5bfebf1b857a6faf554a160.tar.gz
document more hybrid return
Diffstat (limited to 'doc')
-rw-r--r--doc/abi.txt6
1 files changed, 4 insertions, 2 deletions
diff --git a/doc/abi.txt b/doc/abi.txt
index 91b729e..80a3916 100644
--- a/doc/abi.txt
+++ b/doc/abi.txt
@@ -114,8 +114,10 @@ Legend:
 
   * A struct can be returned in registers in one of three
     ways.  Either `%rax`, `%rdx` are used, or `%xmm0`,
-    `%xmm1`, or finally `%rax`, `%xmm0`.  This should be
-    clear from the <@Returning> section above.
+    `%xmm1`, or finally `%rax`, `%xmm0`.  The last case
+    happens when a struct is returned with one half
+    classified as INTEGER and the other as SSE. This
+    is a consequence of the <@Returning> section above.
 
   * The size of the arguments area of the stack needs to
     be computed first, then arguments are packed starting