Commit 8600d580 authored by Matthias Liedtke's avatar Matthias Liedtke Committed by V8 LUCI CQ

[wasm-gc] Rename array.new_fixed_static -> array.new_fixed

This is a left-over of the removal of the dynamic (rtt-based)
variants.

Bug: v8:7748
Change-Id: I93bb74a72543a5697f1102d283c7d65c6be99466
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3856577
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Matthias Liedtke <mliedtke@chromium.org>
Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82746}
parent bcda1e76
...@@ -2006,7 +2006,7 @@ class WasmDecoder : public Decoder { ...@@ -2006,7 +2006,7 @@ class WasmDecoder : public Decoder {
if (io) io->TypeIndex(imm); if (io) io->TypeIndex(imm);
return length + imm.length; return length + imm.length;
} }
case kExprArrayNewFixedStatic: { case kExprArrayNewFixed: {
ArrayIndexImmediate<validate> array_imm(decoder, pc + length); ArrayIndexImmediate<validate> array_imm(decoder, pc + length);
IndexImmediate<validate> length_imm( IndexImmediate<validate> length_imm(
decoder, pc + length + array_imm.length, "array length"); decoder, pc + length + array_imm.length, "array length");
...@@ -2290,7 +2290,7 @@ class WasmDecoder : public Decoder { ...@@ -2290,7 +2290,7 @@ class WasmDecoder : public Decoder {
CHECK(Validate(pc + 2, imm)); CHECK(Validate(pc + 2, imm));
return {imm.struct_type->field_count(), 1}; return {imm.struct_type->field_count(), 1};
} }
case kExprArrayNewFixedStatic: { case kExprArrayNewFixed: {
ArrayIndexImmediate<validate> array_imm(this, pc + 2); ArrayIndexImmediate<validate> array_imm(this, pc + 2);
IndexImmediate<validate> length_imm(this, pc + 2 + array_imm.length, IndexImmediate<validate> length_imm(this, pc + 2 + array_imm.length,
"array length"); "array length");
...@@ -4607,7 +4607,7 @@ class WasmFullDecoder : public WasmDecoder<validate, decoding_mode> { ...@@ -4607,7 +4607,7 @@ class WasmFullDecoder : public WasmDecoder<validate, decoding_mode> {
Drop(5); Drop(5);
return opcode_length + dst_imm.length + src_imm.length; return opcode_length + dst_imm.length + src_imm.length;
} }
case kExprArrayNewFixedStatic: { case kExprArrayNewFixed: {
ArrayIndexImmediate<validate> array_imm(this, ArrayIndexImmediate<validate> array_imm(this,
this->pc_ + opcode_length); this->pc_ + opcode_length);
if (!this->Validate(this->pc_ + opcode_length, array_imm)) return 0; if (!this->Validate(this->pc_ + opcode_length, array_imm)) return 0;
......
...@@ -40,7 +40,7 @@ ValueType WasmInitExpr::type(const WasmModule* module, ...@@ -40,7 +40,7 @@ ValueType WasmInitExpr::type(const WasmModule* module,
return ValueType::RefNull(immediate().heap_type); return ValueType::RefNull(immediate().heap_type);
case kStructNew: case kStructNew:
case kStructNewDefault: case kStructNewDefault:
case kArrayNewFixedStatic: case kArrayNewFixed:
return ValueType::Ref(immediate().index); return ValueType::Ref(immediate().index);
case kI31New: case kI31New:
return kWasmI31Ref.AsNonNull(); return kWasmI31Ref.AsNonNull();
......
...@@ -38,7 +38,7 @@ class WasmInitExpr : public ZoneObject { ...@@ -38,7 +38,7 @@ class WasmInitExpr : public ZoneObject {
kRefFuncConst, kRefFuncConst,
kStructNew, kStructNew,
kStructNewDefault, kStructNewDefault,
kArrayNewFixedStatic, kArrayNewFixed,
kI31New, kI31New,
kStringConst, kStringConst,
}; };
...@@ -108,9 +108,9 @@ class WasmInitExpr : public ZoneObject { ...@@ -108,9 +108,9 @@ class WasmInitExpr : public ZoneObject {
return expr; return expr;
} }
static WasmInitExpr ArrayNewFixedStatic(uint32_t index, static WasmInitExpr ArrayNewFixed(uint32_t index,
ZoneVector<WasmInitExpr>* elements) { ZoneVector<WasmInitExpr>* elements) {
WasmInitExpr expr(kArrayNewFixedStatic, elements); WasmInitExpr expr(kArrayNewFixed, elements);
expr.immediate_.index = index; expr.immediate_.index = index;
return expr; return expr;
} }
...@@ -162,7 +162,7 @@ class WasmInitExpr : public ZoneObject { ...@@ -162,7 +162,7 @@ class WasmInitExpr : public ZoneObject {
if (operands()[i] != other.operands()[i]) return false; if (operands()[i] != other.operands()[i]) return false;
} }
return true; return true;
case kArrayNewFixedStatic: case kArrayNewFixed:
if (immediate().index != other.immediate().index) return false; if (immediate().index != other.immediate().index) return false;
if (operands()->size() != other.operands()->size()) return false; if (operands()->size() != other.operands()->size()) return false;
for (uint32_t i = 0; i < operands()->size(); i++) { for (uint32_t i = 0; i < operands()->size(); i++) {
......
...@@ -549,14 +549,14 @@ void WriteInitializerExpressionWithEnd(ZoneBuffer* buffer, ...@@ -549,14 +549,14 @@ void WriteInitializerExpressionWithEnd(ZoneBuffer* buffer,
buffer->write_u8(static_cast<uint8_t>(opcode)); buffer->write_u8(static_cast<uint8_t>(opcode));
buffer->write_u32v(init.immediate().index); buffer->write_u32v(init.immediate().index);
break; break;
case WasmInitExpr::kArrayNewFixedStatic: { case WasmInitExpr::kArrayNewFixed: {
static_assert((kExprArrayNewFixedStatic >> 8) == kGCPrefix); static_assert((kExprArrayNewFixed >> 8) == kGCPrefix);
static_assert((kExprArrayNewFixedStatic & 0x80) == 0); static_assert((kExprArrayNewFixed & 0x80) == 0);
for (const WasmInitExpr& operand : *init.operands()) { for (const WasmInitExpr& operand : *init.operands()) {
WriteInitializerExpressionWithEnd(buffer, operand, kWasmBottom); WriteInitializerExpressionWithEnd(buffer, operand, kWasmBottom);
} }
buffer->write_u8(kGCPrefix); buffer->write_u8(kGCPrefix);
buffer->write_u8(static_cast<uint8_t>(kExprArrayNewFixedStatic)); buffer->write_u8(static_cast<uint8_t>(kExprArrayNewFixed));
buffer->write_u32v(init.immediate().index); buffer->write_u32v(init.immediate().index);
buffer->write_u32v(static_cast<uint32_t>(init.operands()->size())); buffer->write_u32v(static_cast<uint32_t>(init.operands()->size()));
break; break;
......
...@@ -697,7 +697,7 @@ bool V8_EXPORT_PRIVATE IsJSCompatibleSignature(const FunctionSig* sig, ...@@ -697,7 +697,7 @@ bool V8_EXPORT_PRIVATE IsJSCompatibleSignature(const FunctionSig* sig,
V(ArrayLen, 0xfb17, _, "array.len") \ V(ArrayLen, 0xfb17, _, "array.len") \
V(ArrayCopy, 0xfb18, _, \ V(ArrayCopy, 0xfb18, _, \
"array.copy") /* not standardized - V8 experimental */ \ "array.copy") /* not standardized - V8 experimental */ \
V(ArrayNewFixedStatic, 0xfb1a, _, "array.new_fixed_static") \ V(ArrayNewFixed, 0xfb1a, _, "array.new_fixed") \
V(ArrayNew, 0xfb1b, _, "array.new") \ V(ArrayNew, 0xfb1b, _, "array.new") \
V(ArrayNewDefault, 0xfb1c, _, "array.new_default") \ V(ArrayNewDefault, 0xfb1c, _, "array.new_default") \
V(ArrayNewDataStatic, 0xfb1d, _, "array.new_data_static") \ V(ArrayNewDataStatic, 0xfb1d, _, "array.new_data_static") \
......
...@@ -841,17 +841,17 @@ WASM_COMPILED_EXEC_TEST(WasmBasicArray) { ...@@ -841,17 +841,17 @@ WASM_COMPILED_EXEC_TEST(WasmBasicArray) {
{WASM_ARRAY_NEW_DEFAULT(type_index, WASM_I32V(2)), WASM_DROP, {WASM_ARRAY_NEW_DEFAULT(type_index, WASM_I32V(2)), WASM_DROP,
WASM_ARRAY_NEW(type_index, WASM_I32V(42), WASM_I32V(2)), kExprEnd}); WASM_ARRAY_NEW(type_index, WASM_I32V(42), WASM_I32V(2)), kExprEnd});
const byte kInit = tester.DefineFunction( const byte kInit =
&sig_q_v, {}, tester.DefineFunction(&sig_q_v, {},
{WASM_ARRAY_NEW_FIXED_STATIC(type_index, 3, WASM_I32V(10), WASM_I32V(20), {WASM_ARRAY_NEW_FIXED(type_index, 3, WASM_I32V(10),
WASM_I32V(30)), WASM_I32V(20), WASM_I32V(30)),
kExprEnd}); kExprEnd});
const byte kImmutable = tester.DefineFunction( const byte kImmutable = tester.DefineFunction(
tester.sigs.i_v(), {}, tester.sigs.i_v(), {},
{WASM_ARRAY_GET(immut_type_index, {WASM_ARRAY_GET(immut_type_index,
WASM_ARRAY_NEW_FIXED_STATIC(immut_type_index, 2, WASM_ARRAY_NEW_FIXED(immut_type_index, 2, WASM_I32V(42),
WASM_I32V(42), WASM_I32V(43)), WASM_I32V(43)),
WASM_I32V(0)), WASM_I32V(0)),
kExprEnd}); kExprEnd});
......
...@@ -574,8 +574,8 @@ inline uint16_t ExtractPrefixedOpcodeBytes(WasmOpcode opcode) { ...@@ -574,8 +574,8 @@ inline uint16_t ExtractPrefixedOpcodeBytes(WasmOpcode opcode) {
dst_array, dst_index, src_array, src_index, length, \ dst_array, dst_index, src_array, src_index, length, \
WASM_GC_OP(kExprArrayCopy), static_cast<byte>(dst_idx), \ WASM_GC_OP(kExprArrayCopy), static_cast<byte>(dst_idx), \
static_cast<byte>(src_idx) static_cast<byte>(src_idx)
#define WASM_ARRAY_NEW_FIXED_STATIC(index, length, ...) \ #define WASM_ARRAY_NEW_FIXED(index, length, ...) \
__VA_ARGS__, WASM_GC_OP(kExprArrayNewFixedStatic), static_cast<byte>(index), \ __VA_ARGS__, WASM_GC_OP(kExprArrayNewFixed), static_cast<byte>(index), \
static_cast<byte>(length) static_cast<byte>(length)
#define WASM_I31_NEW(val) val, WASM_GC_OP(kExprI31New) #define WASM_I31_NEW(val) val, WASM_GC_OP(kExprI31New)
......
...@@ -2410,7 +2410,7 @@ WasmInitExpr GenerateInitExpr(Zone* zone, WasmModuleBuilder* builder, ...@@ -2410,7 +2410,7 @@ WasmInitExpr GenerateInitExpr(Zone* zone, WasmModuleBuilder* builder,
elements->push_back(GenerateInitExpr( elements->push_back(GenerateInitExpr(
zone, builder, builder->GetArrayType(index)->element_type(), zone, builder, builder->GetArrayType(index)->element_type(),
num_struct_and_array_types)); num_struct_and_array_types));
return WasmInitExpr::ArrayNewFixedStatic(index, elements); return WasmInitExpr::ArrayNewFixed(index, elements);
} }
if (builder->IsSignature(index)) { if (builder->IsSignature(index)) {
// Transform from signature index to function index. // Transform from signature index to function index.
......
...@@ -445,7 +445,7 @@ class InitExprInterface { ...@@ -445,7 +445,7 @@ class InitExprInterface {
const ArrayIndexImmediate<validate>& imm, const ArrayIndexImmediate<validate>& imm,
const base::Vector<Value>& elements, const Value& rtt, const base::Vector<Value>& elements, const Value& rtt,
Value* result) { Value* result) {
os_ << "kGCPrefix, kExprArrayNewFixedStatic, " << index(imm.index) os_ << "kGCPrefix, kExprArrayNewFixed, " << index(imm.index)
<< index(static_cast<uint32_t>(elements.size())); << index(static_cast<uint32_t>(elements.size()));
} }
......
...@@ -74,7 +74,7 @@ async function instantiateWasm() { ...@@ -74,7 +74,7 @@ async function instantiateWasm() {
kExprLocalSet, 0, kExprLocalSet, 0,
// Set local anyref_local2 to new array. // Set local anyref_local2 to new array.
...wasmI32Const(21), ...wasmI32Const(21),
kGCPrefix, kExprArrayNewFixedStatic, array_type, 1, kGCPrefix, kExprArrayNewFixed, array_type, 1,
kExprLocalSet, 1, kExprLocalSet, 1,
kExprNop, kExprNop,
]; ];
......
...@@ -14,7 +14,7 @@ builder.addFunction('getHelloArray', makeSig([], [kWasmArrayRef])) ...@@ -14,7 +14,7 @@ builder.addFunction('getHelloArray', makeSig([], [kWasmArrayRef]))
.addBody([ .addBody([
...wasmI32Const(72), ...wasmI32Const(69), ...wasmI32Const(76), ...wasmI32Const(72), ...wasmI32Const(69), ...wasmI32Const(76),
...wasmI32Const(76), ...wasmI32Const(79), ...wasmI32Const(76), ...wasmI32Const(79),
kGCPrefix, kExprArrayNewFixedStatic, i16Array, 5 kGCPrefix, kExprArrayNewFixed, i16Array, 5
]) ])
.exportFunc(); .exportFunc();
......
...@@ -200,7 +200,7 @@ d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js"); ...@@ -200,7 +200,7 @@ d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
var global = builder.addGlobal( var global = builder.addGlobal(
wasmRefType(array_index), false, wasmRefType(array_index), false,
[kExprGlobalGet, global0.index, ...wasmI32Const(element1_value), [kExprGlobalGet, global0.index, ...wasmI32Const(element1_value),
kGCPrefix, kExprArrayNewFixedStatic, array_index, 2]); kGCPrefix, kExprArrayNewFixed, array_index, 2]);
builder.addFunction("get_element", kSig_i_i) builder.addFunction("get_element", kSig_i_i)
.addBody([ .addBody([
...@@ -235,7 +235,7 @@ d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js"); ...@@ -235,7 +235,7 @@ d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
[kExprGlobalGet, global0.index, kExprRefNull, struct_index, [kExprGlobalGet, global0.index, kExprRefNull, struct_index,
...wasmI32Const(element2_value), ...wasmI32Const(element2_value),
kGCPrefix, kExprStructNew, struct_index, kGCPrefix, kExprStructNew, struct_index,
kGCPrefix, kExprArrayNewFixedStatic, array_index, 3]); kGCPrefix, kExprArrayNewFixed, array_index, 3]);
builder.addFunction("element0", kSig_i_v) builder.addFunction("element0", kSig_i_v)
.addBody([ .addBody([
...@@ -345,7 +345,7 @@ d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js"); ...@@ -345,7 +345,7 @@ d8.file.execute("test/mjsunit/wasm/wasm-module-builder.js");
wasmRefType(array_index), true, wasmRefType(array_index), true,
[...values.flatMap( [...values.flatMap(
value => [...wasmI32Const(value), kGCPrefix, kExprI31New]), value => [...wasmI32Const(value), kGCPrefix, kExprI31New]),
kGCPrefix, kExprArrayNewFixedStatic, array_index, 5]); kGCPrefix, kExprArrayNewFixed, array_index, 5]);
for (signed of [true, false]) { for (signed of [true, false]) {
builder.addFunction(`get_${signed ? "s" : "u"}`, kSig_i_i) builder.addFunction(`get_${signed ? "s" : "u"}`, kSig_i_i)
......
...@@ -135,7 +135,7 @@ for (let [typeName, type] of Object.entries(tableTypes)) { ...@@ -135,7 +135,7 @@ for (let [typeName, type] of Object.entries(tableTypes)) {
builder.addFunction("createArray", creatorSig) builder.addFunction("createArray", creatorSig)
.addBody([ .addBody([
kExprI32Const, 12, kExprI32Const, 12,
kGCPrefix, kExprArrayNewFixedStatic, array, 1 kGCPrefix, kExprArrayNewFixed, array, 1
]) ])
.exportFunc(); .exportFunc();
......
...@@ -154,7 +154,7 @@ d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js'); ...@@ -154,7 +154,7 @@ d8.file.execute('test/mjsunit/wasm/wasm-module-builder.js');
builder.addActiveElementSegment( builder.addActiveElementSegment(
table, wasmI32Const(0), table, wasmI32Const(0),
[[...wasmI32Const(111), ...wasmI32Const(222), [[...wasmI32Const(111), ...wasmI32Const(222),
kGCPrefix, kExprArrayNewFixedStatic, array_type, 2], kGCPrefix, kExprArrayNewFixed, array_type, 2],
[...wasmI32Const(-31), kGCPrefix, kExprI31New], [...wasmI32Const(-31), kGCPrefix, kExprI31New],
[...wasmI32Const(10), kGCPrefix, kExprStructNew, struct_type], [...wasmI32Const(10), kGCPrefix, kExprStructNew, struct_type],
[kExprRefNull, kEqRefCode]], [kExprRefNull, kEqRefCode]],
......
...@@ -135,14 +135,14 @@ let instance = (() => { ...@@ -135,14 +135,14 @@ let instance = (() => {
builder.addFunction('array_producer', makeSig([kWasmI32], [kWasmEqRef])) builder.addFunction('array_producer', makeSig([kWasmI32], [kWasmEqRef]))
.addBody([ .addBody([
kExprLocalGet, 0, kExprLocalGet, 0,
kGCPrefix, kExprArrayNewFixedStatic, array, 1]) kGCPrefix, kExprArrayNewFixed, array, 1])
.exportFunc(); .exportFunc();
builder.addFunction('array_externalize', builder.addFunction('array_externalize',
makeSig([kWasmI32], [kWasmExternRef])) makeSig([kWasmI32], [kWasmExternRef]))
.addBody([ .addBody([
kExprLocalGet, 0, kExprLocalGet, 0,
kGCPrefix, kExprArrayNewFixedStatic, array, 1, kGCPrefix, kExprArrayNewFixed, array, 1,
kGCPrefix, kExprExternExternalize, kGCPrefix, kExprExternExternalize,
]) ])
.exportFunc(); .exportFunc();
......
...@@ -498,7 +498,7 @@ let kExprArrayGetU = 0x15; ...@@ -498,7 +498,7 @@ let kExprArrayGetU = 0x15;
let kExprArraySet = 0x16; let kExprArraySet = 0x16;
let kExprArrayLen = 0x17; let kExprArrayLen = 0x17;
let kExprArrayCopy = 0x18; let kExprArrayCopy = 0x18;
let kExprArrayNewFixedStatic = 0x1a; let kExprArrayNewFixed = 0x1a;
let kExprArrayNew = 0x1b; let kExprArrayNew = 0x1b;
let kExprArrayNewDefault = 0x1c; let kExprArrayNewDefault = 0x1c;
let kExprArrayNewDataStatic = 0x1d; let kExprArrayNewDataStatic = 0x1d;
......
...@@ -4190,10 +4190,10 @@ TEST_F(FunctionBodyDecoderTest, GCArray) { ...@@ -4190,10 +4190,10 @@ TEST_F(FunctionBodyDecoderTest, GCArray) {
// Allocating and reading is OK: // Allocating and reading is OK:
ExpectValidates( ExpectValidates(
sigs.i_v(), sigs.i_v(),
{WASM_ARRAY_GET(immutable_array_type_index, {WASM_ARRAY_GET(
WASM_ARRAY_NEW_FIXED_STATIC(immutable_array_type_index, 1, immutable_array_type_index,
WASM_I32V(42)), WASM_ARRAY_NEW_FIXED(immutable_array_type_index, 1, WASM_I32V(42)),
WASM_I32V(0))}); WASM_I32V(0))});
// Writing fails: // Writing fails:
ExpectFailure(&sig_v_r2, ExpectFailure(&sig_v_r2,
{WASM_ARRAY_SET(immutable_array_type_index, WASM_LOCAL_GET(0), {WASM_ARRAY_SET(immutable_array_type_index, WASM_LOCAL_GET(0),
......
...@@ -35,8 +35,8 @@ namespace module_decoder_unittest { ...@@ -35,8 +35,8 @@ namespace module_decoder_unittest {
#define WASM_INIT_EXPR_GLOBAL(index) WASM_GLOBAL_GET(index), kExprEnd #define WASM_INIT_EXPR_GLOBAL(index) WASM_GLOBAL_GET(index), kExprEnd
#define WASM_INIT_EXPR_STRUCT_NEW(index, ...) \ #define WASM_INIT_EXPR_STRUCT_NEW(index, ...) \
WASM_STRUCT_NEW(index, __VA_ARGS__), kExprEnd WASM_STRUCT_NEW(index, __VA_ARGS__), kExprEnd
#define WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC(index, length, ...) \ #define WASM_INIT_EXPR_ARRAY_NEW_FIXED(index, length, ...) \
WASM_ARRAY_NEW_FIXED_STATIC(index, length, __VA_ARGS__), kExprEnd WASM_ARRAY_NEW_FIXED(index, length, __VA_ARGS__), kExprEnd
#define REF_NULL_ELEMENT kExprRefNull, kFuncRefCode, kExprEnd #define REF_NULL_ELEMENT kExprRefNull, kFuncRefCode, kExprEnd
#define REF_FUNC_ELEMENT(v) kExprRefFunc, U32V_1(v), kExprEnd #define REF_FUNC_ELEMENT(v) kExprRefFunc, U32V_1(v), kExprEnd
...@@ -836,24 +836,24 @@ TEST_F(WasmModuleVerifyTest, ArrayNewFixedInitExpr) { ...@@ -836,24 +836,24 @@ TEST_F(WasmModuleVerifyTest, ArrayNewFixedInitExpr) {
SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI16Code, true)), SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI16Code, true)),
SECTION(Global, ENTRY_COUNT(1), // -- SECTION(Global, ENTRY_COUNT(1), // --
kRefCode, 0, 0, // type, mutability kRefCode, 0, 0, // type, mutability
WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC( WASM_INIT_EXPR_ARRAY_NEW_FIXED(0, 3, WASM_I32V(10), WASM_I32V(20),
0, 3, WASM_I32V(10), WASM_I32V(20), WASM_I32V(30)))}; WASM_I32V(30)))};
EXPECT_VERIFIES(basic); EXPECT_VERIFIES(basic);
static const byte basic_static[] = { static const byte basic_static[] = {
SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI16Code, true)), SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI16Code, true)),
SECTION(Global, ENTRY_COUNT(1), // -- SECTION(Global, ENTRY_COUNT(1), // --
kRefCode, 0, 0, // type, mutability kRefCode, 0, 0, // type, mutability
WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC( WASM_INIT_EXPR_ARRAY_NEW_FIXED(0, 3, WASM_I32V(10), WASM_I32V(20),
0, 3, WASM_I32V(10), WASM_I32V(20), WASM_I32V(30)))}; WASM_I32V(30)))};
EXPECT_VERIFIES(basic_static); EXPECT_VERIFIES(basic_static);
static const byte basic_immutable[] = { static const byte basic_immutable[] = {
SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI32Code, false)), SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI32Code, false)),
SECTION(Global, ENTRY_COUNT(1), // -- SECTION(Global, ENTRY_COUNT(1), // --
kRefCode, 0, 0, // type, mutability kRefCode, 0, 0, // type, mutability
WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC( WASM_INIT_EXPR_ARRAY_NEW_FIXED(0, 3, WASM_I32V(10), WASM_I32V(20),
0, 3, WASM_I32V(10), WASM_I32V(20), WASM_I32V(30)))}; WASM_I32V(30)))};
EXPECT_VERIFIES(basic_immutable); EXPECT_VERIFIES(basic_immutable);
static const byte type_error[] = { static const byte type_error[] = {
...@@ -862,30 +862,30 @@ TEST_F(WasmModuleVerifyTest, ArrayNewFixedInitExpr) { ...@@ -862,30 +862,30 @@ TEST_F(WasmModuleVerifyTest, ArrayNewFixedInitExpr) {
WASM_ARRAY_DEF(WASM_SEQ(kRefCode, 0), true)), WASM_ARRAY_DEF(WASM_SEQ(kRefCode, 0), true)),
SECTION(Global, ENTRY_COUNT(1), // -- SECTION(Global, ENTRY_COUNT(1), // --
kRefCode, 1, 0, // type, mutability kRefCode, 1, 0, // type, mutability
WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC(0, 1, WASM_I32V(42)))}; WASM_INIT_EXPR_ARRAY_NEW_FIXED(0, 1, WASM_I32V(42)))};
EXPECT_FAILURE_WITH_MSG( EXPECT_FAILURE_WITH_MSG(
type_error, type_error,
"type error in constant expression[0] (expected (ref 1), got (ref 0))"); "type error in constant expression[0] (expected (ref 1), got (ref 0))");
static const byte subexpr_type_error[] = { static const byte subexpr_type_error[] = {
SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI64Code, true)), SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI64Code, true)),
SECTION(Global, ENTRY_COUNT(1), // -- SECTION(
kRefCode, 0, 0, // type, mutability Global, ENTRY_COUNT(1), // --
WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC(0, 2, WASM_I64V(42), kRefCode, 0, 0, // type, mutability
WASM_I32V(142)))}; WASM_INIT_EXPR_ARRAY_NEW_FIXED(0, 2, WASM_I64V(42), WASM_I32V(142)))};
EXPECT_FAILURE_WITH_MSG(subexpr_type_error, EXPECT_FAILURE_WITH_MSG(subexpr_type_error,
"array.new_fixed_static[1] expected type i64, found " "array.new_fixed[1] expected type i64, found "
"i32.const of type i32"); "i32.const of type i32");
static const byte length_error[] = { static const byte length_error[] = {
SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI16Code, true)), SECTION(Type, ENTRY_COUNT(1), WASM_ARRAY_DEF(kI16Code, true)),
SECTION(Global, ENTRY_COUNT(1), // -- SECTION(Global, ENTRY_COUNT(1), // --
kRefCode, 0, 0, // type, mutability kRefCode, 0, 0, // type, mutability
WASM_INIT_EXPR_ARRAY_NEW_FIXED_STATIC( WASM_INIT_EXPR_ARRAY_NEW_FIXED(0, 10, WASM_I32V(10),
0, 10, WASM_I32V(10), WASM_I32V(20), WASM_I32V(30)))}; WASM_I32V(20), WASM_I32V(30)))};
EXPECT_FAILURE_WITH_MSG(length_error, EXPECT_FAILURE_WITH_MSG(length_error,
"not enough arguments on the stack for " "not enough arguments on the stack for "
"array.new_fixed_static (need 11, got 4)"); "array.new_fixed (need 11, got 4)");
} }
TEST_F(WasmModuleVerifyTest, EmptyStruct) { TEST_F(WasmModuleVerifyTest, EmptyStruct) {
...@@ -1039,7 +1039,7 @@ TEST_F(WasmModuleVerifyTest, TypeCanonicalization) { ...@@ -1039,7 +1039,7 @@ TEST_F(WasmModuleVerifyTest, TypeCanonicalization) {
kWasmArrayTypeCode, kI32Code, 0), kWasmArrayTypeCode, kI32Code, 0),
SECTION(Global, // -- SECTION(Global, // --
ENTRY_COUNT(1), kRefCode, 0, 0, // Type, mutability ENTRY_COUNT(1), kRefCode, 0, 0, // Type, mutability
WASM_ARRAY_NEW_FIXED_STATIC(1, 1, WASM_I32V(10)), WASM_ARRAY_NEW_FIXED(1, 1, WASM_I32V(10)),
kExprEnd) // initial value kExprEnd) // initial value
}; };
...@@ -1056,7 +1056,7 @@ TEST_F(WasmModuleVerifyTest, TypeCanonicalization) { ...@@ -1056,7 +1056,7 @@ TEST_F(WasmModuleVerifyTest, TypeCanonicalization) {
kWasmStructTypeCode, ENTRY_COUNT(0)), kWasmStructTypeCode, ENTRY_COUNT(0)),
SECTION(Global, // -- SECTION(Global, // --
ENTRY_COUNT(1), kRefCode, 0, 0, // Type, mutability ENTRY_COUNT(1), kRefCode, 0, 0, // Type, mutability
WASM_ARRAY_NEW_FIXED_STATIC(1, 1, WASM_I32V(10)), WASM_ARRAY_NEW_FIXED(1, 1, WASM_I32V(10)),
kExprEnd) // initial value kExprEnd) // initial value
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment