Skip to content

Commit f15f168

Browse files
authored
Better MemoryOrder
1 parent 6e36f77 commit f15f168

1 file changed

Lines changed: 69 additions & 63 deletions

File tree

index.d.ts

Lines changed: 69 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,12 @@ declare module binaryen {
240240
const ExternalGlobal: ExternalKinds;
241241
const ExternalTag: ExternalKinds;
242242

243+
const enum MemoryOrder {
244+
Unordered,
245+
SeqCst,
246+
AcqRel
247+
}
248+
243249
enum Features {
244250
MVP,
245251
Atomics,
@@ -1217,38 +1223,38 @@ declare module binaryen {
12171223
ge_s(left: ExpressionRef, right: ExpressionRef): ExpressionRef;
12181224
ge_u(left: ExpressionRef, right: ExpressionRef): ExpressionRef;
12191225
atomic: {
1220-
load(offset: number, ptr: ExpressionRef, name?: string, order?: number): ExpressionRef;
1221-
load8_u(offset: number, ptr: ExpressionRef, name?: string, order?: number): ExpressionRef;
1222-
load16_u(offset: number, ptr: ExpressionRef, name?: string, order?: number): ExpressionRef;
1223-
store(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1224-
store8(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1225-
store16(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1226+
load(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1227+
load8_u(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1228+
load16_u(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1229+
store(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1230+
store8(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1231+
store16(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
12261232
rmw: {
1227-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1228-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1229-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1230-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1231-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1232-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1233-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1233+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1234+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1235+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1236+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1237+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1238+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1239+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
12341240
},
12351241
rmw8_u: {
1236-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1237-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1238-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1239-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1240-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1241-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1242-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1242+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1243+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1244+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1245+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1246+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1247+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1248+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
12431249
},
12441250
rmw16_u: {
1245-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1246-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1247-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1248-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1249-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1250-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1251-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1251+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1252+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1253+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1254+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1255+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1256+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1257+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
12521258
},
12531259
},
12541260
pop(): ExpressionRef;
@@ -1318,49 +1324,49 @@ declare module binaryen {
13181324
ge_s(left: ExpressionRef, right: ExpressionRef): ExpressionRef;
13191325
ge_u(left: ExpressionRef, right: ExpressionRef): ExpressionRef;
13201326
atomic: {
1321-
load(offset: number, ptr: ExpressionRef, name?: string, order?: number): ExpressionRef;
1322-
load8_u(offset: number, ptr: ExpressionRef, name?: string, order?: number: ExpressionRef;
1323-
load16_u(offset: number, ptr: ExpressionRef, name?: string, order?: number): ExpressionRef;
1324-
load32_u(offset: number, ptr: ExpressionRef, name?: string, order?: number): ExpressionRef;
1325-
store(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1326-
store8(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1327-
store16(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1328-
store32(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1327+
load(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1328+
load8_u(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder: ExpressionRef;
1329+
load16_u(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1330+
load32_u(offset: number, ptr: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1331+
store(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1332+
store8(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1333+
store16(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1334+
store32(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
13291335
rmw: {
1330-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1331-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1332-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1333-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1334-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1335-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1336-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1336+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1337+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1338+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1339+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1340+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1341+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1342+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
13371343
},
13381344
rmw8_u: {
1339-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1340-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1341-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1342-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1343-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1344-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1345-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1345+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1346+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1347+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1348+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1349+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1350+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1351+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
13461352
},
13471353
rmw16_u: {
1348-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1349-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1350-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1351-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1352-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1353-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1354-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1354+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1355+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1356+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1357+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1358+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1359+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1360+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
13551361
},
13561362
rmw32_u: {
1357-
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1358-
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1359-
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1360-
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1361-
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1362-
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: number): ExpressionRef;
1363-
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: number): ExpressionRef;
1363+
add(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1364+
sub(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1365+
and(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1366+
or(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1367+
xor(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1368+
xchg(offset: number, ptr: ExpressionRef, value: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
1369+
cmpxchg(offset: number, ptr: ExpressionRef, expected: ExpressionRef, replacement: ExpressionRef, name?: string, order?: MemoryOrder): ExpressionRef;
13641370
},
13651371
},
13661372
pop(): ExpressionRef;

0 commit comments

Comments
 (0)