Revert old change for floating point context alignment issue
authorAditya Mandaleeka <adityam@microsoft.com>
Fri, 15 Jan 2016 21:01:35 +0000 (13:01 -0800)
committerAditya Mandaleeka <adityam@microsoft.com>
Fri, 15 Jan 2016 21:01:35 +0000 (13:01 -0800)
src/pal/inc/pal.h
src/pal/src/include/pal/context.h
src/pal/src/thread/context.cpp

index 5324b3b..bb63d82 100644 (file)
@@ -2768,13 +2768,10 @@ typedef struct _CONTEXT {
 #define CONTEXT_EXCEPTION_REQUEST 0x40000000
 #define CONTEXT_EXCEPTION_REPORTING 0x80000000
 
-typedef struct _M128U {
+typedef struct DECLSPEC_ALIGN(16) _M128A {
     ULONGLONG Low;
     LONGLONG High;
-} M128U, *PM128U;
-
-// Same as _M128U but aligned to a 16-byte boundary
-typedef DECLSPEC_ALIGN(16) M128U M128A, *PM128A;
+} M128A, *PM128A;
 
 typedef struct _XMM_SAVE_AREA32 {
     WORD   ControlWord;
index 4a89be0..513ff0b 100644 (file)
@@ -67,9 +67,9 @@ typedef ucontext_t native_context_t;
 #define MCREG_R14(mc)       ((mc).gregs[REG_R14])
 #define MCREG_R15(mc)       ((mc).gregs[REG_R15])
 
-#define FPREG_Xmm(uc, index) *(M128U*)&((uc)->uc_mcontext.fpregs->_xmm[index])
+#define FPREG_Xmm(uc, index) *(M128A*)&((uc)->uc_mcontext.fpregs->_xmm[index])
 
-#define FPREG_St(uc, index) *(M128U*)&((uc)->uc_mcontext.fpregs->_st[index])
+#define FPREG_St(uc, index) *(M128A*)&((uc)->uc_mcontext.fpregs->_st[index])
 
 #define FPREG_ControlWord(uc) ((uc)->uc_mcontext.fpregs->cwd)
 #define FPREG_StatusWord(uc) ((uc)->uc_mcontext.fpregs->swd)
index dfb1c4b..54678c8 100644 (file)
@@ -434,12 +434,12 @@ void CONTEXTToNativeContext(CONST CONTEXT *lpContext, native_context_t *native)
 
         for (int i = 0; i < 8; i++)
         {
-            FPREG_St(native, i) = ((M128U*)lpContext->FltSave.FloatRegisters)[i];
+            FPREG_St(native, i) = lpContext->FltSave.FloatRegisters[i];
         }
 
         for (int i = 0; i < 16; i++)
         {
-            FPREG_Xmm(native, i) = ((M128U*)lpContext->FltSave.XmmRegisters)[i];
+            FPREG_Xmm(native, i) = lpContext->FltSave.XmmRegisters[i];
         }
 #endif
     }
@@ -493,12 +493,12 @@ void CONTEXTFromNativeContext(const native_context_t *native, LPCONTEXT lpContex
 
         for (int i = 0; i < 8; i++)
         {
-            ((M128U*)lpContext->FltSave.FloatRegisters)[i] = FPREG_St(native, i);
+            lpContext->FltSave.FloatRegisters[i] = FPREG_St(native, i);
         }
 
         for (int i = 0; i < 16; i++)
         {
-            ((M128U*)lpContext->FltSave.XmmRegisters)[i] = FPREG_Xmm(native, i);
+            lpContext->FltSave.XmmRegisters[i] = FPREG_Xmm(native, i);
         }
 #endif
     }