diff options
| author | Amjad Aboud <amjad.aboud@intel.com> | 2015-12-21 14:07:14 +0000 | 
|---|---|---|
| committer | Amjad Aboud <amjad.aboud@intel.com> | 2015-12-21 14:07:14 +0000 | 
| commit | 60b5e1b6c01da2357480bd1a033273382fa55e3c (patch) | |
| tree | e5868978bc6eee6ae5d74650e70127795a189467 /llvm/lib/CodeGen | |
| parent | 41a2bf74ed78352fc9450db6f23b73a949358087 (diff) | |
| download | bcm5719-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.cpp | 5 | 
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(); | 

