{"push_id":712031141,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"d6638c0a2fe5d1398215388d56091f0430e6ffc7","before":"8e4566fa05dc66d226d7e4e17259c547523656ae","commits":[{"sha":"d6638c0a2fe5d1398215388d56091f0430e6ffc7","author":{"email":"d7a6b5668afca32909ec82de7d490acab5faf1b8@kleckner.net","name":"Reid Kleckner"},"message":"[SEH] Add new intrinsics for recovering and restoring parent frames\n\nThe incoming EBP value established by the runtime is actually a pointer\nto the end of the EH registration object, and not the true parent\nfunction frame pointer. Clang doesn't need llvm.x86.seh.exceptioninfo\nanymore because we know that the exception info pointer is at a fixed\noffset from this incoming EBP.\n\nThe llvm.x86.seh.recoverfp intrinsic takes an EBP value provided by the\nEH runtime and returns a pointer that is usable with llvm.framerecover.\n\nThe llvm.x86.seh.restoreframe intrinsic is inserted by the 32-bit\nspecific preparation pass in blocks targetted by the EH runtime. It\nre-establishes any physical registers used by the parent function to\naddress the stack, such as the frame, base, and stack pointers.\n\nNeither of these intrinsics correctly handle stack realignment prologues\nyet, but it's possible to add that later.\n\nReviewers: majnemer\n\nDifferential Revision: http://reviews.llvm.org/D10848","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project/commits/d6638c0a2fe5d1398215388d56091f0430e6ffc7"}]}