diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-01-03 01:35:32 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-01-27 12:05:23 +0900 |
| commit | e2495878b872b341e6e04eed31dd255b1a6e256f (patch) | |
| tree | 4057ab19765ea7fc13505798c6434dceac02f4b1 /src/Structure/Instructions/Instrs/Memory | |
| parent | 5b4652d080c7eae26f8aac482468a6777ad9defe (diff) | |
| download | php-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')
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 +{ +} |
