Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/Common/Common/NumberUtilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ namespace Js
#if !defined(_MSC_VER) || _MSC_VER >= 1900
// Redeclare static constants
const UINT64 NumberConstantsBase::k_Nan;
const UINT32 NumberConstantsBase::k_Nan32;
const INT64 NumberUtilitiesBase::Pos_InvalidInt64;
const INT64 NumberUtilitiesBase::Neg_InvalidInt64;
const uint64 NumberConstants::k_PosInf;
Expand Down
2 changes: 1 addition & 1 deletion lib/Common/CommonDefines.h
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@
#define ASMJS_PLAT
#endif

#if defined(ASMJS_PLAT) && defined(ENABLE_DEBUG_CONFIG_OPTIONS)
#if defined(ASMJS_PLAT) && defined(ENABLE_DEBUG_CONFIG_OPTIONS) && defined(_WIN32)
// Enable WebAssembly only in debug and test build for the time being
#define ENABLE_WASM
#endif
Expand Down
224 changes: 112 additions & 112 deletions lib/Runtime/ByteCode/AsmJsByteCodeDumper.cpp

Large diffs are not rendered by default.

224 changes: 113 additions & 111 deletions lib/Runtime/ByteCode/OpLayoutsAsmJs.h
Original file line number Diff line number Diff line change
Expand Up @@ -283,165 +283,167 @@ namespace Js
#define Uint32x4LayoutType typename SizePolicy::RegSlotType
#define Uint16x8LayoutType typename SizePolicy::RegSlotType
#define Uint8x16LayoutType typename SizePolicy::RegSlotType
#define LAYOUT_FIELDS_HELPER(x, y) x ## y
#define LAYOUT_FIELDS_DEF(x, y) LAYOUT_FIELDS_HELPER(x, y)
#define LAYOUT_TYPE_WMS_REG2(layout, t0, t1) \
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
};
#define LAYOUT_TYPE_WMS_REG3(layout, t0, t1, t2) \
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
};

#define LAYOUT_TYPE_WMS_REG4(layout, t0, t1, t2, t3)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
};
#define LAYOUT_TYPE_WMS_REG5(layout, t0, t1, t2, t3, t4)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
};
#define LAYOUT_TYPE_WMS_REG6(layout, t0, t1, t2, t3, t4, t5)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
};
#define LAYOUT_TYPE_WMS_REG7(layout, t0, t1, t2, t3, t4, t5, t6)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
};
#define LAYOUT_TYPE_WMS_REG9(layout, t0, t1, t2, t3, t4, t5, t6, t7, t8)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t7##LayoutType LAYOUT_PREFIX_##t7()7;\
t8##LayoutType LAYOUT_PREFIX_##t8()8;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
t7##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t7(), 7);\
t8##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t8(), 8);\
};
#define LAYOUT_TYPE_WMS_REG10(layout, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t7##LayoutType LAYOUT_PREFIX_##t7()7;\
t8##LayoutType LAYOUT_PREFIX_##t8()8;\
t9##LayoutType LAYOUT_PREFIX_##t9()9;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
t7##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t7(), 7);\
t8##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t8(), 8);\
t9##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t9(), 9);\
};
#define LAYOUT_TYPE_WMS_REG11(layout, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t7##LayoutType LAYOUT_PREFIX_##t7()7;\
t8##LayoutType LAYOUT_PREFIX_##t8()8;\
t9##LayoutType LAYOUT_PREFIX_##t9()9;\
t10##LayoutType LAYOUT_PREFIX_##t10()10;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
t7##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t7(), 7);\
t8##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t8(), 8);\
t9##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t9(), 9);\
t10##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t10(), 10);\
};
#define LAYOUT_TYPE_WMS_REG17(layout, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t7##LayoutType LAYOUT_PREFIX_##t7()7;\
t8##LayoutType LAYOUT_PREFIX_##t8()8;\
t9##LayoutType LAYOUT_PREFIX_##t9()9;\
t10##LayoutType LAYOUT_PREFIX_##t10()10;\
t11##LayoutType LAYOUT_PREFIX_##t11()11;\
t12##LayoutType LAYOUT_PREFIX_##t12()12;\
t13##LayoutType LAYOUT_PREFIX_##t13()13;\
t14##LayoutType LAYOUT_PREFIX_##t14()14;\
t15##LayoutType LAYOUT_PREFIX_##t15()15;\
t16##LayoutType LAYOUT_PREFIX_##t16()16;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
t7##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t7(), 7);\
t8##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t8(), 8);\
t9##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t9(), 9);\
t10##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t10(), 10);\
t11##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t11(), 11);\
t12##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t12(), 12);\
t13##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t13(), 13);\
t14##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t14(), 14);\
t15##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t15(), 15);\
t16##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t16(), 16);\
};
#define LAYOUT_TYPE_WMS_REG18(layout, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t7##LayoutType LAYOUT_PREFIX_##t7()7;\
t8##LayoutType LAYOUT_PREFIX_##t8()8;\
t9##LayoutType LAYOUT_PREFIX_##t9()9;\
t10##LayoutType LAYOUT_PREFIX_##t10()10;\
t11##LayoutType LAYOUT_PREFIX_##t11()11;\
t12##LayoutType LAYOUT_PREFIX_##t12()12;\
t13##LayoutType LAYOUT_PREFIX_##t13()13;\
t14##LayoutType LAYOUT_PREFIX_##t14()14;\
t15##LayoutType LAYOUT_PREFIX_##t15()15;\
t16##LayoutType LAYOUT_PREFIX_##t16()16;\
t17##LayoutType LAYOUT_PREFIX_##t17()17;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
t7##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t7(), 7);\
t8##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t8(), 8);\
t9##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t9(), 9);\
t10##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t10(), 10);\
t11##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t11(), 11);\
t12##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t12(), 12);\
t13##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t13(), 13);\
t14##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t14(), 14);\
t15##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t15(), 15);\
t16##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t16(), 16);\
t17##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t17(), 17);\
};
#define LAYOUT_TYPE_WMS_REG19(layout, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18)\
template <typename SizePolicy> struct OpLayoutT_##layout\
{\
t0##LayoutType LAYOUT_PREFIX_##t0()0;\
t1##LayoutType LAYOUT_PREFIX_##t1()1;\
t2##LayoutType LAYOUT_PREFIX_##t2()2;\
t3##LayoutType LAYOUT_PREFIX_##t3()3;\
t4##LayoutType LAYOUT_PREFIX_##t4()4;\
t5##LayoutType LAYOUT_PREFIX_##t5()5;\
t6##LayoutType LAYOUT_PREFIX_##t6()6;\
t7##LayoutType LAYOUT_PREFIX_##t7()7;\
t8##LayoutType LAYOUT_PREFIX_##t8()8;\
t9##LayoutType LAYOUT_PREFIX_##t9()9;\
t10##LayoutType LAYOUT_PREFIX_##t10()10;\
t11##LayoutType LAYOUT_PREFIX_##t11()11;\
t12##LayoutType LAYOUT_PREFIX_##t12()12;\
t13##LayoutType LAYOUT_PREFIX_##t13()13;\
t14##LayoutType LAYOUT_PREFIX_##t14()14;\
t15##LayoutType LAYOUT_PREFIX_##t15()15;\
t16##LayoutType LAYOUT_PREFIX_##t16()16;\
t17##LayoutType LAYOUT_PREFIX_##t17()17;\
t18##LayoutType LAYOUT_PREFIX_##t18()18;\
t0##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t0(), 0);\
t1##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t1(), 1);\
t2##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t2(), 2);\
t3##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t3(), 3);\
t4##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t4(), 4);\
t5##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t5(), 5);\
t6##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t6(), 6);\
t7##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t7(), 7);\
t8##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t8(), 8);\
t9##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t9(), 9);\
t10##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t10(), 10);\
t11##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t11(), 11);\
t12##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t12(), 12);\
t13##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t13(), 13);\
t14##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t14(), 14);\
t15##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t15(), 15);\
t16##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t16(), 16);\
t17##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t17(), 17);\
t18##LayoutType LAYOUT_FIELDS_DEF(LAYOUT_PREFIX_##t18(), 18);\
};
#include "LayoutTypesAsmJs.h"
#undef RegLayoutType
Expand Down
1 change: 1 addition & 0 deletions lib/Runtime/Language/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ set(CRL_SOURCE_FILES ${CRL_SOURCE_FILES}
AsmJsModule.cpp
AsmJsTypes.cpp
AsmJsUtils.cpp
WAsmjsUtils.cpp
CacheOperators.cpp
CodeGenRecyclableData.cpp
DynamicProfileInfo.cpp
Expand Down
19 changes: 19 additions & 0 deletions lib/WasmReader/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
add_library (Chakra.WasmReader OBJECT
WasmReaderPch.cpp
WasmDataSegment.cpp
WasmFunctionInfo.cpp
WasmModule.cpp
WasmSection.cpp
WasmSignature.cpp
WasmBinaryReader.cpp
WasmByteCodeGenerator.cpp
)

target_include_directories (
Chakra.WasmReader PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
../JITIDL
../Backend
../Runtime
../Runtime/ByteCode
../Parser
)
24 changes: 14 additions & 10 deletions lib/WasmReader/WasmBinaryReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@

#include "WasmReaderPch.h"


#ifdef ENABLE_WASM
#if ENABLE_DEBUG_CONFIG_OPTIONS
#include "Codex\Utf8Helper.h"
#endif

namespace Wasm
{
Expand Down Expand Up @@ -173,12 +175,14 @@ WasmBinaryReader::ReadSectionHeader()
}

#if ENABLE_DEBUG_CONFIG_OPTIONS
Assert(idSize < 64);
char16 buf[64];
size_t convertedChars = 0;
mbstowcs_s(&convertedChars, buf, idSize + 1, sectionName, _TRUNCATE);
buf[idSize] = 0;
TRACE_WASM_SECTION(_u("Section Header: %s, length = %u (0x%x)"), buf, sectionSize, sectionSize);
if (DO_WASM_TRACE_SECTION)
{
char16* wstr = nullptr;
size_t unused;
utf8::NarrowStringToWide<utf8::malloc_allocator>(sectionName, idSize, &wstr, &unused);
TRACE_WASM_SECTION(_u("Section Header: %s, length = %u (0x%x)"), wstr, sectionSize, sectionSize);
free(wstr);
}
#endif
return header;
}
Expand Down Expand Up @@ -217,7 +221,7 @@ WasmBinaryReader::PrintOps()
case opcode: \
Output::Print(_u("%s\r\n"), _u(#opname)); \
break;
#include "WasmBinaryOpcodes.h"
#include "WasmBinaryOpCodes.h"
}
}
HeapDeleteArray(m_ops->Count(), ops);
Expand Down Expand Up @@ -372,7 +376,7 @@ WasmBinaryReader::ReadExpr()
case wb##opname: \
m_currentNode.op = MemNode(op); \
break;
#include "WasmBinaryOpcodes.h"
#include "WasmBinaryOpCodes.h"
default:
m_currentNode.op = op;
}
Expand Down Expand Up @@ -677,7 +681,7 @@ WasmBinaryReader::ReadDataSegments()

for (uint32 i = 0; i < entries; ++i)
{
TRACE_WASM_DECODER(L"Data Segment #%u", i);
TRACE_WASM_DECODER(_u("Data Segment #%u"), i);
UINT32 offset = LEB128(len);
UINT32 dataByteLen = LEB128(len);
WasmDataSegment *dseg = Anew(m_alloc, WasmDataSegment, m_alloc, offset, dataByteLen, m_pc);
Expand Down
Loading