forked from chakra-core/ChakraCore
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWasmFunctionInfo.cpp
More file actions
71 lines (59 loc) · 1.66 KB
/
WasmFunctionInfo.cpp
File metadata and controls
71 lines (59 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#include "WasmReaderPch.h"
#ifdef ENABLE_WASM
namespace Wasm
{
WasmFunctionInfo::WasmFunctionInfo(ArenaAllocator* alloc, WasmSignature* signature, uint32 number) :
m_alloc(alloc),
m_signature(signature),
m_body(nullptr),
m_name(nullptr),
m_customReader(nullptr),
m_nameLength(0),
m_number(number),
m_locals(alloc, signature->GetParamCount())
#if DBG_DUMP
, importedFunctionReference(nullptr)
#endif
{
for (Js::ArgSlot i = 0; i < signature->GetParamCount(); ++i)
{
m_locals.Add(signature->GetParam(i));
}
}
void WasmFunctionInfo::AddLocal(WasmTypes::WasmType type, uint32 count)
{
for (uint32 i = 0; i < count; ++i)
{
m_locals.Add(Wasm::Local(type));
}
}
Local WasmFunctionInfo::GetLocal(uint32 index) const
{
if (index < GetLocalCount())
{
return m_locals.ItemInBuffer(index);
}
return WasmTypes::Limit;
}
uint32 WasmFunctionInfo::GetResultCount() const
{
return m_signature->GetResultCount();
}
Local WasmFunctionInfo::GetResult(uint32 index) const
{
return m_signature->GetResult(index);
}
uint32 WasmFunctionInfo::GetLocalCount() const
{
return m_locals.Count();
}
Js::ArgSlot WasmFunctionInfo::GetParamCount() const
{
return m_signature->GetParamCount();
}
} // namespace Wasm
#endif // ENABLE_WASM