blob: 9a277e44f25992b8820294aca58746586d7278e1 [file] [log] [blame] [edit]
const PAGESIZE = 65536;
function print_origin(origin) {
print(";;");
print(";; Generated by ../meta/" + origin);
print(";; DO NOT EDIT THIS FILE. CHANGE THE SOURCE AND REGENERATE.");
print(";;");
}
function checkRangeCode() {
return `
(func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32)
(loop $cont
(if (i32.eq (local.get $from) (local.get $to))
(then
(return (i32.const -1))))
(if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected))
(then
(local.set $from (i32.add (local.get $from) (i32.const 1)))
(br $cont))))
(return (local.get $from)))
`;
}
function checkRange(from, to, expected) {
print(
`(assert_return (invoke "checkRange" (i32.const ${from}) (i32.const ${to}) (i32.const ${expected}))
(i32.const -1))`);
}