Skip to content

Commit 92baf35

Browse files
committed
fixup! [Custom Page Sizes]
1 parent c5492c3 commit 92baf35

File tree

8 files changed

+60
-59
lines changed

8 files changed

+60
-59
lines changed

scripts/test/shared.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ def get_tests(test_dir, extensions=[], recursive=False):
405405

406406
# Unlinkable module accepted
407407
'linking.wast',
408-
'memory_max.wast',
408+
'memory_max.wast',
409409
'memory_max_i64.wast',
410410

411411
# Invalid module accepted

src/passes/LLVMMemoryCopyFillLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ struct LLVMMemoryCopyFillLowering
117117
void createMemoryCopyFunc(Module* module) {
118118
Builder b(*module);
119119
Index dst = 0, src = 1, size = 2, start = 3, end = 4, step = 5, i = 6;
120-
Name memory_name = module->memories.front()-> name;
120+
Name memory_name = module->memories.front()->name;
121121
Address::address32_t memory_page_size = module->memories.front()->pageSizeLog2;
122122
Block* body = b.makeBlock();
123123
// end = memory size in bytes

src/passes/MultiMemoryLowering.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,7 @@ struct MultiMemoryLowering : public Pass {
704704
memory->base = base;
705705
memory->module = module;
706706
}
707+
memory->pageSizeLog2 = pageSizeLog2;
707708
wasm->addMemory(std::move(memory));
708709
}
709710

