summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/thread/main2.cpp
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2017-12-11 12:49:02 +0000
committerAlex Bradbury <asb@lowrisc.org>2017-12-11 12:49:02 +0000
commitdc31c61b18f01b21e18ccea4de0a010569e81887 (patch)
tree0329df021250a81c3a26fa877537892570f8bf26 /lldb/packages/Python/lldbsuite/test/python_api/thread/main2.cpp
parentbfb00d4c1c98c20a7daed6d6e680b47c33692c21 (diff)
downloadbcm5719-llvm-dc31c61b18f01b21e18ccea4de0a010569e81887.tar.gz
bcm5719-llvm-dc31c61b18f01b21e18ccea4de0a010569e81887.zip
[RISCV] Add custom CC_RISCV calling convention and improved call support
The TableGen-based calling convention definitions are inflexible, while writing a function to implement the calling convention is very straight-forward, and allows difficult cases to be handled more easily. With this patch adds support for: * Passing large scalars according to the RV32I calling convention * Byval arguments * Passing values on the stack when the argument registers are exhausted The custom CC_RISCV calling convention is also used for returns. This patch also documents the ABI lowering that a language frontend is expected to perform. I would like to work to simplify these requirements over time, but this will require further discussion within the LLVM community. We add PendingArgFlags CCState, as a companion to PendingLocs. The PendingLocs vector is used by a number of backends to handle arguments that are split during legalisation. However CCValAssign doesn't keep track of the original argument alignment. Therefore, add a PendingArgFlags vector which can be used to keep track of the ISD::ArgFlagsTy for every value added to PendingLocs. Differential Revision: https://reviews.llvm.org/D39898 llvm-svn: 320359
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread/main2.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud