diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-02-12 22:17:10 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-02-12 22:17:10 +0000 |
commit | 586004f9188cc759bfd60dc62b3ae0c5261ef373 (patch) | |
tree | cc1425d8a02e459500a01586f6a4f4a2b07a0c2f /lib/CodeGen | |
parent | 4839a7de4b4ab932c25b67324b629cefa3b230cd (diff) | |
download | llvm-586004f9188cc759bfd60dc62b3ae0c5261ef373.tar.gz llvm-586004f9188cc759bfd60dc62b3ae0c5261ef373.tar.bz2 llvm-586004f9188cc759bfd60dc62b3ae0c5261ef373.tar.xz |
[Stackmaps] Fix the ID type to be i64 also for stackmaps (as we claim in the documenation)
The ID type for the stackmap and patchpoint intrinsics are in both cases i64.
This fixes an zero extend in the SelectionDAGBuilder that still used i32. This
also updates the target independent instructions STACKMAP and PATCHPOINT to use
the correct type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201262 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index bf52579679..4d3684cced 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -6917,12 +6917,13 @@ void SelectionDAGBuilder::visitStackmap(const CallInst &CI) { // Replace the target specific call node with the stackmap intrinsic. SmallVector<SDValue, 8> Ops; - // Add the <id> and <numShadowBytes> constants. - for (unsigned i = 0; i < 2; ++i) { - SDValue tmp = getValue(CI.getOperand(i)); - Ops.push_back(DAG.getTargetConstant( - cast<ConstantSDNode>(tmp)->getZExtValue(), MVT::i32)); - } + // Add the <id> and <numBytes> constants. + SDValue IDVal = getValue(CI.getOperand(PatchPointOpers::IDPos)); + Ops.push_back(DAG.getTargetConstant( + cast<ConstantSDNode>(IDVal)->getZExtValue(), MVT::i64)); + SDValue NBytesVal = getValue(CI.getOperand(PatchPointOpers::NBytesPos)); + Ops.push_back(DAG.getTargetConstant( + cast<ConstantSDNode>(NBytesVal)->getZExtValue(), MVT::i32)); // Push live variables for the stack map. addStackMapLiveVars(CI, 2, Ops, *this); |