mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:47:34 +00:00
LibWasm: Implement most of the remaining instructions
This commit is a bit of a mixed bag, but most of the changes are repetitive enough to just include in a single commit. The following instructions remain unimplemented: - br.table - table.init - table.get - table.set - table.copy - table.size - table.grow - table.fill - ref.null - ref.func - ref.is_null - drop - i32/i64.clz - i32/i64.ctz - i32/i64.popcnt - i32/i64.rotl - i32/i64.rotr - X.trunc.Y - X.trunc_sat.Y - memory.size - memory.grow - memory.init - memory.copy - memory.fill - elem.drop - data.drop
This commit is contained in:
parent
056be42c0b
commit
84e3957dc3
3 changed files with 403 additions and 59 deletions
|
@ -141,6 +141,7 @@ public:
|
|||
}
|
||||
|
||||
auto& values() const { return m_values; }
|
||||
auto& values() { return m_values; }
|
||||
auto is_trap() const { return m_is_trap; }
|
||||
|
||||
private:
|
||||
|
@ -314,6 +315,11 @@ public:
|
|||
|
||||
auto is_mutable() const { return m_mutable; }
|
||||
auto& value() const { return m_value; }
|
||||
void set_value(Value value)
|
||||
{
|
||||
VERIFY(is_mutable());
|
||||
m_value = move(value);
|
||||
}
|
||||
|
||||
private:
|
||||
bool m_mutable { false };
|
||||
|
@ -391,7 +397,7 @@ public:
|
|||
[[nodiscard]] bool is_empty() const { return m_data.is_empty(); }
|
||||
void push(EntryType entry) { m_data.append(move(entry)); }
|
||||
auto pop() { return m_data.take_last(); }
|
||||
auto& last() { return m_data.last(); }
|
||||
auto& peek() const { return m_data.last(); }
|
||||
|
||||
auto size() const { return m_data.size(); }
|
||||
auto& entries() const { return m_data; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue