diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-03-09 11:03:39 -0500 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-03-09 11:03:39 -0500 |
commit | a6ef2279c71a4528c5bfebf1b857a6faf554a160 (patch) | |
tree | 1289c6ce008bca65d80abc39cfce84000f8ba0d1 /doc/abi.txt | |
parent | 64e5dd3421dade2ead540572fc0d945ade1f02bb (diff) | |
download | roux-a6ef2279c71a4528c5bfebf1b857a6faf554a160.tar.gz |
document more hybrid return
Diffstat (limited to 'doc/abi.txt')
-rw-r--r-- | doc/abi.txt | 6 |
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 |