diff options
| author | Albert Gutowski <agutowski@google.com> | 2016-10-12 22:13:19 +0000 |
|---|---|---|
| committer | Albert Gutowski <agutowski@google.com> | 2016-10-12 22:13:19 +0000 |
| commit | 795d7d63810619af504ca1330aaa967c6e1c976d (patch) | |
| tree | 4eebf0989b7ec2c007d25a9366eab6f76e90f18d /llvm/include | |
| parent | 2a0621e58a3929a0e1662c67ae59bfbb11b3b08f (diff) | |
| download | bcm5719-llvm-795d7d63810619af504ca1330aaa967c6e1c976d.tar.gz bcm5719-llvm-795d7d63810619af504ca1330aaa967c6e1c976d.zip | |
Create llvm.addressofreturnaddress intrinsic
Summary: We need a new LLVM intrinsic to implement MS _AddressOfReturnAddress builtin on 64-bit Windows.
Reviewers: majnemer, rnk
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25293
llvm-svn: 284061
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/CodeGen/ISDOpcodes.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/IR/Intrinsics.td | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/llvm/include/llvm/CodeGen/ISDOpcodes.h b/llvm/include/llvm/CodeGen/ISDOpcodes.h index e7a9ced2509..420b03ec02b 100644 --- a/llvm/include/llvm/CodeGen/ISDOpcodes.h +++ b/llvm/include/llvm/CodeGen/ISDOpcodes.h @@ -70,7 +70,7 @@ namespace ISD { /// of the frame or return address to return. An index of zero corresponds /// to the current function's frame or return address, an index of one to /// the parent's frame or return address, and so on. - FRAMEADDR, RETURNADDR, + FRAMEADDR, RETURNADDR, ADDROFRETURNADDR, /// LOCAL_RECOVER - Represents the llvm.localrecover intrinsic. /// Materializes the offset from the local object pointer of another diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td index 306b4f8fca5..be0ae3ebad3 100644 --- a/llvm/include/llvm/IR/Intrinsics.td +++ b/llvm/include/llvm/IR/Intrinsics.td @@ -290,6 +290,7 @@ def int_gcwrite : Intrinsic<[], //===--------------------- Code Generator Intrinsics ----------------------===// // def int_returnaddress : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty], [IntrNoMem]>; +def int_addressofreturnaddress : Intrinsic<[llvm_ptr_ty], [], [IntrNoMem]>; def int_frameaddress : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty], [IntrNoMem]>; def int_read_register : Intrinsic<[llvm_anyint_ty], [llvm_metadata_ty], [IntrReadMem], "llvm.read_register">; |

