This revision was automatically updated to reflect the committed changes.
Closed by commit rL316747: Add support for dwarf unwinding on windows on x86_64
(authored by mstorsjo).
Changed prior to commit:
https://reviews.llvm.org/D38819?vs=120380&id=120552#toc
Repository:
rL LLVM
https://revi
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.
lgtm
https://reviews.llvm.org/D38819
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mstorsjo updated this revision to Diff 120380.
mstorsjo added a comment.
Simplified the assembly by sharing much more code between the unix and win64
paths, added a padding element to ensure more stable struct packing.
https://reviews.llvm.org/D38819
Files:
docs/index.rst
include/__libunwi
mstorsjo added inline comments.
Comment at: src/UnwindRegistersRestore.S:72
+ movq 56(%rcx), %rax # rax holds new stack pointer
+ subq $16, %rax
+ movq %rax, 56(%rcx)
mstorsjo wrote:
> compnerd wrote:
> > Hmm, why is this `$16`? The `$rsp` was adjusted by
mstorsjo updated this revision to Diff 120215.
mstorsjo edited the summary of this revision.
mstorsjo added a comment.
Updated to take care of saving/restoring XMM registers as well.
https://reviews.llvm.org/D38819
Files:
docs/index.rst
include/__libunwind_config.h
include/libunwind.h
i
mstorsjo added inline comments.
Comment at: src/UnwindRegistersRestore.S:98
+ # skip fs
+ # skip gs
+ movq 56(%rcx), %rsp # cut back rsp to new location
rnk wrote:
> mstorsjo wrote:
> > mstorsjo wrote:
> > > compnerd wrote:
> > > > Doesn't Win64 ABI require
rnk added inline comments.
Comment at: src/UnwindRegistersRestore.S:98
+ # skip fs
+ # skip gs
+ movq 56(%rcx), %rsp # cut back rsp to new location
mstorsjo wrote:
> mstorsjo wrote:
> > compnerd wrote:
> > > Doesn't Win64 ABI require some of the MMX register
mstorsjo added inline comments.
Comment at: src/UnwindRegistersRestore.S:98
+ # skip fs
+ # skip gs
+ movq 56(%rcx), %rsp # cut back rsp to new location
mstorsjo wrote:
> compnerd wrote:
> > Doesn't Win64 ABI require some of the MMX registers be saved/restor
mstorsjo added inline comments.
Comment at: src/UnwindRegistersRestore.S:98
+ # skip fs
+ # skip gs
+ movq 56(%rcx), %rsp # cut back rsp to new location
compnerd wrote:
> Doesn't Win64 ABI require some of the MMX registers be saved/restored too?
Right, yes,
compnerd added inline comments.
Comment at: src/UnwindRegistersRestore.S:98
+ # skip fs
+ # skip gs
+ movq 56(%rcx), %rsp # cut back rsp to new location
Doesn't Win64 ABI require some of the MMX registers be saved/restored too?
https://reviews.llvm.org/D38
mstorsjo added a comment.
Ping
https://reviews.llvm.org/D38819
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
mstorsjo added inline comments.
Comment at: docs/index.rst:55
NetBSD x86_64 Clang, GCC DWARF CFI
-Windows i386 ClangDWARF CFI
+Windows i386, x86_64 ClangDWARF CFI
=
martell added inline comments.
Comment at: docs/index.rst:55
NetBSD x86_64 Clang, GCC DWARF CFI
-Windows i386 ClangDWARF CFI
+Windows i386, x86_64 ClangDWARF CFI
==
mstorsjo updated this revision to Diff 119068.
mstorsjo added a comment.
Use `__SIZEOF_POINTER__` instead of checking `__LP64__` together with `_WIN64`.
Changed `_WIN32` into `_WIN64` within the assembly sources for
consistency/clarity. Removed one type definition ifdef by just using
`(u)intptr
mstorsjo added inline comments.
Comment at: include/unwind.h:125
uintptr_t private_2; // holds sp that phase1 found for phase2 to use
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(_WIN64)
// The implementation of _Unwind_Exception uses an attribute mode on the
-
compnerd added inline comments.
Comment at: include/unwind.h:125
uintptr_t private_2; // holds sp that phase1 found for phase2 to use
-#ifndef __LP64__
+#if !defined(__LP64__) && !defined(_WIN64)
// The implementation of _Unwind_Exception uses an attribute mode on the
-
mstorsjo added a comment.
As further explanation/justification - libcxxabi and libunwind don't support
SEH exceptions yet.
https://reviews.llvm.org/D38819
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman
mstorsjo created this revision.
Herald added a subscriber: aprantl.
Clang doesn't currently support building for windows/x86_64 with dwarf by
setting command line parameters, but if manually modified to use dwarf, we can
make libunwind work in this configuration as well.
Even if support for thi
18 matches
Mail list logo