aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Structure/Instructions/Instrs/Memory
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-01-03 01:35:32 +0900
committernsfisis <nsfisis@gmail.com>2024-01-27 12:05:23 +0900
commite2495878b872b341e6e04eed31dd255b1a6e256f (patch)
tree4057ab19765ea7fc13505798c6434dceac02f4b1 /src/Structure/Instructions/Instrs/Memory
parent5b4652d080c7eae26f8aac482468a6777ad9defe (diff)
downloadphp-waddiwasi-e2495878b872b341e6e04eed31dd255b1a6e256f.tar.gz
php-waddiwasi-e2495878b872b341e6e04eed31dd255b1a6e256f.tar.zst
php-waddiwasi-e2495878b872b341e6e04eed31dd255b1a6e256f.zip
feat: implement binary decoder
Diffstat (limited to 'src/Structure/Instructions/Instrs/Memory')
-rw-r--r--src/Structure/Instructions/Instrs/Memory/DataDrop.php16
-rw-r--r--src/Structure/Instructions/Instrs/Memory/F32Load.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/F32Store.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/F64Load.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/F64Store.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Load.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Load16S.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Load16U.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Load8S.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Load8U.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Store.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Store16.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I32Store8.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load16S.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load16U.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load32S.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load32U.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load8S.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Load8U.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Store.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Store16.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Store32.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/I64Store8.php20
-rw-r--r--src/Structure/Instructions/Instrs/Memory/MemoryCopy.php11
-rw-r--r--src/Structure/Instructions/Instrs/Memory/MemoryFill.php11
-rw-r--r--src/Structure/Instructions/Instrs/Memory/MemoryGrow.php11
-rw-r--r--src/Structure/Instructions/Instrs/Memory/MemoryInit.php16
-rw-r--r--src/Structure/Instructions/Instrs/Memory/MemorySize.php11
29 files changed, 536 insertions, 0 deletions
diff --git a/src/Structure/Instructions/Instrs/Memory/DataDrop.php b/src/Structure/Instructions/Instrs/Memory/DataDrop.php
new file mode 100644
index 0000000..4d08ef8
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/DataDrop.php
@@ -0,0 +1,16 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+use Nsfisis\Waddiwasi\Structure\Types\DataIdx;
+
+final readonly class DataDrop extends Instr
+{
+ public function __construct(
+ public DataIdx $data,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/F32Load.php b/src/Structure/Instructions/Instrs/Memory/F32Load.php
new file mode 100644
index 0000000..d315ffc
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/F32Load.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class F32Load extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/F32Store.php b/src/Structure/Instructions/Instrs/Memory/F32Store.php
new file mode 100644
index 0000000..702698d
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/F32Store.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class F32Store extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/F64Load.php b/src/Structure/Instructions/Instrs/Memory/F64Load.php
new file mode 100644
index 0000000..8ea4742
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/F64Load.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class F64Load extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/F64Store.php b/src/Structure/Instructions/Instrs/Memory/F64Store.php
new file mode 100644
index 0000000..3cda981
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/F64Store.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class F64Store extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Load.php b/src/Structure/Instructions/Instrs/Memory/I32Load.php
new file mode 100644
index 0000000..98e5e35
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Load.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Load extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Load16S.php b/src/Structure/Instructions/Instrs/Memory/I32Load16S.php
new file mode 100644
index 0000000..f4fa975
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Load16S.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Load16S extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Load16U.php b/src/Structure/Instructions/Instrs/Memory/I32Load16U.php
new file mode 100644
index 0000000..8d6d772
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Load16U.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Load16U extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Load8S.php b/src/Structure/Instructions/Instrs/Memory/I32Load8S.php
new file mode 100644
index 0000000..3d93375
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Load8S.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Load8S extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Load8U.php b/src/Structure/Instructions/Instrs/Memory/I32Load8U.php
new file mode 100644
index 0000000..dcc94bc
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Load8U.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Load8U extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Store.php b/src/Structure/Instructions/Instrs/Memory/I32Store.php
new file mode 100644
index 0000000..c65e9c1
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Store.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Store extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Store16.php b/src/Structure/Instructions/Instrs/Memory/I32Store16.php
new file mode 100644
index 0000000..01401df
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Store16.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Store16 extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I32Store8.php b/src/Structure/Instructions/Instrs/Memory/I32Store8.php
new file mode 100644
index 0000000..07f0f90
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I32Store8.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I32Store8 extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load.php b/src/Structure/Instructions/Instrs/Memory/I64Load.php
new file mode 100644
index 0000000..ccb8069
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load16S.php b/src/Structure/Instructions/Instrs/Memory/I64Load16S.php
new file mode 100644
index 0000000..34f9a9d
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load16S.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load16S extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load16U.php b/src/Structure/Instructions/Instrs/Memory/I64Load16U.php
new file mode 100644
index 0000000..171ed96
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load16U.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load16U extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load32S.php b/src/Structure/Instructions/Instrs/Memory/I64Load32S.php
new file mode 100644
index 0000000..e26fbc8
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load32S.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load32S extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load32U.php b/src/Structure/Instructions/Instrs/Memory/I64Load32U.php
new file mode 100644
index 0000000..6568d25
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load32U.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load32U extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load8S.php b/src/Structure/Instructions/Instrs/Memory/I64Load8S.php
new file mode 100644
index 0000000..7f4a8ef
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load8S.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load8S extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Load8U.php b/src/Structure/Instructions/Instrs/Memory/I64Load8U.php
new file mode 100644
index 0000000..1982714
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Load8U.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Load8U extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Store.php b/src/Structure/Instructions/Instrs/Memory/I64Store.php
new file mode 100644
index 0000000..75e0303
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Store.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Store extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Store16.php b/src/Structure/Instructions/Instrs/Memory/I64Store16.php
new file mode 100644
index 0000000..66ecec6
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Store16.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Store16 extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Store32.php b/src/Structure/Instructions/Instrs/Memory/I64Store32.php
new file mode 100644
index 0000000..8307efd
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Store32.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Store32 extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/I64Store8.php b/src/Structure/Instructions/Instrs/Memory/I64Store8.php
new file mode 100644
index 0000000..dd52475
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/I64Store8.php
@@ -0,0 +1,20 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class I64Store8 extends Instr
+{
+ /**
+ * @param U32 $offset
+ * @param U32 $align
+ */
+ public function __construct(
+ public int $offset,
+ public int $align,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/MemoryCopy.php b/src/Structure/Instructions/Instrs/Memory/MemoryCopy.php
new file mode 100644
index 0000000..49a2700
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/MemoryCopy.php
@@ -0,0 +1,11 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class MemoryCopy extends Instr
+{
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/MemoryFill.php b/src/Structure/Instructions/Instrs/Memory/MemoryFill.php
new file mode 100644
index 0000000..0de6d5e
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/MemoryFill.php
@@ -0,0 +1,11 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class MemoryFill extends Instr
+{
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/MemoryGrow.php b/src/Structure/Instructions/Instrs/Memory/MemoryGrow.php
new file mode 100644
index 0000000..2b16de1
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/MemoryGrow.php
@@ -0,0 +1,11 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class MemoryGrow extends Instr
+{
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/MemoryInit.php b/src/Structure/Instructions/Instrs/Memory/MemoryInit.php
new file mode 100644
index 0000000..72f7ee9
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/MemoryInit.php
@@ -0,0 +1,16 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+use Nsfisis\Waddiwasi\Structure\Types\DataIdx;
+
+final readonly class MemoryInit extends Instr
+{
+ public function __construct(
+ public DataIdx $data,
+ ) {
+ }
+}
diff --git a/src/Structure/Instructions/Instrs/Memory/MemorySize.php b/src/Structure/Instructions/Instrs/Memory/MemorySize.php
new file mode 100644
index 0000000..e411762
--- /dev/null
+++ b/src/Structure/Instructions/Instrs/Memory/MemorySize.php
@@ -0,0 +1,11 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Structure\Instructions\Instrs\Memory;
+
+use Nsfisis\Waddiwasi\Structure\Instructions\Instr;
+
+final readonly class MemorySize extends Instr
+{
+}