src/wasm-builder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class Builder {
113113
static std::unique_ptr<Memory> makeMemory(Name name,
114114
Address initial = 0,
115115
Address max = Memory::kDefaultMaxSize32,
116-
Address::address32_t pageSizeLog2 = 16,
116+
Address::address32_t pageSizeLog2 = Memory::kDefaultPageSizeLog2,
117117
bool shared = false,
118118
Type addressType = Type::i32) {
119119
auto memory = std::make_unique<Memory>();

src/wasm2js.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2737,7 +2737,7 @@ void Wasm2JSGlue::emitPostES6() {
27372737
// can be used for conversions, so make sure there's at least one page.
27382738
if (!wasm.memories.empty() && wasm.memories[0]->imported()) {
27392739
out << "var mem" << moduleName.str << " = new ArrayBuffer("
2740-
<< wasm.memories[0]->initial.addr << wasm.memories[0]->pageSizeLog2 << ");\n";
2740+
<< (wasm.memories[0]->initial.addr << wasm.memories[0]->pageSizeLog2) << ");\n";
27412741
}
27422742

27432743
// Actually invoke the `asmFunc` generated function, passing in all global

test/lit/passes/multi-memory-lowering.wast

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -839,23 +839,23 @@
839839

840840
;; CHECK: (func $memory1_size (result i32)
841841
;; CHECK-NEXT: (return
842-
;; CHECK-NEXT: (i32.div_u
842+
;; CHECK-NEXT: (i32.shr_u
843843
;; CHECK-NEXT: (global.get $memory2_byte_offset)
844-
;; CHECK-NEXT: (i32.const 65536)
844+
;; CHECK-NEXT: (i32.const 16)
845845
;; CHECK-NEXT: )
846846
;; CHECK-NEXT: )
847847
;; CHECK-NEXT: )
848848

849849
;; CHECK: (func $memory2_size (result i32)
850850
;; CHECK-NEXT: (return
851851
;; CHECK-NEXT: (i32.sub
852-
;; CHECK-NEXT: (i32.div_u
852+
;; CHECK-NEXT: (i32.shr_u
853853
;; CHECK-NEXT: (global.get $memory3_byte_offset)
854-
;; CHECK-NEXT: (i32.const 65536)
854+
;; CHECK-NEXT: (i32.const 16)
855855
;; CHECK-NEXT: )
856-
;; CHECK-NEXT: (i32.div_u
856+
;; CHECK-NEXT: (i32.shr_u
857857
;; CHECK-NEXT: (global.get $memory2_byte_offset)
858-
;; CHECK-NEXT: (i32.const 65536)
858+
;; CHECK-NEXT: (i32.const 16)
859859
;; CHECK-NEXT: )
860860
;; CHECK-NEXT: )
861861
;; CHECK-NEXT: )
@@ -865,9 +865,9 @@
865865
;; CHECK-NEXT: (return
866866
;; CHECK-NEXT: (i32.sub
867867
;; CHECK-NEXT: (memory.size)
868-
;; CHECK-NEXT: (i32.div_u
868+
;; CHECK-NEXT: (i32.shr_u
869869
;; CHECK-NEXT: (global.get $memory3_byte_offset)
870-
;; CHECK-NEXT: (i32.const 65536)
870+
;; CHECK-NEXT: (i32.const 16)
871871
;; CHECK-NEXT: )
872872
;; CHECK-NEXT: )
873873
;; CHECK-NEXT: )
@@ -898,35 +898,35 @@
898898
;; CHECK-NEXT: (memory.copy
899899
;; CHECK-NEXT: (i32.add
900900
;; CHECK-NEXT: (global.get $memory2_byte_offset)
901-
;; CHECK-NEXT: (i32.mul
901+
;; CHECK-NEXT: (i32.shl
902902
;; CHECK-NEXT: (local.get $page_delta)
903-
;; CHECK-NEXT: (i32.const 65536)
903+
;; CHECK-NEXT: (i32.const 16)
904904
;; CHECK-NEXT: )
905905
;; CHECK-NEXT: )
906906
;; CHECK-NEXT: (global.get $memory2_byte_offset)
907907
;; CHECK-NEXT: (i32.sub
908-
;; CHECK-NEXT: (i32.mul
908+
;; CHECK-NEXT: (i32.shl
909909
;; CHECK-NEXT: (local.get $memory_size)
910-
;; CHECK-NEXT: (i32.const 65536)
910+
;; CHECK-NEXT: (i32.const 16)
911911
;; CHECK-NEXT: )
912912
;; CHECK-NEXT: (global.get $memory2_byte_offset)
913913
;; CHECK-NEXT: )
914914
;; CHECK-NEXT: )
915915
;; CHECK-NEXT: (global.set $memory2_byte_offset
916916
;; CHECK-NEXT: (i32.add
917917
;; CHECK-NEXT: (global.get $memory2_byte_offset)
918-
;; CHECK-NEXT: (i32.mul
918+
;; CHECK-NEXT: (i32.shl
919919
;; CHECK-NEXT: (local.get $page_delta)
920-
;; CHECK-NEXT: (i32.const 65536)
920+
;; CHECK-NEXT: (i32.const 16)
921921
;; CHECK-NEXT: )
922922
;; CHECK-NEXT: )
923923
;; CHECK-NEXT: )
924924
;; CHECK-NEXT: (global.set $memory3_byte_offset
925925
;; CHECK-NEXT: (i32.add
926926
;; CHECK-NEXT: (global.get $memory3_byte_offset)
927-
;; CHECK-NEXT: (i32.mul
927+
;; CHECK-NEXT: (i32.shl
928928
;; CHECK-NEXT: (local.get $page_delta)
929-
;; CHECK-NEXT: (i32.const 65536)
929+
;; CHECK-NEXT: (i32.const 16)
930930
;; CHECK-NEXT: )
931931
;; CHECK-NEXT: )
932932
;; CHECK-NEXT: )
@@ -958,26 +958,26 @@
958958
;; CHECK-NEXT: (memory.copy
959959
;; CHECK-NEXT: (i32.add
960960
;; CHECK-NEXT: (global.get $memory3_byte_offset)
961-
;; CHECK-NEXT: (i32.mul
961+
;; CHECK-NEXT: (i32.shl
962962
;; CHECK-NEXT: (local.get $page_delta)
963-
;; CHECK-NEXT: (i32.const 65536)
963+
;; CHECK-NEXT: (i32.const 16)
964964
;; CHECK-NEXT: )
965965
;; CHECK-NEXT: )
966966
;; CHECK-NEXT: (global.get $memory3_byte_offset)
967967
;; CHECK-NEXT: (i32.sub
968-
;; CHECK-NEXT: (i32.mul
968+
;; CHECK-NEXT: (i32.shl
969969
;; CHECK-NEXT: (local.get $memory_size)
970-
;; CHECK-NEXT: (i32.const 65536)
970+
;; CHECK-NEXT: (i32.const 16)
971971
;; CHECK-NEXT: )
972972
;; CHECK-NEXT: (global.get $memory3_byte_offset)
973973
;; CHECK-NEXT: )
974974
;; CHECK-NEXT: )
975975
;; CHECK-NEXT: (global.set $memory3_byte_offset
976976
;; CHECK-NEXT: (i32.add
977977
;; CHECK-NEXT: (global.get $memory3_byte_offset)
978-
;; CHECK-NEXT: (i32.mul
978+
;; CHECK-NEXT: (i32.shl
979979
;; CHECK-NEXT: (local.get $page_delta)
980-
;; CHECK-NEXT: (i32.const 65536)
980+
;; CHECK-NEXT: (i32.const 16)
981981
;; CHECK-NEXT: )
982982
;; CHECK-NEXT: )
983983
;; CHECK-NEXT: )
@@ -1007,23 +1007,23 @@
10071007

10081008
;; BOUNDS: (func $memory1_size (result i32)
10091009
;; BOUNDS-NEXT: (return
1010-
;; BOUNDS-NEXT: (i32.div_u
1010+
;; BOUNDS-NEXT: (i32.shr_u
10111011
;; BOUNDS-NEXT: (global.get $memory2_byte_offset)
1012-
;; BOUNDS-NEXT: (i32.const 65536)
1012+
;; BOUNDS-NEXT: (i32.const 16)
10131013
;; BOUNDS-NEXT: )
10141014
;; BOUNDS-NEXT: )
10151015
;; BOUNDS-NEXT: )
10161016

10171017
;; BOUNDS: (func $memory2_size (result i32)
10181018
;; BOUNDS-NEXT: (return
10191019
;; BOUNDS-NEXT: (i32.sub
1020-
;; BOUNDS-NEXT: (i32.div_u
1020+
;; BOUNDS-NEXT: (i32.shr_u
10211021
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
1022-
;; BOUNDS-NEXT: (i32.const 65536)
1022+
;; BOUNDS-NEXT: (i32.const 16)
10231023
;; BOUNDS-NEXT: )
1024-
;; BOUNDS-NEXT: (i32.div_u
1024+
;; BOUNDS-NEXT: (i32.shr_u
10251025
;; BOUNDS-NEXT: (global.get $memory2_byte_offset)
1026-
;; BOUNDS-NEXT: (i32.const 65536)
1026+
;; BOUNDS-NEXT: (i32.const 16)
10271027
;; BOUNDS-NEXT: )
10281028
;; BOUNDS-NEXT: )
10291029
;; BOUNDS-NEXT: )
@@ -1033,9 +1033,9 @@
10331033
;; BOUNDS-NEXT: (return
10341034
;; BOUNDS-NEXT: (i32.sub
10351035
;; BOUNDS-NEXT: (memory.size)
1036-
;; BOUNDS-NEXT: (i32.div_u
1036+
;; BOUNDS-NEXT: (i32.shr_u
10371037
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
1038-
;; BOUNDS-NEXT: (i32.const 65536)
1038+
;; BOUNDS-NEXT: (i32.const 16)
10391039
;; BOUNDS-NEXT: )
10401040
;; BOUNDS-NEXT: )
10411041
;; BOUNDS-NEXT: )
@@ -1066,35 +1066,35 @@
10661066
;; BOUNDS-NEXT: (memory.copy
10671067
;; BOUNDS-NEXT: (i32.add
10681068
;; BOUNDS-NEXT: (global.get $memory2_byte_offset)
1069-
;; BOUNDS-NEXT: (i32.mul
1069+
;; BOUNDS-NEXT: (i32.shl
10701070
;; BOUNDS-NEXT: (local.get $page_delta)
1071-
;; BOUNDS-NEXT: (i32.const 65536)
1071+
;; BOUNDS-NEXT: (i32.const 16)
10721072
;; BOUNDS-NEXT: )
10731073
;; BOUNDS-NEXT: )
10741074
;; BOUNDS-NEXT: (global.get $memory2_byte_offset)
10751075
;; BOUNDS-NEXT: (i32.sub
1076-
;; BOUNDS-NEXT: (i32.mul
1076+
;; BOUNDS-NEXT: (i32.shl
10771077
;; BOUNDS-NEXT: (local.get $memory_size)
1078-
;; BOUNDS-NEXT: (i32.const 65536)
1078+
;; BOUNDS-NEXT: (i32.const 16)
10791079
;; BOUNDS-NEXT: )
10801080
;; BOUNDS-NEXT: (global.get $memory2_byte_offset)
10811081
;; BOUNDS-NEXT: )
10821082
;; BOUNDS-NEXT: )
10831083
;; BOUNDS-NEXT: (global.set $memory2_byte_offset
10841084
;; BOUNDS-NEXT: (i32.add
10851085
;; BOUNDS-NEXT: (global.get $memory2_byte_offset)
1086-
;; BOUNDS-NEXT: (i32.mul
1086+
;; BOUNDS-NEXT: (i32.shl
10871087
;; BOUNDS-NEXT: (local.get $page_delta)
1088-
;; BOUNDS-NEXT: (i32.const 65536)
1088+
;; BOUNDS-NEXT: (i32.const 16)
10891089
;; BOUNDS-NEXT: )
10901090
;; BOUNDS-NEXT: )
10911091
;; BOUNDS-NEXT: )
10921092
;; BOUNDS-NEXT: (global.set $memory3_byte_offset
10931093
;; BOUNDS-NEXT: (i32.add
10941094
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
1095-
;; BOUNDS-NEXT: (i32.mul
1095+
;; BOUNDS-NEXT: (i32.shl
10961096
;; BOUNDS-NEXT: (local.get $page_delta)
1097-
;; BOUNDS-NEXT: (i32.const 65536)
1097+
;; BOUNDS-NEXT: (i32.const 16)
10981098
;; BOUNDS-NEXT: )
10991099
;; BOUNDS-NEXT: )
11001100
;; BOUNDS-NEXT: )
@@ -1126,26 +1126,26 @@
11261126
;; BOUNDS-NEXT: (memory.copy
11271127
;; BOUNDS-NEXT: (i32.add
11281128
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
1129-
;; BOUNDS-NEXT: (i32.mul
1129+
;; BOUNDS-NEXT: (i32.shl
11301130
;; BOUNDS-NEXT: (local.get $page_delta)
1131-
;; BOUNDS-NEXT: (i32.const 65536)
1131+
;; BOUNDS-NEXT: (i32.const 16)
11321132
;; BOUNDS-NEXT: )
11331133
;; BOUNDS-NEXT: )
11341134
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
11351135
;; BOUNDS-NEXT: (i32.sub
1136-
;; BOUNDS-NEXT: (i32.mul
1136+
;; BOUNDS-NEXT: (i32.shl
11371137
;; BOUNDS-NEXT: (local.get $memory_size)
1138-
;; BOUNDS-NEXT: (i32.const 65536)
1138+
;; BOUNDS-NEXT: (i32.const 16)
11391139
;; BOUNDS-NEXT: )
11401140
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
11411141
;; BOUNDS-NEXT: )
11421142
;; BOUNDS-NEXT: )
11431143
;; BOUNDS-NEXT: (global.set $memory3_byte_offset
11441144
;; BOUNDS-NEXT: (i32.add
11451145
;; BOUNDS-NEXT: (global.get $memory3_byte_offset)
1146-
;; BOUNDS-NEXT: (i32.mul
1146+
;; BOUNDS-NEXT: (i32.shl
11471147
;; BOUNDS-NEXT: (local.get $page_delta)
1148-
;; BOUNDS-NEXT: (i32.const 65536)
1148+
;; BOUNDS-NEXT: (i32.const 16)
11491149
;; BOUNDS-NEXT: )
11501150
;; BOUNDS-NEXT: )
11511151
;; BOUNDS-NEXT: )

test/lit/wasm-split/multi-memory-lowering-import.wast

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717

1818
;; CHECK: (func $memory1_size (type $0) (result i32)
1919
;; CHECK-NEXT: (return
20-
;; CHECK-NEXT: (i32.div_u
20+
;; CHECK-NEXT: (i32.shr_u
2121
;; CHECK-NEXT: (global.get $memory2_byte_offset)
22-
;; CHECK-NEXT: (i32.const 65536)
22+
;; CHECK-NEXT: (i32.const 16)
2323
;; CHECK-NEXT: )
2424
;; CHECK-NEXT: )
2525
;; CHECK-NEXT: )
@@ -28,9 +28,9 @@
2828
;; CHECK-NEXT: (return
2929
;; CHECK-NEXT: (i32.sub
3030
;; CHECK-NEXT: (memory.size)
31-
;; CHECK-NEXT: (i32.div_u
31+
;; CHECK-NEXT: (i32.shr_u
3232
;; CHECK-NEXT: (global.get $memory2_byte_offset)
33-
;; CHECK-NEXT: (i32.const 65536)
33+
;; CHECK-NEXT: (i32.const 16)
3434
;; CHECK-NEXT: )
3535
;; CHECK-NEXT: )
3636
;; CHECK-NEXT: )
@@ -61,26 +61,26 @@
6161
;; CHECK-NEXT: (memory.copy
6262
;; CHECK-NEXT: (i32.add
6363
;; CHECK-NEXT: (global.get $memory2_byte_offset)
64-
;; CHECK-NEXT: (i32.mul
64+
;; CHECK-NEXT: (i32.shl
6565
;; CHECK-NEXT: (local.get $page_delta)
66-
;; CHECK-NEXT: (i32.const 65536)
66+
;; CHECK-NEXT: (i32.const 16)
6767
;; CHECK-NEXT: )
6868
;; CHECK-NEXT: )
6969
;; CHECK-NEXT: (global.get $memory2_byte_offset)
7070
;; CHECK-NEXT: (i32.sub
71-
;; CHECK-NEXT: (i32.mul
71+
;; CHECK-NEXT: (i32.shl
7272
;; CHECK-NEXT: (local.get $memory_size)
73-
;; CHECK-NEXT: (i32.const 65536)
73+
;; CHECK-NEXT: (i32.const 16)
7474
;; CHECK-NEXT: )
7575
;; CHECK-NEXT: (global.get $memory2_byte_offset)
7676
;; CHECK-NEXT: )
7777
;; CHECK-NEXT: )
7878
;; CHECK-NEXT: (global.set $memory2_byte_offset
7979
;; CHECK-NEXT: (i32.add
8080
;; CHECK-NEXT: (global.get $memory2_byte_offset)
81-
;; CHECK-NEXT: (i32.mul
81+
;; CHECK-NEXT: (i32.shl
8282
;; CHECK-NEXT: (local.get $page_delta)
83-
;; CHECK-NEXT: (i32.const 65536)
83+
;; CHECK-NEXT: (i32.const 16)
8484
;; CHECK-NEXT: )
8585
;; CHECK-NEXT: )
8686
;; CHECK-NEXT: )

test/wasm2js/grow_memory.2asm.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function asmFunc(imports) {
2929
}
3030

3131
function __wasm_memory_size() {
32-
return buffer.byteLength / 65536 | 0;
32+
return buffer.byteLength >> 16 | 0;
3333
}
3434

3535
function __wasm_memory_grow(pagesToAdd) {

0 commit comments

Comments
 (0)