summaryrefslogtreecommitdiff
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
parent64e5dd3421dade2ead540572fc0d945ade1f02bb (diff)
downloadroux-a6ef2279c71a4528c5bfebf1b857a6faf554a160.tar.gz
document more hybrid return
-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