Skip to content

Commit b349cc8

Browse files
committed
[Memory64] wasi JS changes for 64-bit
1 parent 1b82784 commit b349cc8

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/library_wasi.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,16 @@ var WasiLibrary = {
9090
args_sizes_get__nothrow: true,
9191
args_sizes_get__sig: 'iii',
9292
args_sizes_get: function(pargc, pargv_buf_size) {
93+
{{{ from64(['pargc', 'pargv_buf_size']) }}};
9394
#if MAIN_READS_PARAMS
94-
{{{ makeSetValue('pargc', 0, 'mainArgs.length', 'i32') }}};
95+
{{{ makeSetValue('pargc', 0, 'mainArgs.length', `${SIZE_TYPE}`) }}};
9596
var bufSize = 0;
9697
mainArgs.forEach(function(arg) {
9798
bufSize += arg.length + 1;
9899
});
99-
{{{ makeSetValue('pargv_buf_size', 0, 'bufSize', 'i32') }}};
100+
{{{ makeSetValue('pargv_buf_size', 0, 'bufSize', `${SIZE_TYPE}`) }}};
100101
#else
101-
{{{ makeSetValue('pargc', 0, '0', 'i32') }}};
102+
{{{ makeSetValue('pargc', 0, '0', `${SIZE_TYPE}`) }}};
102103
#endif
103104
return 0;
104105
},
@@ -109,11 +110,12 @@ var WasiLibrary = {
109110
args_get__deps: ['$writeAsciiToMemory'],
110111
#endif
111112
args_get: function(argv, argv_buf) {
113+
{{{ from64(['argv', 'argv_buf']) }}};
112114
#if MAIN_READS_PARAMS
113115
var bufSize = 0;
114116
mainArgs.forEach(function(arg, i) {
115117
var ptr = argv_buf + bufSize;
116-
{{{ makeSetValue('argv', 'i * 4', 'ptr', 'i32') }}};
118+
{{{ makeSetValue('argv', `i*${Runtime.POINTER_SIZE}`, 'ptr', `${POINTER_TYPE}`) }}};
117119
writeAsciiToMemory(arg, ptr);
118120
bufSize += arg.length + 1;
119121
});
@@ -181,7 +183,7 @@ var WasiLibrary = {
181183
#if SYSCALLS_REQUIRE_FILESYSTEM == 0 && (!MINIMAL_RUNTIME || EXIT_RUNTIME)
182184
$flush_NO_FILESYSTEM: function() {
183185
// flush anything remaining in the buffers during shutdown
184-
if (typeof _fflush !== 'undefined') _fflush(0);
186+
if (typeof _fflush !== 'undefined') _fflush({{{ sizeT(0) }}});
185187
var buffers = SYSCALLS.buffers;
186188
if (buffers[1].length) SYSCALLS.printChar(1, {{{ charCode("\n") }}});
187189
if (buffers[2].length) SYSCALLS.printChar(2, {{{ charCode("\n") }}});
@@ -193,22 +195,23 @@ var WasiLibrary = {
193195
#endif
194196
fd_write__sig: 'iiiii',
195197
fd_write: function(fd, iov, iovcnt, pnum) {
198+
{{{ from64(['iov', 'iovcnt', 'pnum']) }}};
196199
#if SYSCALLS_REQUIRE_FILESYSTEM
197200
var stream = SYSCALLS.getStreamFromFD(fd);
198201
var num = SYSCALLS.doWritev(stream, iov, iovcnt);
199202
#else
200203
// hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0
201204
var num = 0;
202205
for (var i = 0; i < iovcnt; i++) {
203-
var ptr = {{{ makeGetValue('iov', 'i*8', 'i32') }}};
204-
var len = {{{ makeGetValue('iov', 'i*8 + 4', 'i32') }}};
206+
var ptr = {{{ makeGetValue('iov', `i*${Runtime.POINTER_SIZE}*2`, `${POINTER_TYPE}`) }}};
207+
var len = {{{ makeGetValue('iov', `i*${Runtime.POINTER_SIZE}*2 + ${Runtime.POINTER_SIZE}`, `${POINTER_TYPE}`) }}};
205208
for (var j = 0; j < len; j++) {
206209
SYSCALLS.printChar(fd, HEAPU8[ptr+j]);
207210
}
208211
num += len;
209212
}
210213
#endif // SYSCALLS_REQUIRE_FILESYSTEM
211-
{{{ makeSetValue('pnum', 0, 'num', 'i32') }}}
214+
{{{ makeSetValue('pnum', 0, 'num', `${SIZE_TYPE}`) }}}
212215
return 0;
213216
},
214217

0 commit comments

Comments
 (0)