- User Since
- Nov 5 2012, 11:59 AM (376 w, 4 d)
Oct 7 2019
Dec 13 2018
LGTM, but I'd feel better if someone else signed off on this, too.
Dec 12 2018
Oct 17 2018
Oct 8 2018
- Detect libgcc.
Sep 24 2018
Sep 17 2018
Sep 12 2018
Sep 4 2018
Aug 31 2018
Aug 30 2018
Consensus seems clear to me. Patch abandoned.
Aug 28 2018
Aug 24 2018
- Move DISPATCHER_CONTEXT definition into UnwindCursor.hpp.
- Remove case we'll never realistically hit.
- Add back include I removed earlier.
- Add a comment clarifying that some environments use SEH without Windows runtime support.
Aug 23 2018
- Remove unnecessary code.
- Guard against rogue personality functions returning wrong values.
- Add a comment clarifying the purpose of the new_ctx variable.
Aug 21 2018
OK, I've removed some of the dependencies on Windows-specific types. The code in Unwind-seh.cpp is very Windows-specific, though, so I left it alone.
- Make a bit more friendly to non-Windows.
- Fix bits that depend on D50413.
Aug 20 2018
Are y'all waiting for me to do something?
Aug 17 2018
Aug 14 2018
- Get rid of DISPATCHER_CONTEXT def for ARM. We only support ARM on Win8+ anyway.
...And it turns out Phab marked the comments as done when I uploaded the new change. I didn't know it would do that. That's useful to know.
Marked some comments as done. (Phab won't let me post an empty comment, so...)
- Update checks for DISPATCHER_CONTEXT definition.
- Add link to KJK::Hyperion's articles on SEH.
Could somebody verify that the DISPATCHER_CONTEXT struct is defined in <winnt.h> for the Win8 and Win10 SDKs? I can't install them right now.
Aug 13 2018
Aug 10 2018
- Fix outdated comment.
- Make preprocessor conditional more consistent.
- Make some private functions used only in a single file static.
Aug 8 2018
Additionally: typedef long _Unwind_Word;.
- Add NetBSD-specific definitions.
- Pull out common declaration of __personality_routine.
- Remove unneeded preprocessor condition.
Probably. I believe it's present in GCC's <unwind.h>, too.
Do you plan on implementing these SEH specific bits in libunwind,
Already have. Patch forthcoming.
Aug 7 2018
Rebasing against HEAD.
Aug 2 2018
Are you sure this shouldn't also define _UNICODE? looks Hmm... GCC doesn't define it. I wonder if we should anyway. A user who set -municode may also be using <tchar.h>, and thus may want those macros set to their Unicode counterparts.
Apr 4 2017
Extremely belated ping.
Aug 17 2016
Fix the build error we saw in trunk.
I think I've figured out why the build broke when I landed this. (Sorry that took so long.)
Aug 3 2016
Update for merge conflicts.
Merge with a more recent revision.
Jul 18 2016
Unfortunately, this patch needs revision due to a merge conflict. :\
Jul 6 2016
Jun 30 2016
Factor emission of the patchable instruction into a TTI hook.
May 19 2016
For now, I've disallowed it with naked and always_inline/__forceinline attributes. Do any other attributes affect prologue generation in a way that might interfere with ms_hook_prologue? AFAICT, GCC only disallows ms_hook_prologue on a) nested functions and b) functions compiled with -mfentry (neither of which we support, AFAIK).
- Add Sema tests for the ms_hook_prologue attribute.
- Disallow ms_hook_prologue on architectures that Windows doesn't support.
- Disallow ms_hook_prologue with the naked and always_inline attributes.
- Clarify that x86-64 doesn't use a special magic no-op.
- Don't emit patch space with MSVC. The linker adds it for us there.
- Don't force 64-bit functions to use a stack frame. That's only needed for 32-bit.
- Test that, when we do emit the patch space, we emit it before the alignment directive.
May 17 2016
May 16 2016
- Use Sanjoy's patchable-function attribute.
- Add documentation for this new attribute.
- Use Sanjoy's "patchable-function" attribute.
- Override EmitConstantPool() instead of EmitFunctionEntryLabel().
- Clarify why we're emitting 0xcc bytes (int3 instructions) instead of NOPs.
May 4 2016
Apr 9 2016
Apr 5 2016
Apr 1 2016
Mar 29 2016
Mar 24 2016
Sep 17 2015
Sep 14 2015
Address review comments.
Sep 10 2015
- Rebase onto rL247238.
- Run clang-format on this patch.
- Push va_arg emission down into the ABIInfo hierarchy.
Sep 3 2015
Address @rsmith's comments.
Aug 28 2015
- Rebase onto rL246348.
- Register the __builtin_ms_va_list predef decl. Fixes a nasty interaction with modules.
- Mark __builtin_ms_va_start builtin as manually type-checked.
Aug 25 2015
Closing manually because Phabricator for some reason didn't close it for me...
Abandoning since I gutted the assert(3) in D1622.
Just call X86Subtarget::isCallingConvWin64 in LowerVAARG.
Aug 24 2015
Aug 20 2015
Gut target OS assertion from LowerVAARG.
Aug 5 2015
Jul 27 2015
Big belated update:
- Rebase onto rL243284.
- Go back to checking if the containing function uses the Win64 ABI. Opaque pointer types make checking the va_list type difficult.
- Don't do the "don't save XMM registers" dance in a variadic Win64 ABI function on a SysV platform. (This was something I missed last time.)