Przeglądaj źródła

[1.8>master] [MERGE #4531 @MikeHolman] fix and enable wasm on xplat

Merge pull request #4531 from MikeHolman:fixwasmxplat

fix issues with calling convention: we are using stack based calling convention, so we can cleanup a lot of code that was complicated by xmm registers.

fix issue where JIT was calling wrong method for floorf and ceilf

Resolves #3561
Michael Holman 8 lat temu
rodzic
commit
79df905098

+ 2 - 2
lib/Backend/JnHelperMethod.cpp

@@ -194,10 +194,10 @@ DECLSPEC_GUARDIGNORE  _NOINLINE intptr_t GetNonTableMethodAddress(ThreadContextI
         return ShiftAddr(context, (void*(*)(void *, void const*, size_t))memcpy);
 
     case HelperDirectMath_FloorFlt:
-        return ShiftAddr(context, (float(*)(float))floor);
+        return ShiftAddr(context, (float(*)(float))floorf);
 
     case HelperDirectMath_CeilFlt:
-        return ShiftAddr(context, (float(*)(float))ceil);
+        return ShiftAddr(context, (float(*)(float))ceilf);
 
 #if defined(_M_X64)
     case HelperDirectMath_Acos:

+ 0 - 3
lib/Common/CommonDefines.h

@@ -721,8 +721,6 @@
 #endif
 
 #if defined(ASMJS_PLAT)
-// xplat-todo: once all the wasm tests are passing on xplat, enable it for release builds
-#if defined(_WIN32) || (defined(__clang__) && defined(ENABLE_DEBUG_CONFIG_OPTIONS))
 #define ENABLE_WASM
 #define ENABLE_WASM_SIMD
 
@@ -730,7 +728,6 @@
 #define ENABLE_WABT
 #endif
 
-#endif
 #endif
 
 #if _M_IX86

+ 0 - 5
lib/Common/ConfigFlagsList.h

@@ -393,12 +393,7 @@ PHASE(All)
 #endif
 #endif // #ifdef ENABLE_SIMDJS
 
-#ifdef _WIN32
 #define DEFAULT_CONFIG_Wasm               (true)
-#else
-// Do not enable wasm by default on xplat builds
-#define DEFAULT_CONFIG_Wasm               (false)
-#endif
 #define DEFAULT_CONFIG_WasmI64            (false)
 #if ENABLE_FAST_ARRAYBUFFER
     #define DEFAULT_CONFIG_WasmFastArray    (true)

+ 7 - 12
lib/Runtime/Language/InterpreterStackFrame.cpp

@@ -3032,7 +3032,7 @@ namespace Js
         // Move the arguments to the right location
         ArgSlot argCount = info->GetArgCount();
 
-#if _M_X64
+#if _M_X64 && _WIN32
         uint homingAreaSize = 0;
 #endif
 
@@ -3051,7 +3051,7 @@ namespace Js
         uintptr_t argAddress = (uintptr_t)m_inParams;
         for (ArgSlot i = 0; i < argCount; i++)
         {
-#if _M_X64
+#if _M_X64 && _WIN32
             // 3rd Argument should be at the end of the homing area.
             Assert(i != 3 || argAddress == (uintptr_t)m_inParams + homingAreaSize);
             if (i < 3)
@@ -3072,12 +3072,7 @@ namespace Js
                 // IAT xmm2 spill
                 // IAT xmm1 spill <- floatSpillAddress for arg1
 
-#ifdef _WIN32
 #define FLOAT_SPILL_ADDRESS_OFFSET_WORDS 15
-#else
-// On Sys V x64 we have 4 words less (4 reg shadow)
-#define FLOAT_SPILL_ADDRESS_OFFSET_WORDS 11
-#endif
                 // floats are spilled as xmmwords
                 uintptr_t floatSpillAddress = (uintptr_t)m_inParams - MachPtr * (FLOAT_SPILL_ADDRESS_OFFSET_WORDS - 2*i);
 
@@ -3780,17 +3775,17 @@ namespace Js
         AsmJsScriptFunction* scriptFunc = AsmJsScriptFunction::FromVar(function);
         AsmJsFunctionInfo* asmInfo = scriptFunc->GetFunctionBody()->GetAsmJsFunctionInfo();
         uint alignedArgsSize = ::Math::Align<uint32>(asmInfo->GetArgByteSize(), 16);
-#if _M_X64
+#if _M_X64 && _WIN32
         // convention is to always allocate spill space for rcx,rdx,r8,r9
         if (alignedArgsSize < 0x20) alignedArgsSize = 0x20;
-
-        // Prepare in advance the possible arguments that will need to be put in register
-        byte _declspec(align(16)) reg[3 * 16];
         uint* argSizes = asmInfo->GetArgsSizesArray();
         Assert(asmInfo->GetArgSizeArrayLength() >= 2);
-        CompileAssert((FunctionBody::MinAsmJsOutParams() * sizeof(Var)) == (sizeof(Var) * 2 + sizeof(reg)));
         byte* curOutParams = (byte*)m_outParams + sizeof(Var);
         Assert(curOutParams + argSizes[0] + argSizes[1] + 16 <= (byte*)this->m_outParamsEnd);
+
+        // Prepare in advance the possible arguments that will need to be put in register
+        byte _declspec(align(16)) reg[3 * 16];
+        CompileAssert((FunctionBody::MinAsmJsOutParams() * sizeof(Var)) == (sizeof(Var) * 2 + sizeof(reg)));
         js_memcpy_s(reg, 16, curOutParams, 16);
         js_memcpy_s(reg + 16, 16, curOutParams + argSizes[0], 16);
         js_memcpy_s(reg + 32, 16, curOutParams + argSizes[0] + argSizes[1], 16);

+ 0 - 78
lib/Runtime/Language/amd64/amd64_Thunks.S

@@ -62,21 +62,7 @@ NESTED_ENTRY _ZN2Js21InterpreterStackFrame33AsmJsDelayDynamicInterpreterThunkEPN
         push r8
         push r9
 
-        sub rsp, 40h
-
-        // spill potential floating point arguments to stack
-        movaps xmmword ptr [rsp + 00h], xmm0
-        movaps xmmword ptr [rsp + 10h], xmm1
-        movaps xmmword ptr [rsp + 20h], xmm2
-        movaps xmmword ptr [rsp + 30h], xmm3
         call C_FUNC(_ZN2Js21InterpreterStackFrame29EnsureDynamicInterpreterThunkEPNS_14ScriptFunctionE)
-        // restore potential floating point arguments from stack
-        movaps xmm0, xmmword ptr [rsp + 00h]
-        movaps xmm1, xmmword ptr [rsp + 10h]
-        movaps xmm2, xmmword ptr [rsp + 20h]
-        movaps xmm3, xmmword ptr [rsp + 30h]
-
-        add rsp, 40h
 
         pop r9
         pop r8
@@ -190,13 +176,6 @@ NESTED_ENTRY _ZN2Js21InterpreterStackFrame19InterpreterAsmThunkEPNS_20AsmJsCallS
 
         set_cfa_register rbp, (2*8)     // Set to compute CFA as: rbp + 16 (sizeof: [rbp] [ReturnAddress])
 
-        sub rsp, 40h
-
-        // spill potential floating point arguments to stack
-        movaps xmmword ptr [rsp + 00h], xmm0
-        movaps xmmword ptr [rsp + 10h], xmm1
-        movaps xmmword ptr [rsp + 20h], xmm2
-        movaps xmmword ptr [rsp + 30h], xmm3
 
         // save argument registers used by custom calling convention
         push rdi
@@ -210,7 +189,6 @@ NESTED_ENTRY _ZN2Js21InterpreterStackFrame19InterpreterAsmThunkEPNS_20AsmJsCallS
 
         call rax // call appropriate template
 
-        add rsp, 40h
         pop_nonvol_reg rbp
         ret
 NESTED_END _ZN2Js21InterpreterStackFrame19InterpreterAsmThunkEPNS_20AsmJsCallStackLayoutE, _TEXT
@@ -260,64 +238,8 @@ NESTED_ENTRY _ZN2Js23AsmJsExternalEntryPointEPNS_16RecyclableObjectENS_8CallInfo
         call C_FUNC(_ZN2Js19UnboxAsmJsArgumentsEPNS_14ScriptFunctionEPPvPcNS_8CallInfoE)
         // rax = target function address
 
-        // move first 4 arguments into registers.
-        // don't know types other than arg0 (which is ScriptFunction *), so put in both xmm and general purpose registers
         mov rdi, r12 // arg0: func
 
-        // int GetArgsSizesArray(ScriptFunction* func)
-        // get args sizes of target asmjs function
-        // rdi has ScriptFunction*
-        push r13
-        push rax
-        push rdi
-        sub rsp, 8h
-        call C_FUNC(_ZN2Js17GetArgsSizesArrayEPNS_14ScriptFunctionE)
-        mov r13, rax                    // r13: arg size
-        add rsp, 8h
-        pop rdi
-        pop rax
-
-        // NOTE: Below xmm usage is non-standard.
-
-        // Move 3 args to regs per convention. rdi already has first arg: ScriptFunction*
-        push r12
-        // r12->unboxed args
-        lea r12, [rsp + 18h] // rsp + size of(r12 + r13 + ScriptFunction*)
-
-        // r13 is arg size
-        cmp dword ptr [r13], 10h
-        je SIMDArg2
-        mov rsi, [r12]                  // arg1
-        movq xmm1, qword ptr [r12]      // arg1
-        add r12, 8h
-        jmp Arg3
-    SIMDArg2:
-        movups xmm1, xmmword ptr[r12]
-        add r12, 10h
-    Arg3:
-        cmp dword ptr [r13 + 4h], 10h
-        je SIMDArg3
-        mov rdx, [r12]                  // arg2
-        movq xmm2, qword ptr [r12]      // arg2
-        add r12, 8h
-        jmp Arg4
-    SIMDArg3:
-        movups xmm2, xmmword ptr[r12]
-        add r12, 10h
-    Arg4:
-        cmp dword ptr [r13 + 8h], 10h
-        je SIMDArg4
-        mov rcx, [r12]                  // arg3
-        movq xmm3, qword ptr [r12]      // arg3
-        jmp ArgsDone
-   SIMDArg4:
-        movups xmm3, xmmword ptr [r12]
-
-   ArgsDone:
-        pop r12         // r12: func
-        pop r13         // r13: orig stack pointer
-
-        // "home" arg0. other args were read from stack and already homed.
         mov [rsp + 00h], rdi
 
         // call entry point

+ 0 - 12
lib/Runtime/Library/amd64/JavascriptFunctionA.S

@@ -141,19 +141,7 @@ NESTED_ENTRY _ZN2Js18JavascriptFunction17CallAsmJsFunctionIiEET_PNS_16Recyclable
         mov rdi, rsp // rdi = arguments destination
         rep movsq
 
-        // Load 4 first arguments
-        // First Argument
         mov rdi, qword ptr [rsp]
-        // Review:: Is this really our calling convention on xplat ?
-        // Second Argument
-        mov rsi, qword ptr [r8]
-        movaps xmm1, xmmword ptr [r8]
-        // Third Argument
-        mov rdx, qword ptr [r8 + 10h]
-        movaps xmm2, xmmword ptr [r8 + 10h]
-        // Fourth Argument
-        mov rcx, qword ptr [r8 + 20h]
-        movaps xmm3, xmmword ptr [r8 + 20h]
 
         xor rax, rax // Zero out rax in case r11 expects varags
         call r11

+ 2 - 0
pal/inc/pal.h

@@ -6358,7 +6358,9 @@ PALIMPORT double __cdecl tanh(double);
 PALIMPORT double __cdecl fmod(double, double);
 PALIMPORT float __cdecl fmodf(float, float);
 PALIMPORT double __cdecl floor(double);
+PALIMPORT float __cdecl floorf(float);
 PALIMPORT double __cdecl ceil(double);
+PALIMPORT float __cdecl ceilf(float);
 PALIMPORT float __cdecl fabsf(float);
 PALIMPORT double __cdecl modf(double, double *);
 PALIMPORT float __cdecl modff(float, float *);

+ 6 - 5
test/AsmJs/rlexe.xml

@@ -120,7 +120,7 @@
     <default>
       <files>MathBuiltinsCall.js</files>
       <baseline>MathBuiltinsCall.baseline</baseline>
-      <tags>exclude_xplat</tags>
+      <tags>exclude_mac</tags>
       <compile-flags>-testtrace:asmjs</compile-flags>
     </default>
   </test>
@@ -128,7 +128,7 @@
     <default>
       <files>MathBuiltinsCall.js</files>
       <baseline>MathBuiltinsCall.baseline</baseline>
-      <tags>exclude_xplat</tags>
+      <tags>exclude_mac</tags>
       <compile-flags>-testtrace:asmjs -maic:1 -sse:3</compile-flags>
     </default>
   </test>
@@ -351,7 +351,7 @@
     <default>
       <files>MathBuiltinsCall.js</files>
       <baseline>MathBuiltinsCall.baseline</baseline>
-      <tags>exclude_amd64,exclude_xplat</tags>
+      <tags>exclude_amd64</tags>
       <!-- After removing -simdjs this test fail with -on:asmjsjittemplate. Investigate and enable
       <compile-flags>-testtrace:asmjs -oopjit- -on:asmjsjittemplate -off:fulljit</compile-flags>
       -->
@@ -524,7 +524,8 @@
     <default>
       <files>MathBuiltinsCall.js</files>
       <baseline>MathBuiltinsCall.baseline</baseline>
-      <tags>exclude_xplat</tags>
+      <!-- mac gives has some test which gives different precision result, so exclude it -->
+      <tags>exclude_mac</tags>
       <compile-flags>-testtrace:asmjs -nonative</compile-flags>
     </default>
   </test>
@@ -977,7 +978,7 @@
       <compile-flags>-testtrace:asmjs -args 14000 -endargs -EnableFatalErrorOnOOM-</compile-flags>
       <!-- todo:: On unix platforms there is more stack available,
            so we need to find the right limit to test in order to not timeout -->
-      <tags>exclude_dynapogo,exclude_xplat</tags>
+      <tags>exclude_dynapogo</tags>
     </default>
   </test>
   <test>

+ 1 - 1
test/rlexedirs.xml

@@ -289,7 +289,7 @@
 <dir>
   <default>
     <files>WasmSpec</files>
-    <tags>exclude_serialized,exclude_arm,exclude_arm64,require_backend,exclude_jshost,exclude_win7,require_wasm,exclude_xplat</tags>
+    <tags>exclude_serialized,exclude_arm,exclude_arm64,require_backend,exclude_jshost,exclude_win7,require_wasm</tags>
   </default>
 </dir>
 <dir>

+ 1 - 1
test/wasm/limits.js

@@ -24,7 +24,7 @@ const MaxModuleSize = 1024 * 1024 * 1024;
 const MaxFunctionSize = 7654321;
 
 /* global assert,testRunner */ // eslint rule
-WScript.LoadScriptFile("../UnitTestFrameWork/UnitTestFrameWork.js");
+WScript.LoadScriptFile("../UnitTestFramework/UnitTestFramework.js");
 WScript.LoadScriptFile("../WasmSpec/testsuite/harness/wasm-constants.js");
 WScript.LoadScriptFile("../WasmSpec/testsuite/harness/wasm-module-builder.js");
 WScript.Flag("-off:wasmdeferred");

+ 21 - 29
test/wasm/rlexe.xml

@@ -66,7 +66,6 @@
 <test>
   <default>
     <files>math.js</files>
-    <tags>exclude_xplat</tags>
     <compile-flags>-wasm -wasmi64</compile-flags>
   </default>
 </test>
@@ -94,7 +93,6 @@
   <default>
     <files>global.js</files>
     <baseline>baselines/global.baseline</baseline>
-    <tags>exclude_xplat</tags>
     <compile-flags>-wasm -wasmi64</compile-flags>
   </default>
 </test>
@@ -103,7 +101,6 @@
     <files>basic.js</files>
     <baseline>basic.baseline</baseline>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_xplat</tags>
   </default>
 </test>
 <test>
@@ -124,7 +121,6 @@
   <default>
     <files>table_imports.js</files>
     <baseline>baselines/table_imports.baseline</baseline>
-    <tags>exclude_xplat</tags>
     <compile-flags>-wasm -wasmi64</compile-flags>
   </default>
 </test>
@@ -140,14 +136,12 @@
     <files>call.js</files>
     <baseline>baselines/call.baseline</baseline>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_xplat</tags>
   </default>
 </test>
 <test>
   <default>
     <files>array.js</files>
     <baseline>array.baseline</baseline>
-    <tags>exclude_xplat</tags>
     <compile-flags>-wasm</compile-flags>
   </default>
 </test>
@@ -155,7 +149,6 @@
   <default>
     <files>trunc.js</files>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_xplat</tags>
   </default>
 </test>
 <test>
@@ -163,7 +156,6 @@
     <files>api.js</files>
     <baseline>baselines/api.baseline</baseline>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_xplat</tags>
   </default>
 </test>
 <test>
@@ -191,7 +183,7 @@
   <default>
     <files>inlining.js</files>
     <baseline>inlining.baseline</baseline>
-    <tags>exclude_jshost,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
@@ -199,35 +191,35 @@
     <files>params.js</files>
     <baseline>baselines/params.baseline</baseline>
     <compile-flags>-wasm -args 14000 -endargs</compile-flags>
-    <tags>exclude_jshost,exclude_win7,exclude_dynapogo,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7,exclude_dynapogo</tags>
   </default>
 </test>
   <test>
     <default>
       <files>debugger_basic.js</files>
       <compile-flags>-wasm -dbgbaseline:debugger_basic.js.dbg.baseline</compile-flags>
-      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger,exclude_xplat</tags>
+      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger</tags>
     </default>
   </test>
   <test>
     <default>
       <files>debugger_basic.js</files>
       <compile-flags>-wasm -maic:1 -dbgbaseline:debugger_basic.js.dbg.baseline</compile-flags>
-      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger,exclude_xplat</tags>
+      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger</tags>
     </default>
   </test>
   <test>
     <default>
       <files>debugger_basic.js</files>
       <compile-flags>-wasm -debuglaunch -args debuglaunch -endargs -dbgbaseline:debugger_basic_launch.js.dbg.baseline</compile-flags>
-      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger,exclude_xplat</tags>
+      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger</tags>
     </default>
   </test>
   <test>
     <default>
       <files>wasmcctx.js</files>
       <compile-flags>-wasm -dbgbaseline:wasmcctx.js.dbg.baseline -InspectMaxStringLength:50</compile-flags>
-      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger,exclude_xplat</tags>
+      <tags>exclude_jshost,exclude_win7,exclude_drt,exclude_snap,require_debugger</tags>
     </default>
   </test>
 <test>
@@ -284,7 +276,7 @@
   <default>
     <files>nestedblocks.js</files>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_dynapogo,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_dynapogo</tags>
   </default>
 </test>
 <test>
@@ -299,7 +291,7 @@
   <default>
     <files>signextend.js</files>
     <compile-flags>-wasm -args --no-verbose -endargs</compile-flags>
-    <tags>exclude_jshost,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
@@ -307,28 +299,28 @@
     <files>unsigned.js</files>
     <baseline>baselines/unsigned.baseline</baseline>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>memory.js</files>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>memory.js</files>
     <compile-flags>-wasm -wasmfastarray-</compile-flags>
-    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>superlongsignaturemismatch.js</files>
     <compile-flags>-wasm</compile-flags>
-    <tags>exclude_xplat,exclude_jshost,exclude_drt,exclude_win7</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7</tags>
   </default>
 </test>
 <test>
@@ -347,7 +339,7 @@
   <default>
     <files>polyinline.js</files>
     <compile-flags>-maxinterpretcount:2 -off:simplejit</compile-flags>
-    <tags>exclude_xplat,exclude_jshost,exclude_win7</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
@@ -355,7 +347,7 @@
     <files>limits.js</files>
     <compile-flags>-wasm -args --no-verbose --end 4 -endargs</compile-flags>
     <timeout>300</timeout>
-    <tags>exclude_xplat,exclude_jshost,exclude_drt,exclude_win7,exclude_chk,exclude_dynapogo,exclude_x86,Slow</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_chk,exclude_dynapogo,exclude_x86,Slow</tags>
   </default>
 </test>
 <test>
@@ -363,7 +355,7 @@
     <files>limits.js</files>
     <compile-flags>-wasm -args --no-verbose --start 4 --end 12 -endargs</compile-flags>
     <timeout>300</timeout>
-    <tags>exclude_xplat,exclude_jshost,exclude_drt,exclude_win7,exclude_chk,exclude_dynapogo,exclude_x86,Slow</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_chk,exclude_dynapogo,exclude_x86,Slow</tags>
   </default>
 </test>
 <test>
@@ -371,42 +363,42 @@
     <files>limits.js</files>
     <compile-flags>-wasm -args --no-verbose --start 12 -endargs</compile-flags>
     <timeout>300</timeout>
-    <tags>exclude_xplat,exclude_jshost,exclude_drt,exclude_win7,exclude_chk,exclude_dynapogo,exclude_x86,Slow</tags>
+    <tags>exclude_jshost,exclude_drt,exclude_win7,exclude_chk,exclude_dynapogo,exclude_x86,Slow</tags>
   </default>
 </test>
 <test>
   <default>
     <files>loopstslot.js</files>
     <compile-flags>-forcejitloopbody</compile-flags>
-    <tags>exclude_jshost,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>loopyield.js</files>
     <compile-flags>-forcejitloopbody</compile-flags>
-    <tags>exclude_jshost,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>loopyieldnested.js</files>
     <compile-flags>-lic:10 -bgjit-</compile-flags>
-    <tags>exclude_jshost,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>loopyieldtypes.js</files>
     <compile-flags>-forcejitloopbody</compile-flags>
-    <tags>exclude_jshost,exclude_win7,exclude_xplat</tags>
+    <tags>exclude_jshost,exclude_win7</tags>
   </default>
 </test>
 <test>
   <default>
     <files>loopyieldregress.js</files>
     <compile-flags>-lic:0 -bgjit-</compile-flags>
-    <tags>exclude_win7,exclude_xplat</tags>
+    <tags>exclude_win7</tags>
   </default>
 </test>
 </regress-exe>

+ 2 - 2
test/wasm/signextend.js

@@ -6,7 +6,7 @@
 /* global assert,testRunner */ // eslint rule
 WScript.Flag("-WasmSignExtends");
 WScript.Flag("-WasmI64");
-WScript.LoadScriptFile("../UnitTestFrameWork/UnitTestFrameWork.js");
+WScript.LoadScriptFile("../UnitTestFramework/UnitTestFramework.js");
 
 function makeCSETest(type, op1, op2, tests) {
   return {
@@ -60,7 +60,7 @@ const tests = [
   makeCSETest("i64", "extend32_s", "extend16_s", [0xFF4F, 0xFFF4FFFF, {low: 0x4FFFFFFF, high: 1}]),
 ];
 
-WScript.LoadScriptFile("../UnitTestFrameWork/yargs.js");
+WScript.LoadScriptFile("../UnitTestFramework/yargs.js");
 const argv = yargsParse(WScript.Arguments, {
   boolean: ["verbose"],
   number: ["start", "end"],