diff options
author | Alex Bradbury <asb@lowrisc.org> | 2019-07-18 15:33:41 +0000 |
---|---|---|
committer | Alex Bradbury <asb@lowrisc.org> | 2019-07-18 15:33:41 +0000 |
commit | fc3aa2ab485fdfb2859365ce12e6154b918c639c (patch) | |
tree | c878b081e6efb881505a05c6e51bc47215c55361 /lldb/packages/Python/lldbsuite/test/lang/cpp/namespace/ns3.cpp | |
parent | d2c576110ef52da573f6dafd5ef268bde5ef5999 (diff) | |
download | bcm5719-llvm-fc3aa2ab485fdfb2859365ce12e6154b918c639c.tar.gz bcm5719-llvm-fc3aa2ab485fdfb2859365ce12e6154b918c639c.zip |
[RISCV] Hard float ABI support
The RISC-V hard float calling convention requires the frontend to:
* Detect cases where, once "flattened", a struct can be passed using
int+fp or fp+fp registers under the hard float ABI and coerce to the
appropriate type(s) * Track usage of GPRs and FPRs in order to gate the
above, and to
determine when signext/zeroext attributes must be added to integer
scalars
This patch attempts to do this in compliance with the documented ABI,
and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
author of that code I've tagged you as reviewer for initial feedback on
my usage.
Note that a previous version of the ABI indicated that when passing an
int+fp struct using a GPR+FPR, the int would need to be sign or
zero-extended appropriately. GCC never did this and the ABI was changed,
which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
handle sign/zero-extension attributes.
Differential Revision: https://reviews.llvm.org/D60456
llvm-svn: 366450
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/cpp/namespace/ns3.cpp')
0 files changed, 0 insertions, 0 deletions