aboutsummaryrefslogtreecommitdiff
path: root/lib/std/array_hash_map.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-05-04 22:57:57 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-05-04 22:57:57 -0700
commit44252f4d352d53afd86d678c0b0a40b3f681c7eb (patch)
tree91dddc4c240b1aa429ea6d80835640b4a85e2c23 /lib/std/array_hash_map.zig
parent17fc44dd1287163c25832c40f7e81cd5532e52bd (diff)
downloadzig-44252f4d352d53afd86d678c0b0a40b3f681c7eb.tar.gz
zig-44252f4d352d53afd86d678c0b0a40b3f681c7eb.zip
LLVM: fix C ABI for windows
* sret logic needed a check for hasRuntimeBits() * lower f128 on windows targets with the "sse" class rather than "memory". For reference, clang emits a compile error when __float128 is used with the MSVC ABI, saying that this type is not supported. The docs for the x64 calling convention have both of these sentences: - "Any argument that doesn't fit in 8 bytes, or isn't 1, 2, 4, or 8 bytes, must be passed by reference." - "All floating point operations are done using the 16 XMM registers." * For i128, however, it is clear that the Windows calling convention wants such an object to be passed by reference. I fixed the LLVM lowering for function parameters to make this work.
Diffstat (limited to 'lib/std/array_hash_map.zig')
0 files changed, 0 insertions, 0 deletions