1;;! multi_memory = true 2;;! bulk_memory = true 3 4(module 5 (memory $m1 1) 6 (memory $m2 1) 7 8 (func (export "store1") (param i32 i64) 9 local.get 0 10 local.get 1 11 i64.store $m1) 12 13 (func (export "store2") (param i32 i64) 14 local.get 0 15 local.get 1 16 i64.store $m2) 17 18 (func (export "load1") (param i32) (result i64) 19 local.get 0 20 i64.load $m1) 21 22 (func (export "load2") (param i32) (result i64) 23 local.get 0 24 i64.load $m2) 25) 26 27(invoke "store1" (i32.const 0) (i64.const 1)) 28(invoke "store2" (i32.const 0) (i64.const 2)) 29(assert_return (invoke "load1" (i32.const 0)) (i64.const 1)) 30(assert_return (invoke "load2" (i32.const 0)) (i64.const 2)) 31 32(module $a 33 (memory (export "mem") 1) 34 35 (func (export "store") (param i32 i64) 36 local.get 0 37 local.get 1 38 i64.store) 39 40 (func (export "load") (param i32) (result i64) 41 local.get 0 42 i64.load) 43) 44 45(module $b 46 (memory (export "mem") 1) 47 48 (func (export "store") (param i32 i64) 49 local.get 0 50 local.get 1 51 i64.store) 52 53 (func (export "load") (param i32) (result i64) 54 local.get 0 55 i64.load) 56) 57 58(invoke $a "store" (i32.const 0) (i64.const 1)) 59(invoke $b "store" (i32.const 0) (i64.const 2)) 60(assert_return (invoke $a "load" (i32.const 0)) (i64.const 1)) 61(assert_return (invoke $b "load" (i32.const 0)) (i64.const 2)) 62 63(module $c 64 (import "a" "mem" (memory $m1 1)) 65 (import "b" "mem" (memory $m2 1)) 66 67 (func (export "store1") (param i32 i64) 68 local.get 0 69 local.get 1 70 i64.store $m1) 71 72 (func (export "store2") (param i32 i64) 73 local.get 0 74 local.get 1 75 i64.store $m2) 76 77 (func (export "load1") (param i32) (result i64) 78 local.get 0 79 i64.load $m1) 80 81 (func (export "load2") (param i32) (result i64) 82 local.get 0 83 i64.load $m2) 84) 85 86(invoke "store1" (i32.const 0) (i64.const 1)) 87(invoke "store2" (i32.const 0) (i64.const 2)) 88(assert_return (invoke "load1" (i32.const 0)) (i64.const 1)) 89 90(assert_return (invoke "load2" (i32.const 0)) (i64.const 2)) 91 92(module 93 (memory $m1 1) 94 (memory $m2 2) 95 96 (func (export "grow1") (param i32) (result i32) 97 local.get 0 98 memory.grow $m1) 99 100 (func (export "grow2") (param i32) (result i32) 101 local.get 0 102 memory.grow $m2) 103 104 (func (export "size1") (result i32) memory.size $m1) 105 (func (export "size2") (result i32) memory.size $m2) 106) 107 108(assert_return (invoke "size1") (i32.const 1)) 109(assert_return (invoke "size2") (i32.const 2)) 110(assert_return (invoke "grow1" (i32.const 3)) (i32.const 1)) 111(assert_return (invoke "grow1" (i32.const 4)) (i32.const 4)) 112(assert_return (invoke "grow1" (i32.const 1)) (i32.const 8)) 113(assert_return (invoke "grow2" (i32.const 1)) (i32.const 2)) 114(assert_return (invoke "grow2" (i32.const 1)) (i32.const 3)) 115 116(module 117 (memory $m1 1) 118 (memory $m2 1) 119 120 (func (export "init1") (result i32) 121 i32.const 1 122 i32.const 0 123 i32.const 4 124 memory.init $m1 $d 125 i32.const 1 126 i32.load) 127 128 (func (export "init2") (result i32) 129 i32.const 1 130 i32.const 4 131 i32.const 4 132 memory.init $m2 $d 133 i32.const 1 134 i32.load $m2) 135 136 (data $d "\01\00\00\00" "\02\00\00\00") 137) 138 139(assert_return (invoke "init1") (i32.const 1)) 140(assert_return (invoke "init2") (i32.const 2)) 141 142(module 143 (memory $m1 1) 144 (memory $m2 1) 145 146 (func (export "fill1") (result i32) 147 i32.const 1 148 i32.const 0x01 149 i32.const 4 150 memory.fill $m1 151 i32.const 1 152 i32.load) 153 154 (func (export "fill2") (result i32) 155 i32.const 1 156 i32.const 0x02 157 i32.const 2 158 memory.fill $m2 159 i32.const 1 160 i32.load $m2) 161) 162 163(assert_return (invoke "fill1") (i32.const 0x01010101)) 164(assert_return (invoke "fill2") (i32.const 0x0202)) 165