Skip to content

Commit 8f092e3

Browse files
committed
WIP
1 parent 6ec03c5 commit 8f092e3

File tree

72 files changed

+488
-479
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+488
-479
lines changed

scripts/gen-s-parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
("f64.pop", "makePop(Type::f64)"),
5050
("v128.pop", "makePop(Type::v128)"),
5151
("funcref.pop", "makePop(Type::funcref)"),
52-
("anyref.pop", "makePop(Type::anyref)"),
52+
("externref.pop", "makePop(Type::externref)"),
5353
("nullref.pop", "makePop(Type::nullref)"),
5454
("exnref.pop", "makePop(Type::exnref)"),
5555
("i32.load", "makeLoad(s, Type::i32, /*isAtomic=*/false)"),

scripts/test/shared.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ def has_shell_timeout():
229229
'--wasm-staging',
230230
'--experimental-wasm-eh',
231231
'--experimental-wasm-simd',
232-
'--experimental-wasm-anyref',
232+
'--experimental-wasm-reftypes',
233233
'--experimental-wasm-compilation-hints',
234234
'--experimental-wasm-return-call'
235235
]

scripts/wasm2js.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ var asmLibraryArg = {
130130
console.log('get_f64 ' + [loc, index, value]);
131131
return value;
132132
},
133-
get_anyref: function(loc, index, value) {
134-
console.log('get_anyref ' + [loc, index, value]);
133+
get_externref: function(loc, index, value) {
134+
console.log('get_externref ' + [loc, index, value]);
135135
return value;
136136
},
137137
get_exnref: function(loc, index, value) {
@@ -155,8 +155,8 @@ var asmLibraryArg = {
155155
console.log('set_f64 ' + [loc, index, value]);
156156
return value;
157157
},
158-
set_anyref: function(loc, index, value) {
159-
console.log('set_anyref ' + [loc, index, value]);
158+
set_externref: function(loc, index, value) {
159+
console.log('set_externref ' + [loc, index, value]);
160160
return value;
161161
},
162162
set_exnref: function(loc, index, value) {

src/asmjs/asm_v_wasm.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ AsmType wasmToAsmType(Type type) {
5454
case Type::v128:
5555
assert(false && "v128 not implemented yet");
5656
case Type::funcref:
57-
case Type::anyref:
57+
case Type::externref:
5858
case Type::nullref:
5959
case Type::exnref:
6060
assert(false && "reference types are not supported by asm2wasm");
@@ -80,7 +80,7 @@ char getSig(Type type) {
8080
return 'V';
8181
case Type::funcref:
8282
return 'F';
83-
case Type::anyref:
83+
case Type::externref:
8484
return 'A';
8585
case Type::nullref:
8686
return 'N';

src/binaryen-c.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ BinaryenLiteral toBinaryenLiteral(Literal x) {
7272
break;
7373
case Type::nullref:
7474
break;
75-
case Type::anyref:
75+
case Type::externref:
7676
case Type::exnref:
7777
case Type::none:
7878
case Type::unreachable:
@@ -97,7 +97,7 @@ Literal fromBinaryenLiteral(BinaryenLiteral x) {
9797
return Literal::makeFuncref(x.func);
9898
case Type::nullref:
9999
return Literal::makeNullref();
100-
case Type::anyref:
100+
case Type::externref:
101101
case Type::exnref:
102102
case Type::none:
103103
case Type::unreachable:
@@ -131,7 +131,7 @@ BinaryenType BinaryenTypeFloat32(void) { return Type::f32; }
131131
BinaryenType BinaryenTypeFloat64(void) { return Type::f64; }
132132
BinaryenType BinaryenTypeVec128(void) { return Type::v128; }
133133
BinaryenType BinaryenTypeFuncref(void) { return Type::funcref; }
134-
BinaryenType BinaryenTypeAnyref(void) { return Type::anyref; }
134+
BinaryenType BinaryenTypeExternref(void) { return Type::externref; }
135135
BinaryenType BinaryenTypeNullref(void) { return Type::nullref; }
136136
BinaryenType BinaryenTypeExnref(void) { return Type::exnref; }
137137
BinaryenType BinaryenTypeUnreachable(void) { return Type::unreachable; }

src/binaryen-c.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ BINARYEN_API BinaryenType BinaryenTypeFloat32(void);
9999
BINARYEN_API BinaryenType BinaryenTypeFloat64(void);
100100
BINARYEN_API BinaryenType BinaryenTypeVec128(void);
101101
BINARYEN_API BinaryenType BinaryenTypeFuncref(void);
102-
BINARYEN_API BinaryenType BinaryenTypeAnyref(void);
102+
BINARYEN_API BinaryenType BinaryenTypeExternref(void);
103103
BINARYEN_API BinaryenType BinaryenTypeNullref(void);
104104
BINARYEN_API BinaryenType BinaryenTypeExnref(void);
105105
BINARYEN_API BinaryenType BinaryenTypeUnreachable(void);

src/gen-s-parser.inc

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,13 @@ char op[27] = {'\0'};
88
strncpy(op, s[0]->c_str(), 26);
99
switch (op[0]) {
1010
case 'a': {
11-
switch (op[1]) {
11+
switch (op[7]) {
12+
case 'f':
13+
if (strcmp(op, "atomic.fence") == 0) { return makeAtomicFence(s); }
14+
goto parse_error;
1215
case 'n':
13-
if (strcmp(op, "anyref.pop") == 0) { return makePop(Type::anyref); }
16+
if (strcmp(op, "atomic.notify") == 0) { return makeAtomicNotify(s); }
1417
goto parse_error;
15-
case 't': {
16-
switch (op[7]) {
17-
case 'f':
18-
if (strcmp(op, "atomic.fence") == 0) { return makeAtomicFence(s); }
19-
goto parse_error;
20-
case 'n':
21-
if (strcmp(op, "atomic.notify") == 0) { return makeAtomicNotify(s); }
22-
goto parse_error;
23-
default: goto parse_error;
24-
}
25-
}
2618
default: goto parse_error;
2719
}
2820
}
@@ -83,9 +75,17 @@ switch (op[0]) {
8375
case 'l':
8476
if (strcmp(op, "else") == 0) { return makeThenOrElse(s); }
8577
goto parse_error;
86-
case 'x':
87-
if (strcmp(op, "exnref.pop") == 0) { return makePop(Type::exnref); }
88-
goto parse_error;
78+
case 'x': {
79+
switch (op[2]) {
80+
case 'n':
81+
if (strcmp(op, "exnref.pop") == 0) { return makePop(Type::exnref); }
82+
goto parse_error;
83+
case 't':
84+
if (strcmp(op, "externref.pop") == 0) { return makePop(Type::externref); }
85+
goto parse_error;
86+
default: goto parse_error;
87+
}
88+
}
8989
default: goto parse_error;
9090
}
9191
}

src/ir/abstract.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ inline UnaryOp getUnary(Type type, Op op) {
8181
WASM_UNREACHABLE("v128 not implemented yet");
8282
}
8383
case Type::funcref:
84-
case Type::anyref:
84+
case Type::externref:
8585
case Type::nullref:
8686
case Type::exnref:
8787
case Type::none:
@@ -214,7 +214,7 @@ inline BinaryOp getBinary(Type type, Op op) {
214214
WASM_UNREACHABLE("v128 not implemented yet");
215215
}
216216
case Type::funcref:
217-
case Type::anyref:
217+
case Type::externref:
218218
case Type::nullref:
219219
case Type::exnref:
220220
case Type::none:

src/js/binaryen.js-post.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function initializeConstants() {
3939
['f64', 'Float64'],
4040
['v128', 'Vec128'],
4141
['funcref', 'Funcref'],
42-
['anyref', 'Anyref'],
42+
['externref', 'Externref'],
4343
['nullref', 'Nullref'],
4444
['exnref', 'Exnref'],
4545
['unreachable', 'Unreachable'],
@@ -2071,9 +2071,9 @@ function wrapModule(module, self) {
20712071
}
20722072
};
20732073

2074-
self['anyref'] = {
2074+
self['externref'] = {
20752075
'pop': function() {
2076-
return Module['_BinaryenPop'](module, Module['anyref']);
2076+
return Module['_BinaryenPop'](module, Module['externref']);
20772077
}
20782078
};
20792079

src/literal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class Literal {
100100
Literal(int32_t(0)),
101101
Literal(int32_t(0))}});
102102
case Type::funcref:
103-
case Type::anyref:
103+
case Type::externref:
104104
case Type::nullref:
105105
case Type::exnref:
106106
case Type::none:
@@ -562,7 +562,7 @@ template<> struct less<wasm::Literal> {
562562
case wasm::Type::v128:
563563
return memcmp(a.getv128Ptr(), b.getv128Ptr(), 16) < 0;
564564
case wasm::Type::funcref:
565-
case wasm::Type::anyref:
565+
case wasm::Type::externref:
566566
case wasm::Type::nullref:
567567
case wasm::Type::exnref:
568568
case wasm::Type::none:

0 commit comments

Comments
 (0)