Save and restore ymm registers in signal handlers.
authorAditya Mandaleeka <adityam@microsoft.com>
Tue, 19 Jul 2016 02:39:05 +0000 (19:39 -0700)
committerAditya Mandaleeka <adityam@microsoft.com>
Thu, 21 Jul 2016 21:25:50 +0000 (14:25 -0700)
commitdf9d6c5d7b814c97923b2a3f0b49af6bb57e757c
tree43daa1502dcc4fee936b6d7c24cb524d004cd305
parent6999ad8931499794abb1f5406791172b04358a39
Save and restore ymm registers in signal handlers.

- Modified the CONTEXT structure for storing the upper 16 bytes of ymm registers
- Upon start of signal handler, ymmh data is copied from the native context to the CONTEXT structure, and a new flag is set to indicate that it has ymmh data
- Upon calling RtlRestoreContext, the new flag is checked, and ymmh data is restored into registers from the CONTEXT structure
- This change fixes only the Linux side for now.

Commit migrated from https://github.com/dotnet/coreclr/commit/9585fc244705b3a06c1f99dc6d60b9c9583ec3ed
src/coreclr/src/pal/inc/pal.h
src/coreclr/src/pal/src/arch/i386/asmconstants.h
src/coreclr/src/pal/src/debug/debug.cpp
src/coreclr/src/pal/src/exception/machexception.cpp
src/coreclr/src/pal/src/exception/signal.cpp
src/coreclr/src/pal/src/include/pal/context.h
src/coreclr/src/pal/src/thread/context.cpp
src/coreclr/src/pal/src/thread/thread.cpp