Skip to content

Commit 5aa0259

Browse files
committed
Merge pull request #341 from WebAssembly/update-pointers
Refine set of load/store ops and rename
2 parents d902182 + bc2be3f commit 5aa0259

File tree

1 file changed

+14
-23
lines changed

1 file changed

+14
-23
lines changed

AstSemantics.md

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -88,33 +88,24 @@ conversion between that memory type and a local type.
8888
Loads read data from linear memory, convert from their memory type to a basic
8989
type, and return the result:
9090

91-
* `int32.load_s[int8]`: sign-extend to int32
92-
* `int32.load_s[int16]`: sign-extend to int32
93-
* `int32.load_u[int8]`: zero-extend to int32
94-
* `int32.load_u[int16]`: zero-extend to int32
95-
* `int32.load[int32]`: (no conversion)
96-
* `int64.load_s[int8]`: sign-extend to int64
97-
* `int64.load_s[int16]`: sign-extend to int64
98-
* `int64.load_s[int32]`: sign-extend to int64
99-
* `int64.load_u[int8]`: zero-extend to int64
100-
* `int64.load_u[int16]`: zero-extend to int64
101-
* `int64.load_u[int32]`: zero-extend to int64
102-
* `int64.load[int64]`: (no conversion)
103-
* `float32.load[float32]`: (no conversion)
104-
* `float64.load[float64]`: (no conversion)
91+
* `int32.load8_s`: sign-extend int8 to int32
92+
* `int32.load8_u`: zero-extend uint8 to int32
93+
* `int32.load16_s`: sign-extend int8 to int32
94+
* `int32.load16_u`: zero-extend uint8 to int32
95+
* `int32.load`: (no conversion)
96+
* `int64.load`: (no conversion)
97+
* `float32.load`: (no conversion)
98+
* `float64.load`: (no conversion)
10599

106100
Stores have an operand providing a value to store. They convert from the value's
107101
local type to their memory type, and write the resulting value to linear memory:
108102

109-
* `int32.store[int8]`: wrap int32 to int8
110-
* `int32.store[int16]`: wrap int32 to int16
111-
* `int32.store[int32]`: (no conversion)
112-
* `int64.store[int8]`: wrap int64 to int8
113-
* `int64.store[int16]`: wrap int64 to int16
114-
* `int64.store[int32]`: wrap int64 to int32
115-
* `int64.store[int64]`: (no conversion)
116-
* `float32.store[float32]`: (no conversion)
117-
* `float64.store[float64]`: (no conversion)
103+
* `int32.store8`: wrap int32 to int8
104+
* `int32.store16`: wrap int32 to int16
105+
* `int32.store`: (no conversion)
106+
* `int64.store`: (no conversion)
107+
* `float32.store`: (no conversion)
108+
* `float64.store`: (no conversion)
118109

119110
Wrapping of integers simply discards any upper bits; i.e. wrapping does not
120111
perform saturation, trap on overflow, etc.

0 commit comments

Comments
 (0)