[PATCH] D75169: [ARM] Enforcing calling convention for half-precision FP arguments and returns for big-endian AArch32
Lucas Prates via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 26 05:22:15 PST 2020
pratlucas created this revision.
Herald added subscribers: cfe-commits, kristof.beyls.
Herald added a project: clang.
Half-precision floating point arguments and returns are currently
promoted to either float or int32 in clang's CodeGen. As such promotions
are implemented as coercion through memory in clang, aruments and
returns of those types end up stored on the wrong bits on big-endian
AArch32 - MSBs instead of LSBs.
This patch enforces AAPCS' directions, making sure clang stores those
types on the proper bits during coercion through memory for bit-endian
targets.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D75169
Files:
clang/include/clang/CodeGen/CGFunctionInfo.h
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/arm-fp16-arguments.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75169.246683.patch
Type: text/x-patch
Size: 8332 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200226/8d7e2503/attachment-0001.bin>
More information about the cfe-commits
mailing list