-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3424b98
commit 2e4e3a3
Showing
4 changed files
with
148 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
``` | ||
header: 0x00 0x61 0x73 0x6D | ||
version: 0x01 0x00 0x00 0x00 | ||
type section: 0x01 | ||
- size of this section | ||
- number of types | ||
- 0: | ||
- header: 0x60 (function prototype) | ||
- number of parameters: 0x02 | ||
- parameters type (no need for this if number of parameters is 0): | ||
- 0: | ||
i32: 0x7F | ||
- 1: | ||
i32: 0x7F | ||
- number of results: 0x01 | ||
- return type (no need for this if number of results is 0): | ||
- 0: | ||
i32: 0x7F | ||
function section: 0x03 | ||
- size of this section | ||
- number of functions: 0x02 | ||
- 0: index of the type function in section type | ||
- 1: index of the type function in section type | ||
memory section: 0x05 | ||
- size of this section | ||
- has maximum size: 0x00 (0x01 if has maximum size) | ||
- minimum size: 0x13 | ||
- maximum size (if has maximum size): 0x20 | ||
export section: 0x07 | ||
- size of this section | ||
- number of exports: 0x01 | ||
- exports: | ||
- 0: | ||
name length: 0x04 | ||
name: "main" | ||
type (func: 0, table: 1, memory: 2, global: 3): 0x00 | ||
index: 0x00 | ||
code section: 0x0A | ||
- size of this section | ||
- number of code: 0x01 | ||
- 0: | ||
size of this code | ||
number of locals type: 0x01 | ||
- 0: | ||
number of elements: 0x01 | ||
type of elements: 0x7F (i32) | ||
end of this code: 0x0B | ||
``` | ||
|
||
## Exemple | ||
|
||
`add.wat` | ||
```wat | ||
(module | ||
(func $add (param $lhs i32) (param $rhs i32) (result i32) (local $smth i32) | ||
local.get $lhs | ||
local.get $rhs | ||
local.set $smth | ||
local.get $rhs | ||
i32.add) | ||
(export "add" (func $add)) | ||
) | ||
``` | ||
|
||
`add.wasm` (with `wat2wasm` `hexdump -C`) | ||
``` | ||
00000000 00 61 73 6d 01 00 00 00 01 07 01 60 02 7f 7f 01 |.asm.......`....| | ||
00000010 7f 03 02 01 00 07 07 01 03 61 64 64 00 00 0a 0f |.........add....| | ||
00000020 01 0d 01 01 7f 20 00 20 01 21 02 20 01 6a 0b |..... . .!. .j.| | ||
0000002f | ||
``` | ||
|
||
`add.wasm.wat` (with `wasm2wat`) | ||
``` | ||
(module | ||
(type (;0;) (func (param i32 i32) (result i32))) | ||
(func (;0;) (type 0) (param i32 i32) (result i32) | ||
(local i32) | ||
local.get 0 | ||
local.get 1 | ||
local.set 2 | ||
local.get 1 | ||
i32.add) | ||
(export "add" (func 0))) | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,3 +5,4 @@ made in Haskell. | |
|
||
[README](README.md) | ||
[Byte Code Spec](ByteCodeSpec.md) | ||
[Byte Code Spec Ex](ByteCodeSpecEx.md) |