summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorAmjad Aboud <amjad.aboud@intel.com>2015-12-21 14:07:14 +0000
committerAmjad Aboud <amjad.aboud@intel.com>2015-12-21 14:07:14 +0000
commit60b5e1b6c01da2357480bd1a033273382fa55e3c (patch)
treee5868978bc6eee6ae5d74650e70127795a189467 /llvm/lib/CodeGen
parent41a2bf74ed78352fc9450db6f23b73a949358087 (diff)
downloadbcm5719-llvm-60b5e1b6c01da2357480bd1a033273382fa55e3c.tar.gz
bcm5719-llvm-60b5e1b6c01da2357480bd1a033273382fa55e3c.zip
Implemented Support of IA interrupt and exception handlers:
http://lists.llvm.org/pipermail/cfe-dev/2015-September/045171.html Differential Revision: http://reviews.llvm.org/D15567 llvm-svn: 256155
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 544c7e7631d..e6e6cdc9ca3 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -7361,6 +7361,11 @@ void SelectionDAGISel::LowerArguments(const Function &F) {
// in the various CC lowering callbacks.
Flags.setByVal();
}
+ if (F.getCallingConv() == CallingConv::X86_INTR) {
+ // IA Interrupt passes frame (1st parameter) by value in the stack.
+ if (Idx == 1)
+ Flags.setByVal();
+ }
if (Flags.isByVal() || Flags.isInAlloca()) {
PointerType *Ty = cast<PointerType>(I->getType());
Type *ElementTy = Ty->getElementType();
OpenPOWER on IntegriCloud