New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
64-bit container case #111
Comments
From bruen...@google.com on May 16, 2012 08:45:59 issue #889 covers porting pattern mode to 64-bit |
From bruen...@google.com on June 17, 2012 14:13:10 filling in some notes: from years ago: On Linux need to maintain 128-byte stack redzone marked as undefined as stack pointer moves around frontend notes from recent discussion: there are 3 approaches:
autodetect is by far the most usable for users. for scripts, assume native note that we have to automatically detect on child injection anyway (xref maybe we should solve DRi#147 first. if the soln there is to make DR problem: frontend is used with -results or -nudge where no app is specified and more xrefs: issue #825 issue #906 issue #916 issue #917 issue #919 Labels: -Priority-Low -Type-Defect Priority-Medium Type-Enhancement OpSys-x64 |
From bruen...@google.com on July 19, 2012 11:12:26 |
From bruen...@google.com on February 04, 2013 08:41:00 we'll need 64-bit nudges from DR: https://code.google.com/p/dynamorio/issues/detail?id=119 Owner: zhao...@google.com |
From bruen...@google.com on May 01, 2013 12:22:51 issue #1205 split out |
From bruen...@google.com on May 21, 2013 10:51:09 ** TODO how shadow registers for byte-to-byte, plus additional 8 GPR's, we'd need 16 slots instead of options:
xref DRi#1163: out of TLS slots in win8 as it is xref issue #471 : need to shadow floating-point regs too -- but these are too big |
From bruen...@google.com on August 01, 2014 10:54:45 Taking over Owner: bruen...@google.com |
From bruen...@google.com on September 18, 2014 07:36:08 byte-to-byte split out as issue #1632 as the initial port will be 1B-2b |
From bruen...@google.com on September 18, 2014 07:42:27 xref issue #1633 |
Pattern support is complete and light mode is now officially supported and present in the release package. #1782 is a blocker for shadow modes |
Generalizes the full mode fastpath to handle 2-byte shadows and scratch registers. Defines the top 32 bits of 32-bit written registers. Includes numerous other miscellaneous fixes. Some common instructions are not yet on the fastpath, including push and pop. Disables -share_xl8 for now for x64 (i#2025 covers getting to work). Disables -esp_fastpath for now for x64 (i#2027 covers implementing it). Does not yet enable tests: that is coming soon. Issue: #111
Generalizes the full mode fastpath to handle 2-byte shadows and scratch registers. Defines the top 32 bits of 32-bit written registers. Includes numerous other miscellaneous fixes. Some common instructions are not yet on the fastpath, including push and pop. Disables -share_xl8 for now for x64 (i#2025 covers getting to work). Disables -esp_fastpath for now for x64 (i#2027 covers implementing it). Does not yet enable tests: that is coming soon. Issue: #111
Generalizes the full mode fastpath to handle 2-byte shadows and scratch registers. Defines the top 32 bits of 32-bit written registers. Includes numerous other miscellaneous fixes. Some common instructions are not yet on the fastpath, including push and pop. Disables -share_xl8 for now for x64 (i#2025 covers getting to work). Disables -esp_fastpath for now for x64 (i#2027 covers implementing it). Disables -zero_stack for UNIX x64 due to redzone incompatibility (#2305 covers fixing). Does not yet enable tests: that is coming soon. Issue: #111
Fixes some fastpath issues and fixes some issues within tests themselves to get more tests working. On the fastpath, adds OR-ing of the eflags top byte into 32-bit shadow dsts; does a better fix for widening the shadow for zero-propagation; and casts shadow constants for x64 encoding. Properly marks the stack near the stack pointer as undef and not just the redzone. Ports tests/selfmod.c to x64. Disables tests/operators OOM test: i#2029 covers fixing for x64. Disable wrap tests: i#2030 covers re-enabling for x64. Issue: #111, #2029, #2030
a83d8f3 enables 64-bit full mode on Linux though we're still missing push/pop and esp fastpaths. |
Updates the options, tests, and documentation for making full mode the default for 64-bit Windows. Issue: #111
Updates the options, tests, and documentation for making full mode the default for 64-bit Windows. Issue: #111
Adds several recent syscalls to eliminate false positives in the x64 procterm test on Windows. Issue: #111
Adds several recent syscalls to eliminate false positives in the x64 procterm test on Windows. Issue: #111
Disables wrap-malloc tests as we do not support wrapping for 64-bit (i#2030). Updates the redzone_size parameter to require 16-byte alignment for 64-bit and changes the redzone8 test to redzone16 for 64-bit. Valgrind annotations are not available for 64-bit Windows, so disable the annotations test. Issue: #111, #2030
Fixes a few of the failing 64-bit Windows full-mode tests: + Adds a default suppression for i#2170: what looks like a real bug in RtlRestoreContext context copying. + Expands registers.res to match both rcx and ecx. + Expands runtest.cmake to handle nested %if in a .res file for %if UNIX when %endif UNIX is used, for cs2bug.res. Issue: #111, #2170
Fixes a few of the failing 64-bit Windows full-mode tests: + Adds a default suppression for i#2170: what looks like a real bug in RtlRestoreContext context copying. + Expands registers.res to match both rcx and ecx. + Expands runtest.cmake to handle nested %if in a .res file for %if UNIX when %endif UNIX is used, for cs2bug.res. Issue: #111, #2170
Fixes the following win64 bugs: + Fixes the use of %l{d,u} instead of %z{d,u} in symcache and several other places. This caused the symcache files to never match, causing delays and timeouts on some tests, especially those using /MDd, due to DRi#2175. + Changes short jumps to long jumps in several fastpath locations to avoid failures to reach due to longer x64 instructions. + Generalizes handling of OP_bswap which assumed a maximum size of 4 bytes. + Adds a workaround for DRi#3453 to avoid an assert with -verify_sysnums. Issue: #111
Fixes the following win64 bugs: + Fixes the use of %l{d,u} instead of %z{d,u} in symcache and several other places. This caused the symcache files to never match, causing delays and timeouts on some tests, especially those using /MDd, due to DRi#2175. + Changes short jumps to long jumps in several fastpath locations to avoid failures to reach due to longer x64 instructions. + Generalizes handling of OP_bswap which assumed a maximum size of 4 bytes. + Adds a workaround for DRi#3453 to avoid an assert with -verify_sysnums. Issue: #111
Fixes tests/operators taking forever on its OOM test by tweaking the code to avoid compiler warnings on very large allocations. Fixes x64 bugs in handle stack operations: + Handle DR rip-rel mangling when decoding from the cache on the esp adjust slowpath. + Add an x64 chkstk pattern match. Expands the i#2170 suppression to match ntdll.dll!RcConsolidateFrames. Issue: #111, #2170
Fixes tests/operators taking forever on its OOM test by tweaking the code to avoid compiler warnings on very large allocations. Fixes x64 bugs in handle stack operations: + Handle DR rip-rel mangling when decoding from the cache on the esp adjust slowpath. + Add an x64 chkstk pattern match. Expands the i#2170 suppression to match ntdll.dll!RcConsolidateFrames. Suppress the rest of the win64 full mode failing tests to get Appveyor green. Issue: #111, #2170, #2180
From derek.br...@gmail.com on December 10, 2010 17:57:41
PR 408518
filing a container case to cover 64-bit porting of Dr. Memory.
the major task is re-designing the shadow memory structure and
rewriting all of the hand-coded machine instruction sequences for
accessing shadow memory. we'll need more indirection with
some kind of page-table-style structure, and may end up needing
caches to achieve good performance: much more complex than 32-bit.
xref PR 575713
Original issue: http://code.google.com/p/drmemory/issues/detail?id=111
The text was updated successfully, but these errors were encountered: