فهرست منبع

Fixing a build break in AsmJS file due to the removal of safethreadinit flag

Aneesh Divakarakurup 9 سال پیش
والد
کامیت
65122e8cf8
1فایلهای تغییر یافته به همراه19 افزوده شده و 18 حذف شده
  1. 19 18
      lib/Runtime/Language/i386/AsmJsJitTemplate.cpp

+ 19 - 18
lib/Runtime/Language/i386/AsmJsJitTemplate.cpp

@@ -2786,6 +2786,7 @@ namespace Js
             return CompareDbOrFlt<JB, COMISD, double>(context, buffer, targetOffset, leftOffset, rightOffset);
         }
 
+        __declspec(align(8)) const double MaskConvUintDouble[] = { 0.0, 4294967296.0 };
 
         int UInt_To_Db::ApplyTemplate( TemplateContext context, BYTE*& buffer, int targetOffset, int rightOffset )
         {
@@ -2806,7 +2807,6 @@ namespace Js
             size += SHR::EncodeInstruction<int32>( buffer, InstrParamsRegImm<int8>( regInt, 31 ) );
             templateData->InvalidateReg( regInt );
 
-            static __declspec(align(8)) const double MaskConvUintDouble[] = { 0.0, 4294967296.0 };
             size += ADDSD::EncodeInstruction<double>( buffer, InstrParamsRegAddr( regDouble, RegNOREG, regInt, 8, (int)MaskConvUintDouble ) );
 
             size += EncodingHelpers::SetStackReg<double>( buffer, templateData, targetOffset , regDouble);
@@ -2905,6 +2905,14 @@ namespace Js
             return size;
         }
 
+        __declspec(align(16)) const double MaskNegDouble[] = { -0.0, -0.0 };
+        const BYTE maskNegDoubleTemp[] = {
+            0x66, 0x0F, 0x57, 0x05,
+            (BYTE)(((int)(MaskNegDouble)) & 0xFF),
+            (BYTE)((((int)(MaskNegDouble)) >> 8) & 0xFF),
+            (BYTE)((((int)(MaskNegDouble)) >> 16) & 0xFF),
+            (BYTE)((((int)(MaskNegDouble)) >> 24) & 0xFF),
+        };
 
         int Neg_Db::ApplyTemplate( TemplateContext context, BYTE*& buffer, int targetOffset, int rightOffset )
         {
@@ -2920,15 +2928,7 @@ namespace Js
                 size += MOVSD::EncodeInstruction<double>( buffer, InstrParamsRegAddr( reg, RegEBP, rightOffset ) );
             }
 
-            static __declspec(align(16)) const double MaskNegDouble[] = { -0.0, -0.0 };
-            static const BYTE temp[] = {
-                0x66, 0x0F, 0x57, 0x05,
-                (BYTE)( ( (int)( MaskNegDouble ) ) & 0xFF ),
-                (BYTE)( ( ( (int)( MaskNegDouble ) ) >> 8 ) & 0xFF ),
-                (BYTE)( ( ( (int)( MaskNegDouble ) ) >> 16 ) & 0xFF ),
-                (BYTE)( ( ( (int)( MaskNegDouble ) ) >> 24 ) & 0xFF ),
-            };
-            size += ApplyCustomTemplate( buffer, temp, 8 );
+            size += ApplyCustomTemplate( buffer, maskNegDoubleTemp, 8 );
             //fix template for register
             buffer[-5] |= RegEncode[reg] << 3;
 
@@ -2937,6 +2937,14 @@ namespace Js
             return size;
         }
 
+        static const BYTE negFltTemp[] = {
+            0x0F, 0x57, 0x05,
+            (BYTE)(((int)(JavascriptNumber::MaskNegFloat)) & 0xFF),
+            (BYTE)((((int)(JavascriptNumber::MaskNegFloat)) >> 8) & 0xFF),
+            (BYTE)((((int)(JavascriptNumber::MaskNegFloat)) >> 16) & 0xFF),
+            (BYTE)((((int)(JavascriptNumber::MaskNegFloat)) >> 24) & 0xFF),
+        };
+
         int Neg_Flt::ApplyTemplate(TemplateContext context, BYTE*& buffer, int targetOffset, int rightOffset)
         {
             X86TemplateData* templateData = GetTemplateData(context);
@@ -2951,14 +2959,7 @@ namespace Js
                 size += MOVSS::EncodeInstruction<float>(buffer, InstrParamsRegAddr(reg, RegEBP, rightOffset));
             }
 
-            static const BYTE temp[] = {
-                0x0F, 0x57, 0x05,
-                (BYTE)(((int)(JavascriptNumber::MaskNegFloat)) & 0xFF),
-                (BYTE)((((int)(JavascriptNumber::MaskNegFloat)) >> 8) & 0xFF),
-                (BYTE)((((int)(JavascriptNumber::MaskNegFloat)) >> 16) & 0xFF),
-                (BYTE)((((int)(JavascriptNumber::MaskNegFloat)) >> 24) & 0xFF),
-            };
-            size += ApplyCustomTemplate(buffer, temp, 7);
+            size += ApplyCustomTemplate(buffer, negFltTemp, 7);
             //fix template for register
             buffer[-5] |= RegEncode[reg] << 3;