Created
December 22, 2021 09:52
-
-
Save carlopi/c3f64382e6de8776b75636384545896c to your computer and use it in GitHub Desktop.
Experiment with compiling earcut.hpp with Cheerp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict";/*Compiled using Cheerp (R) by Leaning Technologies Ltd*/var a4=Math.imul;var a5=Math.fround;var oSlot=0;var nullArray=[null];var nullObj={d:nullArray,o:0};function bt(p){var b=null,f='function';if(typeof fetch===f)b=fetch(p).then(r=>r.arrayBuffer());else if(typeof require===f){p=require('path').join(__dirname, p);b=new Promise((y,n)=>{require('fs').readFile(p,(e,d)=>{if(e)n(e);else y(d);});});}else b=new Promise((y,n)=>{y(read(p,'binary'));});return b;}function a1(w,v){var u=null,k=null,l=0,j=0,g=0,h=0,t=-0.,i=0,s=0,o=0,p=null,q=0,m=null,n=0;u=ax();k=-64+u|0;ag(k);aN((w.length)>>>1);j=w.length;if((j|0)>0){h=0;g=0;while(1){t=+w[g];f[(h<<4)+(c[1049616>>2]|0)>>3]=t;t=+w[g+1|0];f[(h<<4)+8+(c[1049616>>2]|0)>>3]=t;g=g+2|0;if((g|0)<(j|0)){h=h+1|0;continue;}break;}}j=48+k|0;aL(j);if(v!==null){g=v.length;if((g|0)!==0){h=40+k|0;s=0;i=0;while(1){o=v[i];c[h>>2]=s;c[4+h>>2]=o;ao(j,h);i=i+1|0;if((i|0)!==(g|0)){s=o;continue;}break;}}else{o=0;}}else{o=0;}g=32+k|0;h=c[1049620>>2]|0;i=c[1049616>>2]|0;c[g>>2]=o;c[4+g>>2]=(h|0)-(i|0)>>4;ao(j,g);g=16+k|0;aH(g,j);aG();q=c[4+g>>2]>>2;p=c;n=c[g>>2]>>2;m=c;p=new Int32Array((+((a4(q,4))-(a4(n,4))>>2>>>0)));h=8+k|0;aE(h,g);i=k|0;aD(i,g);n=c[h>>2]>>2;m=c;l=c[i>>2]>>2;k=c;if(m!==k||n!==l){s=0;while(1){p[0+s|0]=m[n]|0;aT(h);n=c[h>>2]>>2;m=c;if(m!==k||n!==l){s=s+1|0;continue;}break;}}ae(g|0);ae(j);ag(u);return p;}function U(){throw new Error("Abort called");}function CheerpException(m){var instance=new Error('Uncaught C++ exception: '+m);instance.name='CheerpException';Object.setPrototypeOf(instance,Object.getPrototypeOf(this));if(Error.captureStackTrace){Error.captureStackTrace(instance, CheerpException);}return instance;}CheerpException.prototype=Object.create(Error.prototype);function bn(bytes){var pages=(bytes+65535)>>16;try{__asm.bq.grow(pages);bo(__asm.bq.buffer);return pages<<16;}catch(e){return -1;}}var c=null,f=null,__asm=null,__heap=null;function bp(){throw new Error('this should be unreachable');};var aN=null;var aL=null;var ao=null;var aH=null;var aG=null;var aE=null;var aD=null;var ag=null;var ae=null;var aT=null;var ax=null;var earcut_cheerp=bp;bp.promise=bt('earcut_cheerp.wasm').then(g=>WebAssembly.instantiate(g,{i:{U:U,bn:bn,}})).then(g=>{__asm=g.instance.exports;__heap=__asm.bq.buffer;bo(__heap);aN=__asm.aN;aL=__asm.aL;ao=__asm.ao;aH=__asm.aH;aG=__asm.aG;aE=__asm.aE;aD=__asm.aD;ag=__asm.ag;ae=__asm.ae;aT=__asm.aT;ax=__asm.ax;earcut_cheerp=a1;earcut_cheerp.promise=Promise.resolve();__asm.aw();});function bo(g){c=new Int32Array(g);f=new Float64Array(g);} | |
//Test infrastructure (it suppose both this and earcut_cheerp.wasm to be in the earcut/bench folder) | |
earcut_cheerp.promise.then( () => { | |
const earcut_original = require('../src/earcut'); | |
performTest(earcut_original, earcut_cheerp); | |
}); | |
function performTest(original, cheerpified) | |
{ | |
const earcut = require('../src/earcut'); | |
function withoutHoles({vertices, holes, dimensions}) { | |
return { | |
vertices: vertices.slice(0, holes[0] * dimensions), | |
holes: [] | |
}; | |
} | |
const samples = { | |
'typical OSM building': earcut.flatten(require('../test/fixtures/building.json')), | |
'dude shape': withoutHoles(earcut.flatten(require('../test/fixtures/dude.json'))), | |
'dude shape with holes': earcut.flatten(require('../test/fixtures/dude.json')), | |
'US border': earcut.flatten(require('../test/fixtures/simplified-us-border.json')), | |
'rain': earcut.flatten(require('../test/fixtures/rain.json')), | |
'hourglass': earcut.flatten(require('../test/fixtures/hourglass.json')), | |
'complex OSM water': earcut.flatten(require('../test/fixtures/water.json')), | |
'complex OSM water2': earcut.flatten(require('../test/fixtures/water2.json')), | |
'complex OSM water3': earcut.flatten(require('../test/fixtures/water3.json')), | |
'complex OSM water4': earcut.flatten(require('../test/fixtures/water4.json')), | |
'huge OSM water': earcut.flatten(require('../test/fixtures/water-huge.json')), | |
'huge OSM water2': earcut.flatten(require('../test/fixtures/water-huge2.json')) | |
}; | |
const Benchmark = require('benchmark'); | |
for (const name in samples) { | |
const {vertices, holes, dimensions} = samples[name]; | |
new Benchmark.Suite() | |
.add('original - ' + name + ' (' + (vertices.length / 2) + ' vertices):', function () { | |
original(vertices, [], dimensions); | |
}) | |
.on('cycle', logCycle) | |
.run(); | |
new Benchmark.Suite() | |
.add('cheerpified - ' + name + ' (' + (vertices.length / 2) + ' vertices):', function () { | |
cheerpified(vertices, [], dimensions); | |
}) | |
.on('cycle', logCycle) | |
.run(); | |
} | |
function logCycle(event) { | |
console.log(String(event.target)); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(module | |
(type (;0;) (func)) | |
(type (;1;) (func (param i32) (result i32))) | |
(type (;2;) (func (param i32))) | |
(type (;3;) (func (param i32 i32))) | |
(type (;4;) (func (param i32 i32 i32 i32 i32) (result i32))) | |
(type (;5;) (func (param i32 i32 i32 i32) (result i32))) | |
(type (;6;) (func (param i32 i32 i32) (result i32))) | |
(type (;7;) (func (param i32 i32) (result i32))) | |
(type (;8;) (func (result i32))) | |
(import "i" "U" (func (;0;) (type 0))) | |
(import "i" "bn" (func (;1;) (type 1))) | |
(func (;2;) (type 0) | |
unreachable) | |
(func (;3;) (type 2) (param i32) | |
(local i32 i32 i32 i32 i32 i32 i32) | |
local.get 0 | |
if ;; label = @1 | |
global.get 5 | |
local.get 0 | |
i32.gt_u | |
br_if 0 (;@1;) | |
i32.const -8 | |
local.get 0 | |
i32.add | |
local.tee 2 | |
i32.load offset=4 | |
local.tee 3 | |
i32.const -2 | |
i32.and | |
local.tee 4 | |
local.get 2 | |
i32.add | |
local.tee 5 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
local.set 6 | |
i32.const 0 | |
i32.load offset=1048592 | |
local.get 5 | |
i32.eq | |
if ;; label = @2 | |
local.get 6 | |
local.get 4 | |
i32.add | |
local.set 4 | |
local.get 3 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
if ;; label = @3 | |
local.get 2 | |
i32.load | |
local.tee 3 | |
local.get 2 | |
local.get 3 | |
i32.sub | |
local.tee 2 | |
i32.load offset=12 | |
local.tee 5 | |
local.get 2 | |
i32.load offset=8 | |
local.tee 6 | |
local.get 5 | |
i32.store offset=12 | |
local.get 6 | |
i32.store offset=8 | |
local.get 4 | |
i32.add | |
local.set 4 | |
end | |
local.get 2 | |
local.get 4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1048592 | |
local.get 4 | |
i32.const 131072 | |
i32.ge_u | |
if ;; label = @3 | |
local.get 4 | |
i32.const -4 | |
i32.and | |
local.tee 5 | |
i32.const -17 | |
i32.add | |
i32.const -4096 | |
i32.and | |
local.tee 6 | |
i32.const 4096 | |
i32.lt_s | |
br_if 0 (;@3;) | |
global.get 2 | |
i32.eqz | |
if ;; label = @4 | |
global.get 5 | |
global.set 2 | |
end | |
global.get 3 | |
local.get 5 | |
local.get 2 | |
i32.add | |
i32.ne | |
br_if 0 (;@3;) | |
global.get 2 | |
i32.eqz | |
if ;; label = @4 | |
global.get 5 | |
global.set 2 | |
end | |
global.get 2 | |
local.set 2 | |
i32.const 0 | |
local.get 6 | |
i32.sub | |
local.set 4 | |
block ;; label = @4 | |
local.get 4 | |
local.get 2 | |
i32.add | |
global.get 3 | |
i32.ge_u | |
if ;; label = @5 | |
local.get 4 | |
call 1 | |
local.tee 3 | |
i32.const -1 | |
i32.eq | |
br_if 1 (;@4;) | |
local.get 3 | |
global.get 3 | |
i32.add | |
global.set 3 | |
end | |
local.get 4 | |
global.get 2 | |
i32.add | |
global.set 2 | |
local.get 2 | |
i32.const -1 | |
i32.eq | |
br_if 0 (;@4;) | |
i32.const 0 | |
i32.load offset=1048592 | |
local.get 5 | |
i32.const 1 | |
i32.add | |
local.get 6 | |
i32.sub | |
i32.store offset=4 | |
global.get 4 | |
local.get 6 | |
i32.sub | |
global.set 4 | |
br 3 (;@1;) | |
end | |
global.get 2 | |
i32.eqz | |
if ;; label = @4 | |
global.get 5 | |
global.set 2 | |
end | |
global.get 3 | |
local.tee 2 | |
i32.const 0 | |
i32.load offset=1048592 | |
local.tee 4 | |
i32.sub | |
local.tee 3 | |
i32.const 15 | |
i32.le_s | |
br_if 0 (;@3;) | |
local.get 2 | |
global.get 7 | |
i32.sub | |
global.set 4 | |
local.get 4 | |
local.get 3 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
end | |
else | |
local.get 5 | |
local.get 6 | |
i32.store offset=4 | |
local.get 6 | |
local.get 5 | |
i32.add | |
local.set 7 | |
block ;; label = @3 | |
block (result i32) ;; label = @4 | |
local.get 3 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
if ;; label = @5 | |
local.get 2 | |
i32.load | |
local.tee 3 | |
local.get 4 | |
i32.add | |
local.set 4 | |
local.get 2 | |
local.get 3 | |
i32.sub | |
local.tee 2 | |
i32.load offset=8 | |
local.tee 3 | |
i32.const 1048592 | |
i32.eq | |
if ;; label = @6 | |
local.get 7 | |
i32.load offset=4 | |
i32.const 1 | |
i32.and | |
if ;; label = @7 | |
local.get 2 | |
local.get 4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 4 | |
local.get 2 | |
i32.add | |
local.get 4 | |
i32.store | |
br 6 (;@1;) | |
end | |
i32.const 0 | |
local.get 4 | |
local.get 6 | |
i32.add | |
local.set 4 | |
br 2 (;@4;) | |
end | |
local.get 2 | |
i32.load offset=12 | |
local.tee 1 | |
local.get 3 | |
local.get 1 | |
i32.store offset=12 | |
local.get 3 | |
i32.store offset=8 | |
end | |
local.get 7 | |
i32.load offset=4 | |
i32.const 1 | |
i32.and | |
if ;; label = @5 | |
local.get 2 | |
local.get 4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 4 | |
local.get 2 | |
i32.add | |
local.get 4 | |
i32.store | |
br 2 (;@3;) | |
end | |
local.get 4 | |
local.get 6 | |
i32.add | |
local.set 4 | |
local.get 5 | |
i32.load offset=8 | |
i32.const 1048592 | |
i32.eq | |
if ;; label = @5 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1048604 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1048600 | |
local.get 2 | |
global.get 8 | |
i64.store offset=8 align=4 | |
local.get 2 | |
local.get 4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 4 | |
local.get 2 | |
i32.add | |
local.get 4 | |
i32.store | |
br 4 (;@1;) | |
end | |
i32.const 1 | |
end | |
local.get 5 | |
i32.load offset=12 | |
local.tee 7 | |
local.get 5 | |
i32.load offset=8 | |
local.tee 5 | |
local.get 7 | |
i32.store offset=12 | |
local.get 5 | |
i32.store offset=8 | |
local.get 2 | |
local.get 4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 4 | |
local.get 2 | |
i32.add | |
local.get 4 | |
i32.store | |
i32.eqz | |
br_if 2 (;@1;) | |
end | |
local.get 4 | |
i32.const 512 | |
i32.lt_u | |
if ;; label = @3 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1048588 | |
i32.const 1 | |
local.get 4 | |
i32.const 5 | |
i32.shr_u | |
i32.shl | |
i32.or | |
i32.store offset=1048588 | |
i32.const 1048584 | |
local.get 4 | |
i32.const 2 | |
i32.shr_u | |
i32.const 1073741822 | |
i32.and | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.tee 4 | |
i32.load offset=8 | |
local.tee 5 | |
local.get 2 | |
local.get 4 | |
i32.store offset=12 | |
local.get 2 | |
local.get 5 | |
i32.store offset=8 | |
local.get 4 | |
local.get 2 | |
i32.store offset=8 | |
local.get 2 | |
i32.store offset=12 | |
else | |
local.get 4 | |
i32.const 2560 | |
i32.lt_u | |
if (result i32) ;; label = @4 | |
local.get 4 | |
i32.const 6 | |
i32.shr_u | |
i32.const 56 | |
i32.add | |
else | |
local.get 4 | |
i32.const 10752 | |
i32.lt_u | |
if (result i32) ;; label = @5 | |
local.get 4 | |
i32.const 9 | |
i32.shr_u | |
i32.const 91 | |
i32.add | |
else | |
local.get 4 | |
i32.const 43520 | |
i32.lt_u | |
if (result i32) ;; label = @6 | |
local.get 4 | |
i32.const 12 | |
i32.shr_u | |
i32.const 110 | |
i32.add | |
else | |
local.get 4 | |
i32.const 174592 | |
i32.lt_u | |
if (result i32) ;; label = @7 | |
local.get 4 | |
i32.const 15 | |
i32.shr_u | |
i32.const 119 | |
i32.add | |
else | |
local.get 4 | |
i32.const 698880 | |
i32.lt_u | |
if (result i32) ;; label = @8 | |
local.get 4 | |
i32.const 18 | |
i32.shr_u | |
i32.const 124 | |
i32.add | |
else | |
i32.const 126 | |
end | |
end | |
end | |
end | |
end | |
local.set 6 | |
i32.const 1048584 | |
local.get 6 | |
i32.const 3 | |
i32.shl | |
i32.add | |
local.tee 5 | |
i32.load offset=8 | |
local.tee 7 | |
local.get 5 | |
i32.eq | |
if ;; label = @4 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1048588 | |
i32.const 1 | |
local.get 6 | |
i32.const 2 | |
i32.shr_u | |
i32.shl | |
i32.or | |
i32.store offset=1048588 | |
local.get 5 | |
local.set 7 | |
else | |
loop ;; label = @5 | |
local.get 4 | |
local.get 7 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
i32.lt_u | |
if ;; label = @6 | |
local.get 7 | |
i32.load offset=8 | |
local.tee 7 | |
local.get 5 | |
i32.ne | |
br_if 1 (;@5;) | |
local.get 5 | |
local.set 7 | |
end | |
end | |
local.get 7 | |
i32.load offset=12 | |
local.set 5 | |
end | |
local.get 2 | |
local.get 5 | |
i32.store offset=12 | |
local.get 2 | |
local.get 7 | |
i32.store offset=8 | |
local.get 5 | |
local.get 2 | |
i32.store offset=8 | |
local.get 7 | |
local.get 2 | |
i32.store offset=12 | |
end | |
end | |
end) | |
(func (;4;) (type 1) (param i32) (result i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32 i32) | |
i32.const 16 | |
local.get 0 | |
i32.const 11 | |
i32.add | |
local.tee 1 | |
i32.const -8 | |
i32.and | |
local.get 1 | |
i32.const 23 | |
i32.lt_u | |
select | |
local.set 1 | |
i32.const 1 | |
local.get 1 | |
local.get 0 | |
i32.lt_u | |
local.get 1 | |
i32.const 0 | |
i32.lt_s | |
select | |
if ;; label = @1 | |
i32.const 0 | |
return | |
end | |
block ;; label = @1 | |
local.get 1 | |
i32.const 504 | |
i32.lt_u | |
if (result i32) ;; label = @2 | |
i32.const 1048584 | |
local.get 1 | |
i32.const 2 | |
i32.shr_u | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.tee 2 | |
i32.load offset=12 | |
local.tee 3 | |
local.get 2 | |
i32.eq | |
if ;; label = @3 | |
local.get 2 | |
i32.load offset=20 | |
local.set 3 | |
i32.const 8 | |
local.get 2 | |
i32.add | |
local.set 2 | |
end | |
local.get 3 | |
local.get 2 | |
i32.ne | |
if ;; label = @3 | |
local.get 3 | |
i32.load offset=4 | |
local.tee 2 | |
local.get 3 | |
i32.load offset=12 | |
local.tee 1 | |
local.get 3 | |
i32.load offset=8 | |
local.tee 8 | |
local.get 1 | |
i32.store offset=12 | |
local.get 8 | |
i32.store offset=8 | |
i32.const -4 | |
i32.and | |
local.get 3 | |
i32.add | |
local.get 2 | |
i32.const -4 | |
i32.and | |
local.get 3 | |
i32.add | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
br 2 (;@1;) | |
end | |
local.get 1 | |
i32.const 3 | |
i32.shr_u | |
i32.const 2 | |
i32.add | |
else | |
local.get 1 | |
i32.const 512 | |
i32.lt_u | |
if (result i32) ;; label = @3 | |
i32.const 63 | |
else | |
local.get 1 | |
i32.const 2560 | |
i32.lt_u | |
if ;; label = @4 | |
local.get 1 | |
i32.const 6 | |
i32.shr_u | |
local.set 3 | |
i32.const 56 | |
local.set 2 | |
else | |
local.get 1 | |
i32.const 10752 | |
i32.lt_u | |
if ;; label = @5 | |
local.get 1 | |
i32.const 9 | |
i32.shr_u | |
local.set 3 | |
i32.const 91 | |
local.set 2 | |
else | |
local.get 1 | |
i32.const 43520 | |
i32.lt_u | |
if ;; label = @6 | |
local.get 1 | |
i32.const 12 | |
i32.shr_u | |
local.set 3 | |
i32.const 110 | |
local.set 2 | |
else | |
local.get 1 | |
i32.const 174592 | |
i32.lt_u | |
if ;; label = @7 | |
local.get 1 | |
i32.const 15 | |
i32.shr_u | |
local.set 3 | |
i32.const 119 | |
local.set 2 | |
else | |
local.get 1 | |
i32.const 698880 | |
i32.ge_u | |
if ;; label = @8 | |
i32.const 126 | |
br 5 (;@3;) | |
end | |
local.get 1 | |
i32.const 18 | |
i32.shr_u | |
local.set 3 | |
i32.const 124 | |
local.set 2 | |
end | |
end | |
end | |
end | |
local.get 3 | |
local.get 2 | |
i32.add | |
end | |
local.set 2 | |
i32.const 1048584 | |
local.get 2 | |
i32.const 3 | |
i32.shl | |
i32.add | |
local.tee 5 | |
i32.load offset=12 | |
local.tee 3 | |
local.get 5 | |
i32.ne | |
if ;; label = @3 | |
loop ;; label = @4 | |
local.get 3 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
local.tee 4 | |
local.get 1 | |
i32.sub | |
local.tee 6 | |
i32.const 15 | |
i32.gt_s | |
if ;; label = @5 | |
local.get 2 | |
i32.const -1 | |
i32.add | |
local.set 2 | |
else | |
local.get 3 | |
i32.load offset=12 | |
local.set 7 | |
local.get 6 | |
i32.const -1 | |
i32.gt_s | |
if ;; label = @6 | |
local.get 3 | |
i32.load offset=8 | |
local.tee 6 | |
local.get 7 | |
i32.store offset=12 | |
local.get 7 | |
local.get 6 | |
i32.store offset=8 | |
local.get 4 | |
local.get 3 | |
i32.add | |
local.get 4 | |
local.get 3 | |
i32.add | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
br 5 (;@1;) | |
end | |
local.get 7 | |
local.get 5 | |
i32.eq | |
br_if 0 (;@5;) | |
local.get 7 | |
local.set 3 | |
br 1 (;@4;) | |
end | |
end | |
end | |
local.get 2 | |
i32.const 1 | |
i32.add | |
end | |
local.set 2 | |
i32.const 0 | |
i32.load offset=1048600 | |
local.tee 3 | |
i32.const 1048592 | |
i32.ne | |
if ;; label = @2 | |
local.get 3 | |
i32.load offset=4 | |
local.tee 6 | |
i32.const -4 | |
i32.and | |
local.tee 4 | |
local.get 1 | |
i32.sub | |
local.tee 7 | |
i32.const 15 | |
i32.gt_s | |
if ;; label = @3 | |
local.get 3 | |
local.get 1 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
i32.const 0 | |
local.get 1 | |
local.get 3 | |
i32.add | |
local.tee 2 | |
i32.store offset=1048604 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1048600 | |
local.get 2 | |
global.get 8 | |
i64.store offset=8 align=4 | |
local.get 2 | |
local.get 7 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 4 | |
local.get 3 | |
i32.add | |
local.get 7 | |
i32.store | |
br 2 (;@1;) | |
end | |
i32.const 0 | |
i32.const 1048592 | |
i32.store offset=1048604 | |
i32.const 0 | |
i32.const 1048592 | |
i32.store offset=1048600 | |
local.get 7 | |
i32.const -1 | |
i32.gt_s | |
if ;; label = @3 | |
local.get 4 | |
local.get 3 | |
i32.add | |
local.get 4 | |
local.get 3 | |
i32.add | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
br 2 (;@1;) | |
end | |
local.get 4 | |
i32.const 512 | |
i32.lt_u | |
if ;; label = @3 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1048588 | |
i32.const 1 | |
local.get 6 | |
i32.const 5 | |
i32.shr_u | |
i32.shl | |
i32.or | |
i32.store offset=1048588 | |
i32.const 1048584 | |
local.get 6 | |
i32.const 2 | |
i32.shr_u | |
i32.const 1073741822 | |
i32.and | |
i32.const 2 | |
i32.shl | |
i32.add | |
local.tee 4 | |
i32.load offset=8 | |
local.tee 6 | |
local.get 3 | |
local.get 4 | |
i32.store offset=12 | |
local.get 3 | |
local.get 6 | |
i32.store offset=8 | |
local.get 4 | |
local.get 3 | |
i32.store offset=8 | |
local.get 3 | |
i32.store offset=12 | |
else | |
local.get 6 | |
i32.const 2560 | |
i32.lt_u | |
if (result i32) ;; label = @4 | |
local.get 6 | |
i32.const 6 | |
i32.shr_u | |
i32.const 56 | |
i32.add | |
else | |
local.get 6 | |
i32.const 10752 | |
i32.lt_u | |
if (result i32) ;; label = @5 | |
local.get 6 | |
i32.const 9 | |
i32.shr_u | |
i32.const 91 | |
i32.add | |
else | |
local.get 6 | |
i32.const 43520 | |
i32.lt_u | |
if (result i32) ;; label = @6 | |
local.get 6 | |
i32.const 12 | |
i32.shr_u | |
i32.const 110 | |
i32.add | |
else | |
local.get 6 | |
i32.const 174592 | |
i32.lt_u | |
if (result i32) ;; label = @7 | |
local.get 6 | |
i32.const 15 | |
i32.shr_u | |
i32.const 119 | |
i32.add | |
else | |
local.get 6 | |
i32.const 698880 | |
i32.lt_u | |
if (result i32) ;; label = @8 | |
local.get 6 | |
i32.const 18 | |
i32.shr_u | |
i32.const 124 | |
i32.add | |
else | |
i32.const 126 | |
end | |
end | |
end | |
end | |
end | |
local.set 6 | |
i32.const 1048584 | |
local.get 6 | |
i32.const 3 | |
i32.shl | |
i32.add | |
local.tee 7 | |
i32.load offset=8 | |
local.tee 5 | |
local.get 7 | |
i32.eq | |
if (result i32) ;; label = @4 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1048588 | |
i32.const 1 | |
local.get 6 | |
i32.const 2 | |
i32.shr_u | |
i32.shl | |
i32.or | |
i32.store offset=1048588 | |
local.get 7 | |
else | |
loop ;; label = @5 | |
local.get 4 | |
local.get 5 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
i32.lt_u | |
if ;; label = @6 | |
local.get 5 | |
i32.load offset=8 | |
local.tee 5 | |
local.get 7 | |
i32.ne | |
br_if 1 (;@5;) | |
else | |
local.get 5 | |
local.set 7 | |
end | |
end | |
local.get 7 | |
i32.load offset=12 | |
end | |
local.tee 5 | |
local.get 3 | |
local.get 5 | |
i32.store offset=12 | |
local.get 3 | |
local.get 7 | |
i32.store offset=8 | |
local.get 3 | |
i32.store offset=8 | |
local.get 7 | |
local.get 3 | |
i32.store offset=12 | |
end | |
end | |
i32.const 1 | |
local.get 2 | |
i32.const 4 | |
i32.div_s | |
i32.shl | |
local.tee 4 | |
i32.const 0 | |
i32.load offset=1048588 | |
local.tee 3 | |
i32.le_u | |
if ;; label = @2 | |
local.get 3 | |
local.get 4 | |
i32.and | |
i32.eqz | |
if ;; label = @3 | |
local.get 2 | |
i32.const 4 | |
i32.add | |
i32.const -4 | |
i32.and | |
local.set 2 | |
loop ;; label = @4 | |
local.get 4 | |
i32.const 1 | |
i32.shl | |
local.tee 4 | |
local.get 3 | |
i32.and | |
br_if 1 (;@3;) | |
local.get 2 | |
i32.const 4 | |
i32.add | |
local.set 2 | |
br 0 (;@4;) | |
end | |
end | |
loop ;; label = @3 | |
i32.const 1048584 | |
local.get 2 | |
i32.const 3 | |
i32.shl | |
i32.add | |
local.tee 6 | |
local.get 2 | |
local.set 5 | |
local.set 7 | |
loop ;; label = @4 | |
local.get 7 | |
i32.load offset=12 | |
local.tee 3 | |
local.get 7 | |
i32.ne | |
if ;; label = @5 | |
loop ;; label = @6 | |
local.get 3 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
local.tee 8 | |
local.get 1 | |
i32.sub | |
local.tee 9 | |
i32.const 15 | |
i32.gt_s | |
if ;; label = @7 | |
local.get 3 | |
local.get 1 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 3 | |
i32.load offset=12 | |
local.get 1 | |
local.get 3 | |
i32.add | |
local.set 2 | |
local.tee 1 | |
local.get 3 | |
i32.load offset=8 | |
local.tee 4 | |
local.get 1 | |
i32.store offset=12 | |
local.get 4 | |
i32.store offset=8 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1048604 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1048600 | |
local.get 2 | |
global.get 8 | |
i64.store offset=8 align=4 | |
local.get 2 | |
local.get 9 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 8 | |
local.get 3 | |
i32.add | |
local.get 9 | |
i32.store | |
br 6 (;@1;) | |
end | |
local.get 9 | |
i32.const -1 | |
i32.gt_s | |
if ;; label = @7 | |
local.get 8 | |
local.get 3 | |
i32.add | |
local.get 8 | |
local.get 3 | |
i32.add | |
i32.load offset=4 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 3 | |
i32.load offset=12 | |
local.tee 8 | |
local.get 3 | |
i32.load offset=8 | |
local.tee 9 | |
local.get 8 | |
i32.store offset=12 | |
local.get 9 | |
i32.store offset=8 | |
br 6 (;@1;) | |
end | |
local.get 3 | |
i32.load offset=12 | |
local.tee 3 | |
local.get 7 | |
i32.ne | |
br_if 0 (;@6;) | |
end | |
end | |
local.get 5 | |
i32.const 1 | |
i32.add | |
local.tee 5 | |
i32.const 3 | |
i32.and | |
if ;; label = @5 | |
i32.const 8 | |
local.get 7 | |
i32.add | |
local.set 7 | |
br 1 (;@4;) | |
end | |
end | |
loop ;; label = @4 | |
local.get 2 | |
i32.const 3 | |
i32.and | |
if ;; label = @5 | |
i32.const -8 | |
local.get 6 | |
i32.add | |
local.tee 6 | |
i32.load offset=8 | |
local.get 6 | |
i32.eq | |
if ;; label = @6 | |
local.get 2 | |
i32.const -1 | |
i32.add | |
local.set 2 | |
br 2 (;@4;) | |
end | |
else | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1048588 | |
local.get 4 | |
i32.const -1 | |
i32.xor | |
i32.and | |
i32.store offset=1048588 | |
end | |
end | |
local.get 4 | |
i32.const 1 | |
i32.shl | |
local.tee 4 | |
i32.const 0 | |
i32.load offset=1048588 | |
local.tee 3 | |
i32.le_u | |
local.set 2 | |
local.get 4 | |
i32.eqz | |
br_if 1 (;@2;) | |
local.get 2 | |
i32.eqz | |
br_if 1 (;@2;) | |
local.get 3 | |
local.get 4 | |
i32.and | |
if ;; label = @4 | |
local.get 5 | |
local.set 2 | |
else | |
loop ;; label = @5 | |
local.get 4 | |
i32.const 1 | |
i32.shl | |
local.tee 4 | |
local.get 5 | |
i32.const 4 | |
i32.add | |
local.set 5 | |
local.get 3 | |
i32.and | |
i32.eqz | |
br_if 0 (;@5;) | |
end | |
local.get 5 | |
local.set 2 | |
end | |
br 0 (;@3;) | |
end | |
end | |
i32.const 0 | |
i32.load offset=1048592 | |
local.tee 3 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
local.tee 2 | |
local.get 1 | |
i32.sub | |
local.set 5 | |
block ;; label = @2 | |
local.get 2 | |
local.get 1 | |
i32.ge_u | |
if ;; label = @3 | |
local.get 5 | |
i32.const 16 | |
i32.ge_s | |
br_if 1 (;@2;) | |
end | |
local.get 2 | |
local.get 3 | |
i32.add | |
local.set 5 | |
global.get 7 | |
i32.const -1 | |
i32.eq | |
if ;; label = @3 | |
local.get 1 | |
i32.const 16 | |
i32.add | |
local.set 4 | |
else | |
local.get 1 | |
i32.const 4111 | |
i32.add | |
i32.const -4096 | |
i32.and | |
local.set 4 | |
end | |
global.get 2 | |
i32.eqz | |
if ;; label = @3 | |
global.get 5 | |
global.set 2 | |
end | |
block ;; label = @3 | |
local.get 4 | |
if ;; label = @4 | |
global.get 2 | |
local.tee 6 | |
local.get 4 | |
i32.add | |
global.get 3 | |
i32.ge_u | |
if ;; label = @5 | |
local.get 4 | |
call 1 | |
local.tee 7 | |
i32.const -1 | |
i32.eq | |
br_if 2 (;@3;) | |
local.get 7 | |
global.get 3 | |
i32.add | |
global.set 3 | |
end | |
local.get 4 | |
global.get 2 | |
i32.add | |
global.set 2 | |
else | |
global.get 3 | |
local.set 6 | |
end | |
local.get 6 | |
i32.const -1 | |
i32.eq | |
br_if 0 (;@3;) | |
local.get 3 | |
i32.const 1048584 | |
i32.eq | |
local.set 7 | |
i32.const 1 | |
local.get 7 | |
local.get 6 | |
local.get 5 | |
i32.ge_u | |
select | |
i32.eqz | |
br_if 0 (;@3;) | |
global.get 4 | |
local.get 4 | |
i32.add | |
local.tee 8 | |
global.set 4 | |
local.get 5 | |
local.tee 9 | |
i32.const 4095 | |
i32.and | |
i32.eqz | |
i32.const 0 | |
local.get 6 | |
local.get 5 | |
i32.eq | |
select | |
if ;; label = @4 | |
i32.const 0 | |
i32.load offset=1048592 | |
local.get 4 | |
local.get 2 | |
i32.add | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
else | |
global.get 7 | |
i32.const -1 | |
i32.eq | |
if ;; label = @5 | |
local.get 6 | |
global.set 7 | |
else | |
local.get 6 | |
local.get 9 | |
i32.sub | |
local.get 8 | |
i32.add | |
global.set 4 | |
end | |
i32.const 8 | |
local.get 6 | |
i32.add | |
i32.const 7 | |
i32.and | |
local.tee 5 | |
if ;; label = @5 | |
i32.const 8 | |
local.get 5 | |
i32.sub | |
local.tee 5 | |
local.get 6 | |
i32.add | |
local.set 6 | |
else | |
i32.const 0 | |
local.set 5 | |
end | |
i32.const 4096 | |
local.get 4 | |
local.get 6 | |
i32.add | |
i32.const 4095 | |
i32.and | |
i32.sub | |
local.get 5 | |
i32.add | |
local.set 5 | |
global.get 2 | |
i32.eqz | |
if ;; label = @5 | |
global.get 5 | |
global.set 2 | |
end | |
global.get 2 | |
local.set 4 | |
block ;; label = @5 | |
local.get 5 | |
local.get 4 | |
i32.add | |
global.get 3 | |
i32.ge_u | |
if ;; label = @6 | |
local.get 5 | |
call 1 | |
local.tee 8 | |
i32.const -1 | |
i32.eq | |
if ;; label = @7 | |
i32.const -1 | |
local.set 4 | |
br 2 (;@5;) | |
end | |
local.get 8 | |
global.get 3 | |
i32.add | |
global.set 3 | |
end | |
local.get 5 | |
global.get 2 | |
i32.add | |
global.set 2 | |
end | |
i32.const 0 | |
local.get 5 | |
local.get 4 | |
i32.const -1 | |
i32.eq | |
local.tee 8 | |
select | |
local.tee 5 | |
global.get 4 | |
i32.add | |
global.set 4 | |
i32.const 0 | |
local.get 6 | |
i32.store offset=1048592 | |
local.get 6 | |
local.get 5 | |
local.get 6 | |
i32.sub | |
local.get 6 | |
local.get 4 | |
local.get 8 | |
select | |
i32.add | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
local.get 7 | |
br_if 0 (;@4;) | |
local.get 2 | |
i32.const 16 | |
i32.lt_u | |
if ;; label = @5 | |
local.get 6 | |
i32.const 1 | |
i32.store offset=4 | |
br 2 (;@3;) | |
end | |
local.get 3 | |
local.get 3 | |
i32.load offset=4 | |
i32.const 1 | |
i32.and | |
local.get 2 | |
i32.const -12 | |
i32.add | |
i32.const -8 | |
i32.and | |
local.tee 2 | |
i32.or | |
i32.store offset=4 | |
local.get 2 | |
local.get 3 | |
i32.add | |
i32.const 5 | |
i32.store offset=4 | |
local.get 2 | |
local.get 3 | |
i32.add | |
i32.const 5 | |
i32.store offset=8 | |
local.get 2 | |
i32.const 15 | |
i32.le_u | |
br_if 0 (;@4;) | |
i32.const 8 | |
local.get 3 | |
i32.add | |
call 3 | |
end | |
global.get 4 | |
local.tee 2 | |
global.get 9 | |
i32.gt_u | |
if ;; label = @4 | |
local.get 2 | |
global.set 9 | |
end | |
local.get 2 | |
global.get 10 | |
i32.le_u | |
br_if 0 (;@3;) | |
local.get 2 | |
global.set 10 | |
end | |
i32.const 0 | |
i32.load offset=1048592 | |
i32.load offset=4 | |
i32.const -4 | |
i32.and | |
local.tee 3 | |
local.get 1 | |
i32.sub | |
local.tee 5 | |
local.get 3 | |
local.get 1 | |
i32.lt_u | |
if ;; label = @3 | |
i32.const 0 | |
return | |
end | |
i32.const 16 | |
i32.ge_s | |
br_if 0 (;@2;) | |
i32.const 0 | |
return | |
end | |
i32.const 0 | |
i32.load offset=1048592 | |
local.tee 3 | |
local.get 1 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
i32.const 0 | |
local.get 1 | |
local.get 3 | |
i32.add | |
local.tee 1 | |
i32.store offset=1048592 | |
local.get 1 | |
local.get 5 | |
i32.const 1 | |
i32.or | |
i32.store offset=4 | |
end | |
i32.const 8 | |
local.get 3 | |
i32.add) | |
(func (;5;) (type 0) | |
call 0 | |
unreachable) | |
(func (;6;) (type 3) (param i32 i32) | |
(local i32 i32 i32 i32 i32 i32) | |
global.get 0 | |
local.tee 2 | |
i32.const -24 | |
local.get 2 | |
i32.add | |
local.tee 4 | |
global.set 0 | |
local.get 0 | |
i32.load offset=4 | |
local.get 0 | |
i32.load | |
local.tee 5 | |
i32.sub | |
i32.const 2 | |
i32.shr_s | |
local.tee 6 | |
i32.const 1 | |
i32.add | |
local.tee 7 | |
local.get 4 | |
local.set 4 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @1 | |
call 0 | |
unreachable | |
end | |
local.get 0 | |
i32.load offset=8 | |
local.get 5 | |
i32.sub | |
local.tee 5 | |
i32.const 2 | |
i32.shr_s | |
i32.const 536870911 | |
i32.lt_u | |
if (result i32) ;; label = @1 | |
local.get 5 | |
i32.const 1 | |
i32.shr_s | |
local.set 5 | |
local.get 7 | |
local.get 5 | |
local.get 5 | |
local.get 7 | |
i32.lt_u | |
select | |
else | |
i32.const 1073741823 | |
end | |
local.tee 7 | |
local.get 4 | |
i32.const 0 | |
i32.store offset=12 | |
local.get 4 | |
i32.const 8 | |
local.get 0 | |
i32.add | |
i32.store offset=16 | |
if ;; label = @1 | |
local.get 7 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @2 | |
call 5 | |
unreachable | |
end | |
local.get 7 | |
i32.const 2 | |
i32.shl | |
call 4 | |
local.set 5 | |
else | |
i32.const 0 | |
local.set 5 | |
end | |
local.get 4 | |
local.get 5 | |
i32.store | |
local.get 4 | |
local.get 6 | |
i32.const 2 | |
i32.shl | |
local.get 5 | |
i32.add | |
local.tee 6 | |
i32.store offset=8 | |
local.get 4 | |
local.get 6 | |
i32.store offset=4 | |
local.get 4 | |
local.get 7 | |
i32.const 2 | |
i32.shl | |
local.get 5 | |
i32.add | |
i32.store offset=12 | |
local.get 6 | |
local.get 1 | |
i32.load | |
i32.store | |
i32.const 0 | |
local.get 0 | |
i32.load offset=4 | |
local.get 0 | |
i32.load | |
local.tee 7 | |
i32.sub | |
local.tee 5 | |
i32.const 2 | |
i32.shr_s | |
i32.const 2 | |
i32.shl | |
i32.sub | |
local.get 6 | |
i32.add | |
local.set 3 | |
local.get 5 | |
i32.const 0 | |
i32.gt_s | |
if ;; label = @1 | |
local.get 3 | |
local.get 7 | |
local.get 5 | |
call 28 | |
drop | |
end | |
local.get 0 | |
i32.load | |
local.tee 7 | |
local.get 0 | |
local.get 3 | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
i32.store offset=4 | |
local.get 0 | |
i32.load offset=8 | |
local.set 5 | |
local.get 0 | |
local.get 4 | |
i32.load offset=12 | |
i32.store offset=8 | |
local.get 4 | |
local.get 5 | |
i32.store offset=12 | |
if ;; label = @1 | |
local.get 7 | |
call 3 | |
end | |
global.set 0) | |
(func (;7;) (type 2) (param i32) | |
(local i32) | |
local.get 0 | |
i32.load | |
local.tee 1 | |
if ;; label = @1 | |
local.get 0 | |
local.get 1 | |
i32.store offset=4 | |
local.get 1 | |
call 3 | |
end) | |
(func (;8;) (type 4) (param i32 i32 i32 i32 i32) (result i32) | |
(local i32 i32 i32 f64 f64 f64) | |
local.get 1 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.tee 8 | |
local.get 0 | |
i32.load | |
local.tee 6 | |
f64.load offset=8 | |
local.tee 9 | |
local.get 2 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.set 10 | |
f64.lt | |
if (result i32) ;; label = @1 | |
local.get 10 | |
local.get 8 | |
f64.lt | |
if (result i32) ;; label = @2 | |
local.get 0 | |
local.get 7 | |
i32.store | |
local.get 2 | |
local.get 6 | |
i32.store | |
i32.const 1 | |
else | |
local.get 0 | |
local.get 5 | |
i32.store | |
local.get 1 | |
local.get 6 | |
i32.store | |
local.get 2 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.get 9 | |
f64.lt | |
if (result i32) ;; label = @3 | |
local.get 1 | |
local.get 5 | |
i32.store | |
local.get 2 | |
local.get 6 | |
i32.store | |
i32.const 2 | |
else | |
i32.const 1 | |
end | |
end | |
else | |
local.get 10 | |
local.get 8 | |
f64.lt | |
if (result i32) ;; label = @2 | |
local.get 1 | |
local.get 7 | |
i32.store | |
local.get 2 | |
local.get 5 | |
i32.store | |
local.get 0 | |
i32.load | |
local.set 7 | |
local.get 1 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.get 7 | |
f64.load offset=8 | |
f64.lt | |
if (result i32) ;; label = @3 | |
local.get 0 | |
local.get 5 | |
i32.store | |
local.get 1 | |
local.get 7 | |
i32.store | |
i32.const 2 | |
else | |
i32.const 1 | |
end | |
else | |
i32.const 0 | |
end | |
end | |
local.set 5 | |
local.get 2 | |
i32.load | |
local.set 6 | |
local.get 3 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @1 | |
local.get 2 | |
local.get 7 | |
i32.store | |
local.get 3 | |
local.get 6 | |
i32.store | |
local.get 1 | |
i32.load | |
local.set 6 | |
local.get 2 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @2 | |
local.get 1 | |
local.get 7 | |
i32.store | |
local.get 2 | |
local.get 6 | |
i32.store | |
local.get 0 | |
i32.load | |
local.set 6 | |
local.get 1 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @3 | |
local.get 0 | |
local.get 7 | |
i32.store | |
local.get 1 | |
local.get 6 | |
i32.store | |
local.get 5 | |
i32.const 3 | |
i32.add | |
local.set 5 | |
else | |
local.get 5 | |
i32.const 2 | |
i32.add | |
local.set 5 | |
end | |
else | |
local.get 5 | |
i32.const 1 | |
i32.add | |
local.set 5 | |
end | |
end | |
local.get 3 | |
i32.load | |
local.set 6 | |
local.get 4 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @1 | |
local.get 3 | |
local.get 7 | |
i32.store | |
local.get 4 | |
local.get 6 | |
i32.store | |
local.get 2 | |
i32.load | |
local.set 6 | |
local.get 3 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @2 | |
local.get 2 | |
local.get 7 | |
i32.store | |
local.get 3 | |
local.get 6 | |
i32.store | |
local.get 1 | |
i32.load | |
local.set 6 | |
local.get 2 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @3 | |
local.get 1 | |
local.get 7 | |
i32.store | |
local.get 2 | |
local.get 6 | |
i32.store | |
local.get 0 | |
i32.load | |
local.set 6 | |
local.get 1 | |
i32.load | |
local.tee 7 | |
f64.load offset=8 | |
local.get 6 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @4 | |
local.get 0 | |
local.get 7 | |
i32.store | |
local.get 1 | |
local.get 6 | |
i32.store | |
local.get 5 | |
i32.const 4 | |
i32.add | |
return | |
end | |
local.get 5 | |
i32.const 3 | |
i32.add | |
return | |
end | |
local.get 5 | |
i32.const 2 | |
i32.add | |
return | |
end | |
local.get 5 | |
i32.const 1 | |
i32.add | |
return | |
end | |
local.get 5) | |
(func (;9;) (type 3) (param i32 i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 f64 f64 f64) | |
local.get 1 | |
local.tee 2 | |
local.get 0 | |
i32.sub | |
local.tee 3 | |
i32.const 2 | |
i32.shr_s | |
local.set 4 | |
block ;; label = @1 | |
local.get 4 | |
i32.const 4 | |
i32.lt_u | |
if ;; label = @2 | |
local.get 1 | |
local.get 0 | |
local.set 6 | |
local.set 5 | |
else | |
local.get 0 | |
local.get 1 | |
local.set 5 | |
local.set 6 | |
loop ;; label = @3 | |
local.get 3 | |
i32.const 16 | |
i32.eq | |
if ;; label = @4 | |
local.get 6 | |
i32.load offset=4 | |
local.tee 3 | |
f64.load offset=8 | |
local.tee 11 | |
local.get 6 | |
i32.load | |
local.tee 2 | |
f64.load offset=8 | |
local.tee 12 | |
local.get 6 | |
i32.load offset=8 | |
local.tee 4 | |
f64.load offset=8 | |
local.set 13 | |
f64.lt | |
if ;; label = @5 | |
local.get 13 | |
local.get 11 | |
f64.lt | |
if ;; label = @6 | |
local.get 6 | |
local.get 4 | |
i32.store | |
local.get 6 | |
local.get 2 | |
i32.store offset=8 | |
else | |
local.get 6 | |
local.get 3 | |
i32.store | |
local.get 6 | |
local.get 2 | |
i32.store offset=4 | |
local.get 13 | |
local.get 12 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@6;) | |
local.get 6 | |
local.get 4 | |
i32.store offset=4 | |
local.get 6 | |
local.get 2 | |
i32.store offset=8 | |
end | |
else | |
local.get 13 | |
local.get 11 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@5;) | |
local.get 6 | |
local.get 4 | |
i32.store offset=4 | |
local.get 6 | |
local.get 3 | |
i32.store offset=8 | |
local.get 13 | |
local.get 12 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@5;) | |
local.get 6 | |
local.get 4 | |
i32.store | |
local.get 6 | |
local.get 2 | |
i32.store offset=4 | |
end | |
local.get 6 | |
i32.load offset=8 | |
local.set 2 | |
i32.const -4 | |
local.get 5 | |
i32.add | |
local.tee 4 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.get 2 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 3 (;@1;) | |
local.get 6 | |
local.get 3 | |
i32.store offset=8 | |
local.get 4 | |
local.get 2 | |
i32.store | |
local.get 6 | |
i32.load offset=8 | |
local.tee 4 | |
f64.load offset=8 | |
local.tee 11 | |
local.get 6 | |
i32.load offset=4 | |
local.tee 3 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 3 (;@1;) | |
local.get 6 | |
local.get 4 | |
i32.store offset=4 | |
local.get 6 | |
local.get 3 | |
i32.store offset=8 | |
local.get 6 | |
i32.load | |
local.set 3 | |
local.get 11 | |
local.get 3 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 3 (;@1;) | |
local.get 6 | |
local.get 4 | |
i32.store | |
local.get 6 | |
local.get 3 | |
i32.store offset=4 | |
br 3 (;@1;) | |
end | |
local.get 3 | |
i32.const 20 | |
i32.eq | |
if ;; label = @4 | |
local.get 6 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
i32.const 8 | |
local.get 6 | |
i32.add | |
i32.const 12 | |
local.get 6 | |
i32.add | |
i32.const -4 | |
local.get 5 | |
i32.add | |
call 8 | |
drop | |
br 3 (;@1;) | |
end | |
local.get 3 | |
i32.const 124 | |
i32.ge_s | |
if ;; label = @4 | |
local.get 4 | |
i32.const 2 | |
i32.div_s | |
i32.const 2 | |
i32.shl | |
local.get 6 | |
i32.add | |
local.tee 8 | |
i32.const -4 | |
local.get 5 | |
i32.add | |
local.set 7 | |
local.get 3 | |
i32.const 3996 | |
i32.gt_s | |
if ;; label = @5 | |
local.get 6 | |
local.get 4 | |
i32.const 4 | |
i32.div_s | |
local.tee 3 | |
i32.const 2 | |
i32.shl | |
local.get 6 | |
i32.add | |
local.get 8 | |
local.get 3 | |
i32.const 2 | |
i32.shl | |
local.get 8 | |
i32.add | |
local.get 7 | |
call 8 | |
local.set 4 | |
else | |
local.get 8 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.tee 11 | |
local.get 6 | |
i32.load | |
local.tee 4 | |
f64.load offset=8 | |
local.tee 12 | |
local.get 7 | |
i32.load | |
local.tee 9 | |
f64.load offset=8 | |
local.set 13 | |
f64.lt | |
if ;; label = @6 | |
local.get 13 | |
local.get 11 | |
f64.lt | |
if ;; label = @7 | |
local.get 6 | |
local.get 9 | |
i32.store | |
local.get 7 | |
local.get 4 | |
i32.store | |
i32.const 1 | |
local.set 4 | |
else | |
local.get 6 | |
local.get 3 | |
i32.store | |
local.get 8 | |
local.get 4 | |
i32.store | |
local.get 7 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.get 12 | |
f64.lt | |
if ;; label = @8 | |
local.get 8 | |
local.get 3 | |
i32.store | |
local.get 7 | |
local.get 4 | |
i32.store | |
i32.const 2 | |
local.set 4 | |
else | |
i32.const 1 | |
local.set 4 | |
end | |
end | |
else | |
local.get 13 | |
local.get 11 | |
f64.lt | |
if ;; label = @7 | |
local.get 8 | |
local.get 9 | |
i32.store | |
local.get 7 | |
local.get 3 | |
i32.store | |
local.get 6 | |
i32.load | |
local.set 4 | |
local.get 8 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.get 4 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @8 | |
local.get 6 | |
local.get 3 | |
i32.store | |
local.get 8 | |
local.get 4 | |
i32.store | |
i32.const 2 | |
local.set 4 | |
else | |
i32.const 1 | |
local.set 4 | |
end | |
else | |
i32.const 0 | |
local.set 4 | |
end | |
end | |
end | |
local.get 6 | |
i32.load | |
local.tee 9 | |
f64.load offset=8 | |
local.set 11 | |
i32.load | |
f64.load offset=8 | |
local.set 12 | |
block ;; label = @5 | |
local.get 11 | |
local.get 12 | |
f64.lt | |
if ;; label = @6 | |
local.get 7 | |
local.set 3 | |
else | |
local.get 7 | |
local.set 3 | |
loop ;; label = @7 | |
i32.const -4 | |
local.get 3 | |
i32.add | |
local.set 3 | |
local.get 6 | |
local.get 3 | |
i32.eq | |
if ;; label = @8 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
local.set 8 | |
local.get 7 | |
i32.load | |
local.set 3 | |
local.get 11 | |
local.get 3 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
if ;; label = @9 | |
local.get 8 | |
local.get 7 | |
i32.eq | |
br_if 8 (;@1;) | |
loop ;; label = @10 | |
local.get 8 | |
i32.load | |
local.set 9 | |
i32.const 4 | |
local.get 8 | |
i32.add | |
local.set 4 | |
local.get 11 | |
local.get 9 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
if ;; label = @11 | |
local.get 4 | |
local.get 7 | |
i32.eq | |
br_if 10 (;@1;) | |
local.get 4 | |
local.set 8 | |
br 1 (;@10;) | |
end | |
end | |
local.get 8 | |
local.get 3 | |
i32.store | |
local.get 7 | |
local.get 9 | |
i32.store | |
local.get 4 | |
local.set 8 | |
end | |
local.get 8 | |
local.get 7 | |
i32.eq | |
br_if 7 (;@1;) | |
loop ;; label = @9 | |
local.get 6 | |
i32.load | |
f64.load offset=8 | |
local.tee 11 | |
local.get 8 | |
i32.load | |
local.tee 4 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
if ;; label = @10 | |
loop ;; label = @11 | |
i32.const 4 | |
local.get 8 | |
i32.add | |
local.tee 8 | |
i32.load | |
local.set 4 | |
local.get 11 | |
local.get 4 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@11;) | |
end | |
end | |
loop ;; label = @10 | |
i32.const -4 | |
local.get 7 | |
i32.add | |
local.tee 7 | |
i32.load | |
local.set 3 | |
local.get 11 | |
local.get 3 | |
f64.load offset=8 | |
f64.lt | |
br_if 0 (;@10;) | |
end | |
local.get 8 | |
local.get 7 | |
i32.lt_u | |
if ;; label = @10 | |
local.get 8 | |
local.get 3 | |
i32.store | |
local.get 7 | |
local.get 4 | |
i32.store | |
i32.const 4 | |
local.get 8 | |
i32.add | |
local.set 8 | |
br 1 (;@9;) | |
end | |
local.get 2 | |
local.get 8 | |
i32.sub | |
local.tee 3 | |
i32.const 2 | |
i32.shr_s | |
local.tee 4 | |
i32.const 4 | |
i32.lt_u | |
if ;; label = @10 | |
local.get 8 | |
local.set 6 | |
br 8 (;@2;) | |
end | |
local.get 8 | |
local.set 6 | |
br 6 (;@3;) | |
end | |
else | |
local.get 3 | |
i32.load | |
local.tee 10 | |
f64.load offset=8 | |
local.get 12 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@7;) | |
local.get 6 | |
local.get 10 | |
i32.store | |
local.get 3 | |
local.get 9 | |
i32.store | |
local.get 4 | |
i32.const 1 | |
i32.add | |
local.set 4 | |
end | |
end | |
end | |
i32.const 4 | |
local.get 6 | |
i32.add | |
local.tee 7 | |
local.get 3 | |
i32.lt_u | |
if ;; label = @6 | |
loop ;; label = @7 | |
local.get 8 | |
i32.load | |
f64.load offset=8 | |
local.set 11 | |
local.get 7 | |
i32.load | |
local.tee 9 | |
f64.load offset=8 | |
local.get 11 | |
f64.lt | |
if ;; label = @8 | |
loop ;; label = @9 | |
i32.const 4 | |
local.get 7 | |
i32.add | |
local.tee 7 | |
i32.load | |
local.tee 9 | |
f64.load offset=8 | |
local.get 11 | |
f64.lt | |
br_if 0 (;@9;) | |
end | |
end | |
loop ;; label = @8 | |
i32.const -4 | |
local.get 3 | |
i32.add | |
local.tee 3 | |
i32.load | |
local.tee 10 | |
f64.load offset=8 | |
local.get 11 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@8;) | |
end | |
local.get 7 | |
local.get 3 | |
i32.gt_u | |
br_if 1 (;@6;) | |
local.get 7 | |
local.get 10 | |
i32.store | |
local.get 3 | |
local.get 9 | |
i32.store | |
local.get 3 | |
local.get 8 | |
local.get 8 | |
local.get 7 | |
i32.eq | |
select | |
local.set 8 | |
local.get 4 | |
i32.const 1 | |
i32.add | |
local.set 4 | |
i32.const 4 | |
local.get 7 | |
i32.add | |
local.set 7 | |
br 0 (;@7;) | |
end | |
end | |
local.get 7 | |
local.get 8 | |
i32.ne | |
if ;; label = @6 | |
local.get 7 | |
i32.load | |
local.set 9 | |
local.get 8 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.get 9 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@6;) | |
local.get 7 | |
local.get 3 | |
i32.store | |
local.get 8 | |
local.get 9 | |
i32.store | |
local.get 4 | |
i32.const 1 | |
i32.add | |
local.set 4 | |
end | |
i32.const 4 | |
local.get 7 | |
i32.add | |
local.set 8 | |
block ;; label = @6 | |
block ;; label = @7 | |
local.get 4 | |
i32.eqz | |
if ;; label = @8 | |
local.get 6 | |
local.get 7 | |
call 14 | |
local.set 3 | |
local.get 8 | |
local.get 5 | |
call 14 | |
if ;; label = @9 | |
local.get 3 | |
br_if 8 (;@1;) | |
local.get 7 | |
local.tee 2 | |
local.get 6 | |
i32.sub | |
local.set 3 | |
br 2 (;@7;) | |
end | |
local.get 3 | |
br_if 2 (;@6;) | |
end | |
local.get 7 | |
local.tee 4 | |
local.get 6 | |
i32.sub | |
local.tee 3 | |
local.get 2 | |
local.get 4 | |
i32.sub | |
i32.lt_s | |
if ;; label = @8 | |
local.get 6 | |
local.get 7 | |
call 9 | |
br 2 (;@6;) | |
end | |
local.get 8 | |
local.get 5 | |
call 9 | |
local.get 7 | |
local.set 2 | |
end | |
local.get 3 | |
i32.const 2 | |
i32.shr_s | |
local.tee 4 | |
i32.const 4 | |
i32.lt_u | |
if ;; label = @7 | |
local.get 7 | |
local.set 5 | |
br 5 (;@2;) | |
end | |
local.get 7 | |
local.set 5 | |
br 3 (;@3;) | |
end | |
local.get 2 | |
local.get 8 | |
i32.sub | |
local.tee 3 | |
i32.const 2 | |
i32.shr_s | |
local.tee 4 | |
i32.const 4 | |
i32.lt_u | |
if ;; label = @6 | |
local.get 8 | |
local.set 6 | |
br 4 (;@2;) | |
end | |
local.get 8 | |
local.set 6 | |
end | |
br 1 (;@3;) | |
end | |
end | |
local.get 6 | |
i32.load offset=4 | |
local.tee 3 | |
f64.load offset=8 | |
local.tee 11 | |
local.get 6 | |
i32.load | |
local.tee 2 | |
f64.load offset=8 | |
local.tee 12 | |
local.get 6 | |
i32.load offset=8 | |
local.tee 4 | |
f64.load offset=8 | |
local.set 13 | |
f64.lt | |
if ;; label = @3 | |
local.get 13 | |
local.get 11 | |
f64.lt | |
if ;; label = @4 | |
local.get 6 | |
local.get 4 | |
i32.store | |
local.get 6 | |
local.get 2 | |
i32.store offset=8 | |
else | |
local.get 6 | |
local.get 3 | |
i32.store | |
local.get 6 | |
local.get 2 | |
i32.store offset=4 | |
local.get 13 | |
local.get 12 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@4;) | |
local.get 6 | |
local.get 4 | |
i32.store offset=4 | |
local.get 6 | |
local.get 2 | |
i32.store offset=8 | |
end | |
else | |
local.get 13 | |
local.get 11 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 6 | |
local.get 4 | |
i32.store offset=4 | |
local.get 6 | |
local.get 3 | |
i32.store offset=8 | |
local.get 13 | |
local.get 12 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 6 | |
local.get 4 | |
i32.store | |
local.get 6 | |
local.get 2 | |
i32.store offset=4 | |
end | |
i32.const 12 | |
local.get 6 | |
i32.add | |
local.tee 3 | |
local.get 5 | |
i32.eq | |
br_if 1 (;@1;) | |
i32.const 8 | |
local.get 6 | |
i32.add | |
local.set 2 | |
loop ;; label = @3 | |
local.get 3 | |
i32.load | |
local.tee 4 | |
f64.load offset=8 | |
local.tee 11 | |
local.get 2 | |
i32.load | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @4 | |
local.get 3 | |
local.set 7 | |
loop ;; label = @5 | |
local.get 7 | |
local.get 2 | |
i32.load | |
i32.store | |
local.get 2 | |
local.get 6 | |
i32.eq | |
if ;; label = @6 | |
local.get 6 | |
local.set 2 | |
else | |
i32.const -4 | |
local.get 2 | |
i32.add | |
local.set 7 | |
local.get 11 | |
local.get 7 | |
i32.load | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@6;) | |
local.get 7 | |
local.get 2 | |
local.set 7 | |
local.set 2 | |
br 1 (;@5;) | |
end | |
end | |
local.get 2 | |
local.get 4 | |
i32.store | |
end | |
i32.const 4 | |
local.get 3 | |
i32.add | |
local.tee 2 | |
local.get 5 | |
i32.eq | |
br_if 2 (;@1;) | |
local.get 3 | |
local.get 2 | |
local.set 3 | |
local.set 2 | |
br 0 (;@3;) | |
end | |
end | |
local.get 3 | |
i32.const 8 | |
i32.eq | |
if ;; label = @2 | |
local.get 6 | |
i32.load | |
local.set 2 | |
i32.const -4 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.get 2 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @3 | |
local.get 6 | |
local.get 3 | |
i32.store | |
local.get 5 | |
local.get 2 | |
i32.store | |
end | |
else | |
local.get 3 | |
i32.const 12 | |
i32.ne | |
br_if 0 (;@2;) | |
local.get 6 | |
i32.load offset=4 | |
local.tee 2 | |
f64.load offset=8 | |
local.tee 11 | |
local.get 6 | |
i32.load | |
local.tee 4 | |
f64.load offset=8 | |
local.tee 12 | |
i32.const -4 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.set 13 | |
f64.lt | |
if ;; label = @3 | |
local.get 13 | |
local.get 11 | |
f64.lt | |
if ;; label = @4 | |
local.get 6 | |
local.get 3 | |
i32.store | |
local.get 5 | |
local.get 4 | |
i32.store | |
else | |
local.get 6 | |
local.get 2 | |
i32.store | |
local.get 6 | |
local.get 4 | |
i32.store offset=4 | |
local.get 5 | |
i32.load | |
local.tee 2 | |
f64.load offset=8 | |
local.get 12 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@4;) | |
local.get 6 | |
local.get 2 | |
i32.store offset=4 | |
local.get 5 | |
local.get 4 | |
i32.store | |
end | |
else | |
local.get 13 | |
local.get 11 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 6 | |
local.get 3 | |
i32.store offset=4 | |
local.get 5 | |
local.get 2 | |
i32.store | |
local.get 6 | |
i32.load | |
local.set 3 | |
local.get 6 | |
i32.load offset=4 | |
local.tee 5 | |
f64.load offset=8 | |
local.get 3 | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 6 | |
local.get 5 | |
i32.store | |
local.get 6 | |
local.get 3 | |
i32.store offset=4 | |
end | |
end | |
end) | |
(func (;10;) (type 3) (param i32 i32) | |
(local i32 i32 i32 i32 i32 i32) | |
global.get 0 | |
local.tee 2 | |
i32.const -24 | |
local.get 2 | |
i32.add | |
local.tee 4 | |
global.set 0 | |
local.get 0 | |
i32.load offset=4 | |
local.get 0 | |
i32.load | |
local.tee 5 | |
i32.sub | |
i32.const 2 | |
i32.shr_s | |
local.tee 6 | |
i32.const 1 | |
i32.add | |
local.tee 7 | |
local.get 4 | |
local.set 4 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @1 | |
call 0 | |
unreachable | |
end | |
local.get 0 | |
i32.load offset=8 | |
local.get 5 | |
i32.sub | |
local.tee 5 | |
i32.const 2 | |
i32.shr_s | |
i32.const 536870911 | |
i32.lt_u | |
if (result i32) ;; label = @1 | |
local.get 5 | |
i32.const 1 | |
i32.shr_s | |
local.set 5 | |
local.get 7 | |
local.get 5 | |
local.get 5 | |
local.get 7 | |
i32.lt_u | |
select | |
else | |
i32.const 1073741823 | |
end | |
local.tee 7 | |
local.get 4 | |
i32.const 0 | |
i32.store offset=12 | |
local.get 4 | |
i32.const 8 | |
local.get 0 | |
i32.add | |
i32.store offset=16 | |
if ;; label = @1 | |
local.get 7 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @2 | |
call 5 | |
unreachable | |
end | |
local.get 7 | |
i32.const 2 | |
i32.shl | |
call 4 | |
local.set 5 | |
else | |
i32.const 0 | |
local.set 5 | |
end | |
local.get 4 | |
local.get 5 | |
i32.store | |
local.get 4 | |
local.get 6 | |
i32.const 2 | |
i32.shl | |
local.get 5 | |
i32.add | |
local.tee 6 | |
i32.store offset=8 | |
local.get 4 | |
local.get 6 | |
i32.store offset=4 | |
local.get 4 | |
local.get 7 | |
i32.const 2 | |
i32.shl | |
local.get 5 | |
i32.add | |
i32.store offset=12 | |
local.get 6 | |
local.get 1 | |
i32.load | |
i32.store | |
i32.const 0 | |
local.get 0 | |
i32.load offset=4 | |
local.get 0 | |
i32.load | |
local.tee 7 | |
i32.sub | |
local.tee 5 | |
i32.const 2 | |
i32.shr_s | |
i32.const 2 | |
i32.shl | |
i32.sub | |
local.get 6 | |
i32.add | |
local.set 3 | |
local.get 5 | |
i32.const 0 | |
i32.gt_s | |
if ;; label = @1 | |
local.get 3 | |
local.get 7 | |
local.get 5 | |
call 28 | |
drop | |
end | |
local.get 0 | |
i32.load | |
local.tee 7 | |
local.get 0 | |
local.get 3 | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
i32.store offset=4 | |
local.get 0 | |
i32.load offset=8 | |
local.set 5 | |
local.get 0 | |
local.get 4 | |
i32.load offset=12 | |
i32.store offset=8 | |
local.get 4 | |
local.get 5 | |
i32.store offset=12 | |
if ;; label = @1 | |
local.get 7 | |
call 3 | |
end | |
global.set 0) | |
(func (;11;) (type 5) (param i32 i32 i32 i32) (result i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64) | |
i32.const 8 | |
local.get 0 | |
i32.add | |
local.tee 8 | |
f64.load | |
local.tee 20 | |
i32.const 8 | |
local.get 3 | |
i32.add | |
local.tee 11 | |
f64.load | |
i32.const 16 | |
local.get 1 | |
i32.add | |
local.tee 4 | |
f64.load | |
local.tee 16 | |
i32.const 16 | |
local.get 0 | |
i32.add | |
local.tee 5 | |
f64.load | |
local.tee 17 | |
f64.sub | |
local.tee 24 | |
i32.const 8 | |
local.get 2 | |
i32.add | |
local.tee 6 | |
f64.load | |
local.tee 18 | |
i32.const 8 | |
local.get 1 | |
i32.add | |
local.tee 7 | |
f64.load | |
local.tee 19 | |
f64.sub | |
f64.mul | |
local.get 19 | |
local.get 20 | |
f64.sub | |
local.tee 25 | |
i32.const 16 | |
local.get 2 | |
i32.add | |
local.tee 9 | |
f64.load | |
local.tee 21 | |
local.get 16 | |
f64.sub | |
f64.mul | |
f64.sub | |
local.tee 26 | |
global.get 1 | |
f64.lt | |
i32.const 31 | |
i32.shl | |
i32.const 31 | |
i32.shr_s | |
local.get 26 | |
global.get 1 | |
f64.gt | |
i32.add | |
local.set 10 | |
local.tee 26 | |
f64.sub | |
i32.const 16 | |
local.get 3 | |
i32.add | |
local.tee 12 | |
f64.load | |
local.tee 22 | |
local.get 21 | |
f64.sub | |
local.get 24 | |
local.get 26 | |
local.get 19 | |
f64.sub | |
f64.mul | |
local.get 25 | |
local.get 22 | |
local.get 16 | |
f64.sub | |
f64.mul | |
f64.sub | |
local.tee 24 | |
global.get 1 | |
f64.lt | |
i32.const 31 | |
i32.shl | |
i32.const 31 | |
i32.shr_s | |
local.get 24 | |
global.get 1 | |
f64.gt | |
i32.add | |
local.set 13 | |
local.tee 24 | |
f64.mul | |
local.get 26 | |
local.get 18 | |
f64.sub | |
local.tee 25 | |
local.get 17 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
local.tee 23 | |
global.get 1 | |
f64.lt | |
i32.const 31 | |
i32.shl | |
i32.const 31 | |
i32.shr_s | |
local.get 23 | |
global.get 1 | |
f64.gt | |
i32.add | |
local.tee 14 | |
local.get 19 | |
local.get 26 | |
f64.sub | |
local.get 24 | |
f64.mul | |
local.get 25 | |
local.get 16 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
local.tee 24 | |
global.get 1 | |
f64.lt | |
i32.const 31 | |
i32.shl | |
i32.const 31 | |
i32.shr_s | |
local.get 24 | |
global.get 1 | |
f64.gt | |
i32.add | |
local.tee 15 | |
i32.ne | |
i32.const 0 | |
local.get 10 | |
local.get 13 | |
i32.ne | |
select | |
if ;; label = @1 | |
i32.const 1 | |
return | |
end | |
local.get 10 | |
i32.eqz | |
if ;; label = @1 | |
local.get 18 | |
local.get 19 | |
local.get 20 | |
local.get 20 | |
local.get 19 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 18 | |
local.get 7 | |
local.get 8 | |
local.get 19 | |
local.get 20 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 21 | |
local.get 16 | |
local.get 17 | |
local.get 17 | |
local.get 16 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 21 | |
local.get 4 | |
local.get 5 | |
local.get 16 | |
local.get 17 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
i32.const 1 | |
return | |
end | |
local.get 13 | |
i32.eqz | |
if ;; label = @1 | |
local.get 26 | |
local.get 19 | |
local.get 20 | |
local.get 20 | |
local.get 19 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 26 | |
local.get 7 | |
local.get 8 | |
local.get 19 | |
local.get 20 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 22 | |
local.get 16 | |
local.get 17 | |
local.get 17 | |
local.get 16 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 22 | |
local.get 4 | |
local.get 5 | |
local.get 16 | |
local.get 17 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
i32.const 1 | |
return | |
end | |
local.get 14 | |
i32.eqz | |
if ;; label = @1 | |
local.get 20 | |
local.get 26 | |
local.get 18 | |
local.get 18 | |
local.get 26 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 20 | |
local.get 11 | |
local.get 6 | |
local.get 26 | |
local.get 18 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 17 | |
local.get 22 | |
local.get 21 | |
local.get 21 | |
local.get 22 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 17 | |
local.get 12 | |
local.get 9 | |
local.get 22 | |
local.get 21 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
i32.const 1 | |
return | |
end | |
local.get 15 | |
i32.eqz | |
if ;; label = @1 | |
local.get 19 | |
local.get 26 | |
local.get 18 | |
local.get 18 | |
local.get 26 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 19 | |
local.get 11 | |
local.get 6 | |
local.get 26 | |
local.get 18 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 16 | |
local.get 22 | |
local.get 21 | |
local.get 21 | |
local.get 22 | |
f64.lt | |
select | |
f64.le | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 16 | |
local.get 12 | |
local.get 9 | |
local.get 22 | |
local.get 21 | |
f64.lt | |
select | |
f64.load | |
f64.ge | |
i32.eqz | |
br_if 0 (;@1;) | |
i32.const 1 | |
return | |
end | |
i32.const 0) | |
(func (;12;) (type 5) (param i32 i32 i32 i32) (result i32) | |
(local i32 i32 i32 f64 f64) | |
local.get 2 | |
f64.load | |
local.set 7 | |
local.get 2 | |
f64.load offset=8 | |
local.set 8 | |
i32.const 64 | |
local.get 0 | |
i32.add | |
local.tee 4 | |
i32.load offset=8 | |
local.set 5 | |
local.get 4 | |
i32.load offset=4 | |
local.get 5 | |
i32.ge_u | |
if ;; label = @1 | |
local.get 5 | |
i32.const 89478485 | |
i32.gt_u | |
if ;; label = @2 | |
call 5 | |
unreachable | |
end | |
local.get 5 | |
i32.const 48 | |
i32.mul | |
call 4 | |
local.set 5 | |
local.get 4 | |
local.get 5 | |
i32.store | |
local.get 4 | |
i32.load offset=16 | |
local.tee 6 | |
local.get 4 | |
i32.load offset=20 | |
i32.lt_u | |
if ;; label = @2 | |
local.get 6 | |
local.get 5 | |
i32.store | |
local.get 4 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
i32.store offset=16 | |
else | |
i32.const 12 | |
local.get 4 | |
i32.add | |
local.get 4 | |
call 10 | |
end | |
local.get 4 | |
i32.const 0 | |
i32.store offset=4 | |
end | |
local.get 4 | |
i32.load | |
local.set 5 | |
local.get 4 | |
i32.load offset=4 | |
local.tee 6 | |
local.get 4 | |
local.get 6 | |
i32.const 1 | |
i32.add | |
i32.store offset=4 | |
i32.const 48 | |
i32.mul | |
local.get 5 | |
i32.add | |
local.tee 4 | |
local.get 1 | |
i32.store | |
local.get 4 | |
local.get 7 | |
f64.store offset=8 | |
local.get 4 | |
local.get 8 | |
f64.store offset=16 | |
local.get 4 | |
i64.const 0 | |
i64.store offset=24 align=4 | |
local.get 4 | |
i64.const 0 | |
i64.store offset=32 align=4 | |
local.get 4 | |
i32.const 0 | |
i32.store offset=40 | |
local.get 4 | |
i32.const 0 | |
i32.store8 offset=44 | |
local.get 3 | |
if ;; label = @1 | |
local.get 4 | |
local.get 3 | |
i32.load offset=28 | |
i32.store offset=28 | |
local.get 4 | |
local.get 3 | |
i32.store offset=24 | |
local.get 3 | |
i32.load offset=28 | |
local.get 4 | |
i32.store offset=24 | |
local.get 3 | |
local.get 4 | |
i32.store offset=28 | |
else | |
local.get 4 | |
local.get 4 | |
i32.store offset=24 | |
local.get 4 | |
local.get 4 | |
i32.store offset=28 | |
end | |
local.get 4) | |
(func (;13;) (type 6) (param i32 i32 i32) (result i32) | |
(local i32 i32 i32 i32 i32 i32 f64) | |
local.get 1 | |
i32.load offset=4 | |
local.get 1 | |
i32.load | |
local.tee 6 | |
i32.sub | |
local.tee 3 | |
if ;; label = @1 | |
i32.const 0 | |
i32.load offset=1049616 | |
local.set 7 | |
local.get 3 | |
i32.const -1 | |
i32.add | |
local.set 8 | |
i32.const 0 | |
global.get 1 | |
local.set 9 | |
local.set 4 | |
loop ;; label = @2 | |
local.get 4 | |
i32.const 1 | |
i32.add | |
local.get 9 | |
local.get 8 | |
local.get 6 | |
i32.add | |
i32.const 4 | |
i32.shl | |
local.get 7 | |
i32.add | |
local.tee 8 | |
f64.load | |
local.get 4 | |
local.get 6 | |
i32.add | |
i32.const 4 | |
i32.shl | |
local.get 7 | |
i32.add | |
local.tee 5 | |
f64.load | |
f64.sub | |
local.get 5 | |
f64.load offset=8 | |
local.get 8 | |
f64.load offset=8 | |
f64.add | |
f64.mul | |
f64.add | |
local.set 9 | |
local.tee 8 | |
local.get 3 | |
i32.ne | |
if ;; label = @3 | |
local.get 8 | |
local.get 4 | |
local.set 8 | |
local.set 4 | |
br 1 (;@2;) | |
end | |
end | |
local.get 9 | |
global.get 1 | |
f64.gt | |
i32.eqz | |
local.get 2 | |
i32.xor | |
if ;; label = @2 | |
i32.const 0 | |
i32.const 0 | |
local.set 7 | |
local.set 6 | |
loop ;; label = @3 | |
local.get 7 | |
i32.const 1 | |
i32.add | |
local.get 0 | |
local.get 0 | |
i32.load offset=12 | |
local.get 7 | |
i32.add | |
local.get 1 | |
i32.load | |
local.get 7 | |
i32.add | |
i32.const 4 | |
i32.shl | |
i32.const 0 | |
i32.load offset=1049616 | |
i32.add | |
local.get 6 | |
call 12 | |
local.set 6 | |
local.tee 7 | |
local.get 3 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
else | |
local.get 3 | |
local.set 7 | |
i32.const 0 | |
local.set 6 | |
loop ;; label = @3 | |
local.get 7 | |
i32.const -1 | |
i32.add | |
local.tee 7 | |
local.get 0 | |
local.get 7 | |
local.get 0 | |
i32.load offset=12 | |
i32.add | |
local.get 7 | |
local.get 1 | |
i32.load | |
i32.add | |
i32.const 4 | |
i32.shl | |
i32.const 0 | |
i32.load offset=1049616 | |
i32.add | |
local.get 6 | |
call 12 | |
local.set 6 | |
br_if 0 (;@3;) | |
end | |
end | |
local.get 6 | |
if ;; label = @2 | |
local.get 6 | |
i32.load offset=28 | |
local.set 7 | |
local.get 6 | |
f64.load offset=8 | |
local.get 7 | |
f64.load offset=8 | |
f64.eq | |
if ;; label = @3 | |
local.get 6 | |
f64.load offset=16 | |
local.get 7 | |
f64.load offset=16 | |
f64.eq | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 7 | |
local.get 6 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 6 | |
i32.load offset=24 | |
local.get 7 | |
i32.store offset=28 | |
local.get 6 | |
i32.load offset=36 | |
local.tee 7 | |
if ;; label = @4 | |
local.get 7 | |
local.get 6 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 6 | |
i32.load offset=40 | |
local.tee 8 | |
if ;; label = @4 | |
local.get 8 | |
local.get 7 | |
i32.store offset=36 | |
end | |
local.get 6 | |
i32.load offset=28 | |
local.set 6 | |
end | |
else | |
i32.const 0 | |
local.set 6 | |
end | |
else | |
i32.const 0 | |
local.set 6 | |
end | |
local.get 0 | |
local.get 0 | |
i32.load offset=12 | |
local.get 3 | |
i32.add | |
i32.store offset=12 | |
local.get 6) | |
(func (;14;) (type 7) (param i32 i32) (result i32) | |
(local i32 i32 i32 i32 i32 f64 f64 f64) | |
local.get 1 | |
local.get 0 | |
i32.sub | |
local.tee 2 | |
i32.const 2 | |
i32.shr_s | |
i32.const 4 | |
i32.lt_u | |
if ;; label = @1 | |
local.get 2 | |
i32.const 8 | |
i32.eq | |
if ;; label = @2 | |
local.get 0 | |
i32.load | |
local.set 4 | |
i32.const -4 | |
local.get 1 | |
i32.add | |
local.tee 2 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.get 4 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @3 | |
local.get 0 | |
local.get 3 | |
i32.store | |
local.get 2 | |
local.get 4 | |
i32.store | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
local.get 2 | |
i32.const 12 | |
i32.eq | |
if ;; label = @2 | |
local.get 0 | |
i32.load offset=4 | |
local.tee 2 | |
f64.load offset=8 | |
local.tee 7 | |
local.get 0 | |
i32.load | |
local.tee 4 | |
f64.load offset=8 | |
local.tee 8 | |
i32.const -4 | |
local.get 1 | |
i32.add | |
local.tee 5 | |
i32.load | |
local.tee 3 | |
f64.load offset=8 | |
local.set 9 | |
f64.lt | |
if ;; label = @3 | |
local.get 9 | |
local.get 7 | |
f64.lt | |
if ;; label = @4 | |
local.get 0 | |
local.get 3 | |
i32.store | |
local.get 5 | |
local.get 4 | |
i32.store | |
i32.const 1 | |
return | |
end | |
local.get 0 | |
local.get 2 | |
i32.store | |
local.get 0 | |
local.get 4 | |
i32.store offset=4 | |
local.get 5 | |
i32.load | |
local.tee 2 | |
f64.load offset=8 | |
local.get 8 | |
f64.lt | |
if ;; label = @4 | |
local.get 0 | |
local.get 2 | |
i32.store offset=4 | |
local.get 5 | |
local.get 4 | |
i32.store | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
local.get 9 | |
local.get 7 | |
f64.lt | |
if ;; label = @3 | |
local.get 0 | |
local.get 3 | |
i32.store offset=4 | |
local.get 5 | |
local.get 2 | |
i32.store | |
local.get 0 | |
i32.load | |
local.set 3 | |
local.get 0 | |
i32.load offset=4 | |
local.tee 2 | |
f64.load offset=8 | |
local.get 3 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @4 | |
local.get 0 | |
local.get 2 | |
i32.store | |
local.get 0 | |
local.get 3 | |
i32.store offset=4 | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
i32.const 8 | |
local.get 0 | |
i32.add | |
local.tee 3 | |
local.get 2 | |
i32.const 16 | |
i32.eq | |
if ;; label = @1 | |
local.get 0 | |
i32.load offset=4 | |
local.tee 2 | |
f64.load offset=8 | |
local.tee 7 | |
local.get 0 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.tee 8 | |
local.get 3 | |
i32.load | |
local.tee 4 | |
f64.load offset=8 | |
local.set 9 | |
f64.lt | |
if ;; label = @2 | |
local.get 9 | |
local.get 7 | |
f64.lt | |
if ;; label = @3 | |
local.get 0 | |
local.get 4 | |
i32.store | |
local.get 3 | |
local.get 5 | |
i32.store | |
else | |
local.get 0 | |
local.get 2 | |
i32.store | |
local.get 0 | |
local.get 5 | |
i32.store offset=4 | |
local.get 9 | |
local.get 8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 0 | |
local.get 4 | |
i32.store offset=4 | |
local.get 3 | |
local.get 5 | |
i32.store | |
end | |
else | |
local.get 9 | |
local.get 7 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@2;) | |
local.get 0 | |
local.get 4 | |
i32.store offset=4 | |
local.get 3 | |
local.get 2 | |
i32.store | |
local.get 9 | |
local.get 8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@2;) | |
local.get 0 | |
local.get 4 | |
i32.store | |
local.get 0 | |
local.get 5 | |
i32.store offset=4 | |
end | |
local.get 3 | |
i32.load | |
local.set 4 | |
i32.const -4 | |
local.get 1 | |
i32.add | |
local.tee 2 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.get 4 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @2 | |
local.get 3 | |
local.get 5 | |
i32.store | |
local.get 2 | |
local.get 4 | |
i32.store | |
local.get 3 | |
i32.load | |
local.tee 2 | |
f64.load offset=8 | |
local.tee 7 | |
local.get 0 | |
i32.load offset=4 | |
local.tee 4 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @3 | |
local.get 0 | |
local.get 2 | |
i32.store offset=4 | |
local.get 3 | |
local.get 4 | |
i32.store | |
local.get 0 | |
i32.load | |
local.set 4 | |
local.get 7 | |
local.get 4 | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @4 | |
local.get 0 | |
local.get 2 | |
i32.store | |
local.get 0 | |
local.get 4 | |
i32.store offset=4 | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
i32.const 1 | |
return | |
end | |
i32.const 12 | |
local.get 0 | |
i32.add | |
local.set 4 | |
local.get 2 | |
i32.const 20 | |
i32.eq | |
if ;; label = @1 | |
local.get 0 | |
i32.const 4 | |
local.get 0 | |
i32.add | |
local.get 3 | |
local.get 4 | |
i32.const -4 | |
local.get 1 | |
i32.add | |
call 8 | |
drop | |
i32.const 1 | |
return | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 2 | |
f64.load offset=8 | |
local.set 7 | |
local.get 0 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.set 8 | |
i32.load | |
local.tee 6 | |
f64.load offset=8 | |
local.set 9 | |
local.get 7 | |
local.get 8 | |
f64.lt | |
if ;; label = @1 | |
local.get 9 | |
local.get 7 | |
f64.lt | |
if ;; label = @2 | |
local.get 0 | |
local.get 6 | |
i32.store | |
local.get 3 | |
local.get 5 | |
i32.store | |
else | |
local.get 0 | |
local.get 2 | |
i32.store | |
local.get 0 | |
local.get 5 | |
i32.store offset=4 | |
local.get 9 | |
local.get 8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@2;) | |
local.get 0 | |
local.get 6 | |
i32.store offset=4 | |
local.get 3 | |
local.get 5 | |
i32.store | |
end | |
else | |
local.get 9 | |
local.get 7 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 0 | |
local.get 6 | |
i32.store offset=4 | |
local.get 3 | |
local.get 2 | |
i32.store | |
local.get 9 | |
local.get 8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 0 | |
local.get 6 | |
i32.store | |
local.get 0 | |
local.get 5 | |
i32.store offset=4 | |
end | |
local.get 4 | |
local.get 1 | |
i32.eq | |
if ;; label = @1 | |
i32.const 1 | |
return | |
end | |
i32.const 0 | |
local.set 2 | |
loop ;; label = @1 | |
local.get 4 | |
i32.load | |
local.tee 5 | |
f64.load offset=8 | |
local.tee 7 | |
local.get 3 | |
i32.load | |
f64.load offset=8 | |
f64.lt | |
if ;; label = @2 | |
local.get 4 | |
local.set 6 | |
loop ;; label = @3 | |
local.get 6 | |
local.get 3 | |
i32.load | |
i32.store | |
local.get 3 | |
local.get 0 | |
i32.eq | |
if ;; label = @4 | |
local.get 0 | |
local.set 3 | |
else | |
i32.const -4 | |
local.get 3 | |
i32.add | |
local.set 6 | |
local.get 7 | |
local.get 6 | |
i32.load | |
f64.load offset=8 | |
f64.lt | |
i32.eqz | |
br_if 0 (;@4;) | |
local.get 6 | |
local.get 3 | |
local.set 6 | |
local.set 3 | |
br 1 (;@3;) | |
end | |
end | |
local.get 3 | |
local.get 5 | |
i32.store | |
local.get 2 | |
i32.const 1 | |
i32.add | |
local.tee 2 | |
i32.const 8 | |
i32.ne | |
br_if 0 (;@2;) | |
i32.const 4 | |
local.get 4 | |
i32.add | |
local.get 1 | |
i32.eq | |
return | |
end | |
i32.const 4 | |
local.get 4 | |
i32.add | |
local.tee 3 | |
local.get 1 | |
i32.eq | |
if ;; label = @2 | |
i32.const 1 | |
return | |
end | |
local.get 4 | |
local.get 3 | |
local.set 4 | |
local.set 3 | |
br 0 (;@1;) | |
end | |
i32.const 0) | |
(func (;15;) (type 6) (param i32 i32 i32) (result i32) | |
(local i32 i32 i32 i32 f64 f64) | |
i32.const 64 | |
local.get 0 | |
i32.add | |
local.tee 3 | |
i32.load offset=8 | |
local.set 4 | |
local.get 3 | |
i32.load offset=4 | |
local.get 4 | |
i32.ge_u | |
if ;; label = @1 | |
local.get 4 | |
i32.const 89478485 | |
i32.gt_u | |
if ;; label = @2 | |
call 5 | |
unreachable | |
end | |
local.get 4 | |
i32.const 48 | |
i32.mul | |
call 4 | |
local.set 4 | |
local.get 3 | |
local.get 4 | |
i32.store | |
local.get 3 | |
i32.load offset=16 | |
local.tee 5 | |
local.get 3 | |
i32.load offset=20 | |
i32.lt_u | |
if ;; label = @2 | |
local.get 5 | |
local.get 4 | |
i32.store | |
local.get 3 | |
i32.const 4 | |
local.get 5 | |
i32.add | |
i32.store offset=16 | |
else | |
i32.const 12 | |
local.get 3 | |
i32.add | |
local.get 3 | |
call 10 | |
end | |
local.get 3 | |
i32.const 0 | |
i32.store offset=4 | |
end | |
local.get 3 | |
i32.load | |
local.set 4 | |
local.get 3 | |
i32.load offset=4 | |
local.tee 5 | |
local.get 3 | |
local.get 5 | |
i32.const 1 | |
i32.add | |
i32.store offset=4 | |
local.get 1 | |
f64.load offset=8 | |
local.set 7 | |
local.get 1 | |
f64.load offset=16 | |
local.set 8 | |
i32.const 48 | |
i32.mul | |
local.get 4 | |
i32.add | |
local.tee 4 | |
local.get 1 | |
i32.load | |
i32.store | |
local.get 4 | |
local.get 7 | |
f64.store offset=8 | |
local.get 4 | |
local.get 8 | |
f64.store offset=16 | |
local.get 4 | |
i64.const 0 | |
i64.store offset=24 align=4 | |
local.get 4 | |
i64.const 0 | |
i64.store offset=32 align=4 | |
local.get 4 | |
i32.const 0 | |
i32.store offset=40 | |
local.get 4 | |
i32.const 0 | |
i32.store8 offset=44 | |
local.get 3 | |
i32.load offset=8 | |
local.set 6 | |
local.get 3 | |
i32.load offset=4 | |
local.get 6 | |
i32.ge_u | |
if ;; label = @1 | |
local.get 6 | |
i32.const 89478485 | |
i32.gt_u | |
if ;; label = @2 | |
call 5 | |
unreachable | |
end | |
local.get 6 | |
i32.const 48 | |
i32.mul | |
call 4 | |
local.set 6 | |
local.get 3 | |
local.get 6 | |
i32.store | |
local.get 3 | |
i32.load offset=16 | |
local.tee 5 | |
local.get 3 | |
i32.load offset=20 | |
i32.lt_u | |
if ;; label = @2 | |
local.get 5 | |
local.get 6 | |
i32.store | |
local.get 3 | |
i32.const 4 | |
local.get 5 | |
i32.add | |
i32.store offset=16 | |
else | |
i32.const 12 | |
local.get 3 | |
i32.add | |
local.get 3 | |
call 10 | |
end | |
local.get 3 | |
i32.const 0 | |
i32.store offset=4 | |
end | |
local.get 3 | |
i32.load | |
local.set 6 | |
local.get 3 | |
i32.load offset=4 | |
local.tee 5 | |
local.get 3 | |
local.get 5 | |
i32.const 1 | |
i32.add | |
i32.store offset=4 | |
local.get 2 | |
f64.load offset=8 | |
local.set 7 | |
local.get 2 | |
f64.load offset=16 | |
local.set 8 | |
i32.const 48 | |
i32.mul | |
local.get 6 | |
i32.add | |
local.tee 6 | |
local.get 2 | |
i32.load | |
i32.store | |
local.get 6 | |
local.get 7 | |
f64.store offset=8 | |
local.get 6 | |
local.get 8 | |
f64.store offset=16 | |
local.get 6 | |
i64.const 0 | |
i64.store offset=24 align=4 | |
local.get 6 | |
i64.const 0 | |
i64.store offset=32 align=4 | |
local.get 6 | |
i32.const 0 | |
i32.store offset=40 | |
local.get 6 | |
i32.const 0 | |
i32.store8 offset=44 | |
local.get 1 | |
i32.load offset=28 | |
local.tee 5 | |
local.get 2 | |
i32.load offset=24 | |
local.set 3 | |
local.get 1 | |
local.get 2 | |
i32.store offset=28 | |
local.get 2 | |
local.get 1 | |
i32.store offset=24 | |
local.get 4 | |
local.get 5 | |
i32.store offset=28 | |
local.get 4 | |
i32.store offset=24 | |
local.get 6 | |
local.get 4 | |
i32.store offset=28 | |
local.get 4 | |
local.get 6 | |
i32.store offset=24 | |
local.get 3 | |
local.get 6 | |
i32.store offset=28 | |
local.get 6 | |
local.get 3 | |
i32.store offset=24 | |
local.get 6) | |
(func (;16;) (type 3) (param i32 i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64) | |
local.get 1 | |
if ;; label = @1 | |
i32.const 0 | |
local.get 1 | |
local.set 4 | |
local.set 3 | |
loop ;; label = @2 | |
local.get 3 | |
i32.eqz | |
if ;; label = @3 | |
local.get 0 | |
i32.load8_u offset=16 | |
i32.eqz | |
br_if 0 (;@3;) | |
local.get 4 | |
local.tee 5 | |
loop ;; label = @4 | |
local.get 5 | |
i32.load offset=32 | |
local.tee 6 | |
i32.eqz | |
if ;; label = @5 | |
local.get 0 | |
f64.load offset=56 | |
local.tee 17 | |
local.get 5 | |
f64.load offset=8 | |
local.get 0 | |
f64.load offset=24 | |
f64.sub | |
global.get 6 | |
f64.mul | |
f64.mul | |
i32.trunc_f64_s | |
local.tee 6 | |
local.get 17 | |
local.get 5 | |
f64.load offset=16 | |
local.get 0 | |
f64.load offset=40 | |
f64.sub | |
global.get 6 | |
f64.mul | |
f64.mul | |
i32.trunc_f64_s | |
local.set 11 | |
i32.const 8 | |
i32.shl | |
local.get 6 | |
i32.or | |
i32.const 16711935 | |
i32.and | |
local.tee 6 | |
i32.const 4 | |
i32.shl | |
local.get 6 | |
i32.or | |
i32.const 252645135 | |
i32.and | |
local.tee 6 | |
i32.const 2 | |
i32.shl | |
local.get 6 | |
i32.or | |
i32.const 858993459 | |
i32.and | |
local.set 6 | |
local.get 11 | |
i32.const 8 | |
i32.shl | |
local.get 11 | |
i32.or | |
i32.const 16711935 | |
i32.and | |
local.tee 11 | |
i32.const 4 | |
i32.shl | |
local.get 11 | |
i32.or | |
i32.const 252645135 | |
i32.and | |
local.tee 11 | |
i32.const 2 | |
i32.shl | |
local.get 11 | |
i32.or | |
i32.const 858993459 | |
i32.and | |
local.tee 11 | |
i32.const 2 | |
i32.shl | |
local.get 11 | |
i32.const 1 | |
i32.shl | |
i32.or | |
i32.const -1431655766 | |
i32.and | |
local.get 6 | |
i32.const 1 | |
i32.shl | |
local.get 6 | |
i32.or | |
i32.const 1431655765 | |
i32.and | |
i32.or | |
local.set 6 | |
end | |
local.get 5 | |
local.get 6 | |
i32.store offset=32 | |
local.get 5 | |
local.get 5 | |
i32.load offset=24 | |
i32.store offset=36 | |
local.get 5 | |
i32.load offset=28 | |
local.tee 6 | |
local.get 5 | |
local.get 6 | |
i32.store offset=40 | |
local.get 4 | |
i32.ne | |
if ;; label = @5 | |
local.get 6 | |
local.set 5 | |
br 1 (;@4;) | |
end | |
end | |
i32.load offset=36 | |
i32.const 0 | |
i32.store offset=40 | |
local.get 4 | |
i32.const 0 | |
i32.store offset=36 | |
local.get 4 | |
local.set 5 | |
i32.const 1 | |
local.set 7 | |
loop ;; label = @4 | |
local.get 5 | |
local.set 6 | |
i32.const 0 | |
i32.const 0 | |
local.set 9 | |
local.tee 5 | |
local.set 8 | |
loop ;; label = @5 | |
local.get 6 | |
local.tee 10 | |
i32.const 0 | |
local.set 11 | |
loop ;; label = @6 | |
local.get 10 | |
i32.load offset=40 | |
local.tee 10 | |
local.get 11 | |
i32.const 1 | |
i32.add | |
local.set 11 | |
if ;; label = @7 | |
local.get 11 | |
local.get 7 | |
i32.ne | |
br_if 1 (;@6;) | |
local.get 7 | |
local.set 11 | |
end | |
end | |
local.set 12 | |
local.get 10 | |
local.set 6 | |
local.get 7 | |
local.set 10 | |
loop ;; label = @6 | |
block ;; label = @7 | |
local.get 11 | |
i32.const 0 | |
i32.le_s | |
if ;; label = @8 | |
local.get 6 | |
i32.const 0 | |
i32.ne | |
i32.const 0 | |
local.get 10 | |
i32.const 0 | |
i32.gt_s | |
select | |
i32.eqz | |
if ;; label = @9 | |
local.get 6 | |
if ;; label = @10 | |
local.get 9 | |
i32.const 1 | |
i32.add | |
local.set 9 | |
br 5 (;@5;) | |
end | |
local.get 8 | |
i32.const 0 | |
i32.store offset=40 | |
local.get 9 | |
i32.eqz | |
br_if 6 (;@3;) | |
local.get 7 | |
i32.const 1 | |
i32.shl | |
local.set 7 | |
br 5 (;@4;) | |
end | |
local.get 11 | |
br_if 0 (;@8;) | |
local.get 6 | |
i32.load offset=40 | |
local.set 13 | |
local.get 10 | |
i32.const -1 | |
i32.add | |
local.set 10 | |
i32.const 0 | |
local.set 11 | |
br 1 (;@7;) | |
end | |
local.get 6 | |
i32.const 0 | |
i32.ne | |
i32.const 0 | |
local.get 10 | |
select | |
if ;; label = @8 | |
local.get 12 | |
i32.load offset=32 | |
local.get 6 | |
i32.load offset=32 | |
i32.gt_s | |
if ;; label = @9 | |
local.get 6 | |
i32.load offset=40 | |
local.set 13 | |
local.get 10 | |
i32.const -1 | |
i32.add | |
local.set 10 | |
else | |
local.get 6 | |
local.set 13 | |
local.get 12 | |
local.tee 6 | |
i32.load offset=40 | |
local.set 12 | |
local.get 11 | |
i32.const -1 | |
i32.add | |
local.set 11 | |
end | |
else | |
local.get 6 | |
local.set 13 | |
local.get 12 | |
local.tee 6 | |
i32.load offset=40 | |
local.set 12 | |
local.get 11 | |
i32.const -1 | |
i32.add | |
local.set 11 | |
end | |
end | |
local.get 8 | |
if ;; label = @7 | |
local.get 8 | |
local.get 6 | |
i32.store offset=40 | |
else | |
local.get 6 | |
local.set 5 | |
end | |
local.get 6 | |
local.get 8 | |
i32.store offset=36 | |
local.get 6 | |
local.set 8 | |
local.get 13 | |
local.set 6 | |
br 0 (;@6;) | |
end | |
end | |
end | |
end | |
loop ;; label = @3 | |
local.get 4 | |
local.set 5 | |
loop ;; label = @4 | |
local.get 5 | |
i32.load offset=24 | |
local.tee 6 | |
local.get 5 | |
i32.load offset=28 | |
local.tee 11 | |
i32.eq | |
br_if 3 (;@1;) | |
i32.const 16 | |
local.get 5 | |
i32.add | |
local.tee 9 | |
f64.load | |
local.set 17 | |
i32.const 16 | |
local.get 6 | |
i32.add | |
local.tee 13 | |
f64.load | |
local.set 18 | |
i32.const 8 | |
local.get 11 | |
i32.add | |
local.tee 8 | |
f64.load | |
local.set 19 | |
i32.const 8 | |
local.get 5 | |
i32.add | |
local.tee 2 | |
f64.load | |
local.set 20 | |
i32.const 8 | |
local.get 6 | |
i32.add | |
local.tee 12 | |
f64.load | |
local.set 21 | |
i32.const 16 | |
local.get 11 | |
i32.add | |
local.tee 14 | |
f64.load | |
local.set 22 | |
block ;; label = @5 | |
local.get 0 | |
i32.load8_u offset=16 | |
if ;; label = @6 | |
local.get 17 | |
local.get 18 | |
f64.sub | |
local.get 19 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 20 | |
local.get 21 | |
f64.sub | |
local.get 22 | |
local.get 17 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
br_if 1 (;@5;) | |
local.get 0 | |
f64.load offset=56 | |
local.tee 24 | |
local.get 14 | |
local.get 9 | |
local.get 22 | |
local.get 17 | |
f64.lt | |
select | |
local.tee 7 | |
local.get 13 | |
local.get 7 | |
f64.load | |
local.get 18 | |
f64.lt | |
select | |
f64.load | |
local.get 0 | |
f64.load offset=40 | |
local.tee 25 | |
f64.sub | |
global.get 6 | |
f64.mul | |
f64.mul | |
i32.trunc_f64_s | |
local.get 8 | |
local.get 2 | |
local.get 19 | |
local.get 20 | |
f64.lt | |
select | |
local.tee 10 | |
local.get 12 | |
local.get 10 | |
f64.load | |
local.get 21 | |
f64.lt | |
select | |
f64.load | |
local.get 0 | |
f64.load offset=24 | |
local.tee 23 | |
f64.sub | |
global.get 6 | |
f64.mul | |
local.get 24 | |
f64.mul | |
i32.trunc_f64_s | |
local.get 14 | |
local.get 9 | |
local.get 17 | |
local.get 22 | |
f64.lt | |
select | |
local.set 9 | |
local.set 14 | |
local.tee 10 | |
i32.const 8 | |
i32.shl | |
local.get 10 | |
i32.or | |
i32.const 16711935 | |
i32.and | |
local.tee 10 | |
i32.const 4 | |
i32.shl | |
local.get 10 | |
i32.or | |
i32.const 252645135 | |
i32.and | |
local.tee 10 | |
i32.const 2 | |
i32.shl | |
local.get 10 | |
i32.or | |
i32.const 858993459 | |
i32.and | |
local.tee 10 | |
i32.const 2 | |
i32.shl | |
local.get 10 | |
i32.const 1 | |
i32.shl | |
i32.or | |
i32.const -1431655766 | |
i32.and | |
local.get 14 | |
i32.const 8 | |
i32.shl | |
local.get 14 | |
i32.or | |
i32.const 16711935 | |
i32.and | |
local.tee 7 | |
i32.const 4 | |
i32.shl | |
local.get 7 | |
i32.or | |
i32.const 252645135 | |
i32.and | |
local.tee 7 | |
i32.const 2 | |
i32.shl | |
local.get 7 | |
i32.or | |
i32.const 858993459 | |
i32.and | |
local.tee 7 | |
i32.const 1 | |
i32.shl | |
local.get 7 | |
i32.or | |
i32.const 1431655765 | |
i32.and | |
i32.or | |
local.set 10 | |
local.get 24 | |
local.get 9 | |
local.get 13 | |
local.get 18 | |
local.get 9 | |
f64.load | |
f64.lt | |
select | |
f64.load | |
local.get 25 | |
f64.sub | |
global.get 6 | |
f64.mul | |
f64.mul | |
i32.trunc_f64_s | |
local.tee 13 | |
i32.const 8 | |
i32.shl | |
local.get 13 | |
i32.or | |
i32.const 16711935 | |
i32.and | |
local.tee 13 | |
i32.const 4 | |
i32.shl | |
local.get 13 | |
i32.or | |
i32.const 252645135 | |
i32.and | |
local.tee 13 | |
i32.const 2 | |
i32.shl | |
local.get 13 | |
i32.or | |
i32.const 858993459 | |
i32.and | |
local.tee 13 | |
i32.const 2 | |
i32.shl | |
local.get 13 | |
i32.const 1 | |
i32.shl | |
i32.or | |
i32.const -1431655766 | |
i32.and | |
local.get 8 | |
local.get 2 | |
local.get 20 | |
local.get 19 | |
f64.lt | |
select | |
local.tee 8 | |
local.get 12 | |
local.get 21 | |
local.get 8 | |
f64.load | |
f64.lt | |
select | |
f64.load | |
local.get 23 | |
f64.sub | |
global.get 6 | |
f64.mul | |
local.get 24 | |
f64.mul | |
i32.trunc_f64_s | |
local.tee 12 | |
i32.const 8 | |
i32.shl | |
local.get 12 | |
i32.or | |
i32.const 16711935 | |
i32.and | |
local.tee 12 | |
i32.const 4 | |
i32.shl | |
local.get 12 | |
i32.or | |
i32.const 252645135 | |
i32.and | |
local.tee 12 | |
i32.const 2 | |
i32.shl | |
local.get 12 | |
i32.or | |
i32.const 858993459 | |
i32.and | |
local.tee 12 | |
i32.const 1 | |
i32.shl | |
local.get 12 | |
i32.or | |
i32.const 1431655765 | |
i32.and | |
i32.or | |
local.set 12 | |
local.get 5 | |
i32.load offset=40 | |
local.tee 13 | |
if ;; label = @7 | |
loop ;; label = @8 | |
local.get 13 | |
i32.load offset=32 | |
local.get 12 | |
i32.gt_s | |
br_if 1 (;@7;) | |
i32.const 1 | |
local.get 13 | |
local.get 11 | |
i32.eq | |
local.get 13 | |
local.get 6 | |
i32.eq | |
select | |
i32.eqz | |
if ;; label = @9 | |
local.get 21 | |
local.get 13 | |
f64.load offset=8 | |
local.tee 23 | |
f64.sub | |
local.set 27 | |
local.get 22 | |
local.get 13 | |
f64.load offset=16 | |
local.tee 24 | |
f64.sub | |
local.set 28 | |
local.get 19 | |
local.get 23 | |
f64.sub | |
local.set 25 | |
local.get 18 | |
local.get 24 | |
f64.sub | |
local.tee 26 | |
local.get 25 | |
f64.mul | |
local.get 27 | |
local.get 28 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 20 | |
local.get 23 | |
f64.sub | |
local.set 30 | |
local.get 17 | |
local.get 24 | |
f64.sub | |
local.tee 29 | |
local.get 27 | |
f64.mul | |
local.get 30 | |
local.get 26 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 30 | |
local.get 28 | |
f64.mul | |
local.get 25 | |
local.get 29 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 13 | |
i32.load offset=28 | |
local.tee 9 | |
local.get 13 | |
i32.load offset=24 | |
local.set 8 | |
f64.load offset=8 | |
local.get 23 | |
f64.sub | |
local.get 24 | |
local.get 8 | |
f64.load offset=16 | |
f64.sub | |
f64.mul | |
local.get 23 | |
local.get 8 | |
f64.load offset=8 | |
f64.sub | |
local.get 9 | |
f64.load offset=16 | |
local.get 24 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
br_if 4 (;@5;) | |
end | |
local.get 13 | |
i32.load offset=40 | |
local.tee 13 | |
br_if 0 (;@8;) | |
end | |
end | |
local.get 5 | |
i32.load offset=36 | |
local.tee 13 | |
if ;; label = @7 | |
loop ;; label = @8 | |
local.get 13 | |
i32.load offset=32 | |
local.get 10 | |
i32.lt_s | |
br_if 1 (;@7;) | |
i32.const 1 | |
local.get 13 | |
local.get 11 | |
i32.eq | |
local.get 13 | |
local.get 6 | |
i32.eq | |
select | |
i32.eqz | |
if ;; label = @9 | |
local.get 21 | |
local.get 13 | |
f64.load offset=8 | |
local.tee 23 | |
f64.sub | |
local.set 27 | |
local.get 22 | |
local.get 13 | |
f64.load offset=16 | |
local.tee 24 | |
f64.sub | |
local.set 28 | |
local.get 19 | |
local.get 23 | |
f64.sub | |
local.set 25 | |
local.get 18 | |
local.get 24 | |
f64.sub | |
local.tee 26 | |
local.get 25 | |
f64.mul | |
local.get 27 | |
local.get 28 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 20 | |
local.get 23 | |
f64.sub | |
local.set 30 | |
local.get 17 | |
local.get 24 | |
f64.sub | |
local.tee 29 | |
local.get 27 | |
f64.mul | |
local.get 30 | |
local.get 26 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 30 | |
local.get 28 | |
f64.mul | |
local.get 25 | |
local.get 29 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 13 | |
i32.load offset=28 | |
local.tee 8 | |
local.get 13 | |
i32.load offset=24 | |
local.set 12 | |
f64.load offset=8 | |
local.get 23 | |
f64.sub | |
local.get 24 | |
local.get 12 | |
f64.load offset=16 | |
f64.sub | |
f64.mul | |
local.get 23 | |
local.get 12 | |
f64.load offset=8 | |
f64.sub | |
local.get 8 | |
f64.load offset=16 | |
local.get 24 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
br_if 4 (;@5;) | |
end | |
local.get 13 | |
i32.load offset=36 | |
local.tee 13 | |
br_if 0 (;@8;) | |
end | |
end | |
else | |
local.get 17 | |
local.get 18 | |
f64.sub | |
local.get 19 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 20 | |
local.get 21 | |
f64.sub | |
local.get 22 | |
local.get 17 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
br_if 1 (;@5;) | |
local.get 11 | |
i32.load offset=28 | |
local.tee 10 | |
local.get 6 | |
i32.eq | |
br_if 0 (;@6;) | |
loop ;; label = @7 | |
local.get 21 | |
local.get 10 | |
f64.load offset=8 | |
local.tee 23 | |
f64.sub | |
local.set 27 | |
local.get 22 | |
local.get 10 | |
f64.load offset=16 | |
local.tee 24 | |
f64.sub | |
local.set 28 | |
local.get 19 | |
local.get 23 | |
f64.sub | |
local.set 25 | |
local.get 18 | |
local.get 24 | |
f64.sub | |
local.tee 26 | |
local.get 25 | |
f64.mul | |
local.get 27 | |
local.get 28 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
if ;; label = @8 | |
local.get 20 | |
local.get 23 | |
f64.sub | |
local.set 30 | |
local.get 17 | |
local.get 24 | |
f64.sub | |
local.tee 29 | |
local.get 27 | |
f64.mul | |
local.get 30 | |
local.get 26 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@8;) | |
local.get 30 | |
local.get 28 | |
f64.mul | |
local.get 25 | |
local.get 29 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@8;) | |
local.get 10 | |
i32.load offset=28 | |
local.tee 12 | |
local.get 10 | |
i32.load offset=24 | |
local.set 13 | |
f64.load offset=8 | |
local.get 23 | |
f64.sub | |
local.get 24 | |
local.get 13 | |
f64.load offset=16 | |
f64.sub | |
f64.mul | |
local.get 23 | |
local.get 13 | |
f64.load offset=8 | |
f64.sub | |
local.get 12 | |
f64.load offset=16 | |
local.get 24 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
br_if 3 (;@5;) | |
end | |
local.get 10 | |
i32.load offset=28 | |
local.tee 10 | |
local.get 6 | |
i32.ne | |
br_if 0 (;@7;) | |
end | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 4 | |
local.get 0 | |
i32.load offset=8 | |
i32.lt_u | |
if ;; label = @6 | |
local.get 4 | |
local.get 6 | |
i32.load | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 4 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 0 | |
local.get 6 | |
call 6 | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 6 | |
local.get 0 | |
i32.load offset=8 | |
i32.lt_u | |
if ;; label = @6 | |
local.get 6 | |
local.get 5 | |
i32.load | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 0 | |
local.get 5 | |
call 6 | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 6 | |
local.get 0 | |
i32.load offset=8 | |
i32.lt_u | |
if ;; label = @6 | |
local.get 6 | |
local.get 11 | |
i32.load | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 6 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 0 | |
local.get 11 | |
call 6 | |
end | |
local.get 5 | |
i32.load offset=28 | |
local.tee 6 | |
local.get 5 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 5 | |
i32.load offset=24 | |
local.get 6 | |
i32.store offset=28 | |
local.get 5 | |
i32.load offset=36 | |
local.tee 6 | |
if ;; label = @6 | |
local.get 6 | |
local.get 5 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 5 | |
i32.load offset=40 | |
local.tee 5 | |
if ;; label = @6 | |
local.get 5 | |
local.get 6 | |
i32.store offset=36 | |
end | |
local.get 11 | |
i32.load offset=28 | |
local.set 4 | |
br 2 (;@3;) | |
end | |
local.get 11 | |
local.get 4 | |
i32.eq | |
if ;; label = @5 | |
local.get 3 | |
i32.const 2 | |
i32.lt_u | |
if ;; label = @6 | |
local.get 3 | |
i32.eqz | |
if ;; label = @7 | |
local.get 4 | |
local.set 3 | |
loop ;; label = @8 | |
block ;; label = @9 | |
local.get 4 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @10 | |
local.get 4 | |
f64.load offset=8 | |
local.set 17 | |
local.get 4 | |
i32.load offset=28 | |
local.tee 11 | |
f64.load offset=8 | |
local.set 18 | |
block ;; label = @11 | |
local.get 17 | |
local.get 18 | |
f64.eq | |
if ;; label = @12 | |
local.get 4 | |
f64.load offset=16 | |
local.get 11 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@11;) | |
end | |
local.get 4 | |
f64.load offset=16 | |
local.tee 19 | |
local.get 4 | |
i32.load offset=24 | |
local.tee 5 | |
f64.load offset=16 | |
f64.sub | |
local.get 18 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 5 | |
f64.load offset=8 | |
f64.sub | |
local.get 11 | |
f64.load offset=16 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@10;) | |
end | |
local.get 11 | |
local.get 4 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 4 | |
i32.load offset=24 | |
local.tee 3 | |
local.get 11 | |
i32.store offset=28 | |
local.get 4 | |
i32.load offset=36 | |
local.tee 5 | |
if ;; label = @11 | |
local.get 5 | |
local.get 4 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 4 | |
i32.load offset=40 | |
local.tee 6 | |
if ;; label = @11 | |
local.get 6 | |
local.get 5 | |
i32.store offset=36 | |
end | |
local.get 3 | |
local.get 11 | |
i32.eq | |
if ;; label = @11 | |
i32.const 1 | |
local.set 3 | |
br 4 (;@7;) | |
end | |
local.get 3 | |
local.set 4 | |
i32.const 1 | |
local.set 5 | |
br 1 (;@9;) | |
end | |
local.get 4 | |
i32.load offset=28 | |
local.set 4 | |
i32.const 0 | |
local.set 5 | |
end | |
i32.const 1 | |
local.get 4 | |
local.get 3 | |
i32.ne | |
local.get 5 | |
select | |
br_if 0 (;@8;) | |
end | |
local.get 3 | |
local.set 11 | |
i32.const 1 | |
local.set 3 | |
else | |
local.get 4 | |
local.set 3 | |
block ;; label = @8 | |
loop ;; label = @9 | |
block ;; label = @10 | |
local.get 3 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @11 | |
local.get 3 | |
f64.load offset=8 | |
local.set 17 | |
local.get 3 | |
i32.load offset=28 | |
local.tee 11 | |
f64.load offset=8 | |
local.set 18 | |
block ;; label = @12 | |
local.get 17 | |
local.get 18 | |
f64.eq | |
if ;; label = @13 | |
local.get 3 | |
f64.load offset=16 | |
local.get 11 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@12;) | |
end | |
local.get 3 | |
f64.load offset=16 | |
local.tee 19 | |
local.get 3 | |
i32.load offset=24 | |
local.tee 5 | |
f64.load offset=16 | |
f64.sub | |
local.get 18 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 5 | |
f64.load offset=8 | |
f64.sub | |
local.get 11 | |
f64.load offset=16 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@11;) | |
end | |
local.get 11 | |
local.get 3 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 3 | |
i32.load offset=24 | |
local.tee 4 | |
local.get 11 | |
i32.store offset=28 | |
local.get 3 | |
i32.load offset=36 | |
local.tee 5 | |
if ;; label = @12 | |
local.get 5 | |
local.get 3 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 3 | |
i32.load offset=40 | |
local.tee 6 | |
if ;; label = @12 | |
local.get 6 | |
local.get 5 | |
i32.store offset=36 | |
end | |
local.get 4 | |
local.get 11 | |
i32.eq | |
if ;; label = @12 | |
local.get 11 | |
local.set 4 | |
br 4 (;@8;) | |
end | |
local.get 4 | |
local.set 3 | |
i32.const 1 | |
local.set 5 | |
br 1 (;@10;) | |
end | |
local.get 3 | |
i32.load offset=28 | |
local.set 3 | |
i32.const 0 | |
local.set 5 | |
end | |
i32.const 1 | |
local.get 3 | |
local.get 4 | |
i32.ne | |
local.get 5 | |
select | |
br_if 0 (;@9;) | |
end | |
end | |
local.get 4 | |
local.set 3 | |
loop ;; label = @8 | |
local.get 4 | |
i32.load offset=24 | |
local.tee 5 | |
f64.load offset=8 | |
local.set 17 | |
local.get 4 | |
i32.load offset=28 | |
local.tee 6 | |
i32.load offset=28 | |
local.tee 11 | |
f64.load offset=8 | |
local.set 18 | |
block ;; label = @9 | |
local.get 17 | |
local.get 18 | |
f64.eq | |
if ;; label = @10 | |
local.get 5 | |
f64.load offset=16 | |
local.get 11 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@9;) | |
end | |
local.get 5 | |
local.get 4 | |
local.get 6 | |
local.get 11 | |
call 11 | |
i32.eqz | |
br_if 0 (;@9;) | |
local.get 11 | |
f64.load offset=16 | |
local.tee 27 | |
local.get 5 | |
f64.load offset=16 | |
local.tee 19 | |
f64.sub | |
local.set 26 | |
local.get 5 | |
i32.load offset=28 | |
local.tee 10 | |
f64.load offset=16 | |
local.tee 24 | |
local.get 19 | |
f64.sub | |
local.set 25 | |
local.get 5 | |
i32.load offset=24 | |
local.tee 6 | |
f64.load offset=8 | |
local.set 23 | |
local.get 10 | |
f64.load offset=8 | |
local.tee 21 | |
local.get 17 | |
f64.sub | |
local.tee 22 | |
local.get 6 | |
f64.load offset=16 | |
local.set 20 | |
local.get 19 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 23 | |
f64.sub | |
local.get 25 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
if ;; label = @10 | |
local.get 21 | |
local.get 18 | |
f64.sub | |
local.get 26 | |
f64.mul | |
local.get 18 | |
local.get 17 | |
f64.sub | |
local.get 24 | |
local.get 27 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@9;) | |
local.get 20 | |
local.get 19 | |
f64.sub | |
local.get 18 | |
local.get 23 | |
f64.sub | |
f64.mul | |
local.get 23 | |
local.get 17 | |
f64.sub | |
local.get 27 | |
local.get 20 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@9;) | |
else | |
local.get 23 | |
local.get 18 | |
f64.sub | |
local.get 26 | |
f64.mul | |
local.get 18 | |
local.get 17 | |
f64.sub | |
local.get 20 | |
local.get 27 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
br_if 0 (;@10;) | |
local.get 18 | |
local.get 21 | |
f64.sub | |
local.get 25 | |
f64.mul | |
local.get 22 | |
local.get 27 | |
local.get 24 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@9;) | |
end | |
local.get 19 | |
local.get 27 | |
f64.sub | |
local.set 26 | |
local.get 11 | |
i32.load offset=28 | |
local.tee 10 | |
f64.load offset=16 | |
local.tee 24 | |
local.get 27 | |
f64.sub | |
local.set 25 | |
local.get 11 | |
i32.load offset=24 | |
local.tee 6 | |
f64.load offset=8 | |
local.set 23 | |
local.get 10 | |
f64.load offset=8 | |
local.tee 21 | |
local.get 18 | |
f64.sub | |
local.tee 22 | |
local.get 6 | |
f64.load offset=16 | |
local.set 20 | |
local.get 27 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 18 | |
local.get 23 | |
f64.sub | |
local.get 25 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
if ;; label = @10 | |
local.get 26 | |
local.get 21 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 18 | |
f64.sub | |
local.get 24 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@9;) | |
local.get 20 | |
local.get 27 | |
f64.sub | |
local.get 17 | |
local.get 23 | |
f64.sub | |
f64.mul | |
local.get 19 | |
local.get 20 | |
f64.sub | |
local.get 23 | |
local.get 18 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@9;) | |
else | |
local.get 26 | |
local.get 23 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 18 | |
f64.sub | |
local.get 20 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
br_if 0 (;@10;) | |
local.get 17 | |
local.get 21 | |
f64.sub | |
local.get 25 | |
f64.mul | |
local.get 22 | |
local.get 19 | |
local.get 24 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@9;) | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 3 | |
local.get 0 | |
i32.load offset=8 | |
i32.lt_u | |
if ;; label = @10 | |
local.get 3 | |
local.get 5 | |
i32.load | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 3 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 0 | |
local.get 5 | |
call 6 | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 3 | |
local.get 0 | |
i32.load offset=8 | |
i32.lt_u | |
if ;; label = @10 | |
local.get 3 | |
local.get 4 | |
i32.load | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 3 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 0 | |
local.get 4 | |
call 6 | |
end | |
local.get 0 | |
i32.load offset=4 | |
local.tee 3 | |
local.get 0 | |
i32.load offset=8 | |
i32.lt_u | |
if ;; label = @10 | |
local.get 3 | |
local.get 11 | |
i32.load | |
i32.store | |
local.get 0 | |
i32.const 4 | |
local.get 3 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 0 | |
local.get 11 | |
call 6 | |
end | |
local.get 4 | |
i32.load offset=28 | |
local.tee 3 | |
local.get 4 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 4 | |
i32.load offset=24 | |
local.get 3 | |
i32.store offset=28 | |
local.get 4 | |
i32.load offset=36 | |
local.tee 3 | |
if ;; label = @10 | |
local.get 3 | |
local.get 4 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 4 | |
i32.load offset=40 | |
local.tee 5 | |
if ;; label = @10 | |
local.get 5 | |
local.get 3 | |
i32.store offset=36 | |
end | |
local.get 4 | |
i32.load offset=28 | |
local.tee 3 | |
i32.load offset=28 | |
local.tee 4 | |
local.get 3 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 3 | |
i32.load offset=24 | |
local.get 4 | |
i32.store offset=28 | |
local.get 3 | |
i32.load offset=36 | |
local.tee 4 | |
if ;; label = @10 | |
local.get 4 | |
local.get 3 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 3 | |
i32.load offset=40 | |
local.tee 3 | |
if ;; label = @10 | |
local.get 3 | |
local.get 4 | |
i32.store offset=36 | |
local.get 11 | |
local.tee 3 | |
local.set 4 | |
else | |
local.get 11 | |
local.tee 3 | |
local.set 4 | |
end | |
end | |
local.get 4 | |
i32.load offset=28 | |
local.tee 4 | |
local.get 3 | |
i32.ne | |
br_if 0 (;@8;) | |
end | |
local.get 3 | |
local.set 6 | |
loop ;; label = @8 | |
block ;; label = @9 | |
local.get 6 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @10 | |
local.get 6 | |
f64.load offset=8 | |
local.set 17 | |
local.get 6 | |
i32.load offset=28 | |
local.tee 11 | |
f64.load offset=8 | |
local.set 18 | |
block ;; label = @11 | |
local.get 17 | |
local.get 18 | |
f64.eq | |
if ;; label = @12 | |
local.get 6 | |
f64.load offset=16 | |
local.get 11 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@11;) | |
end | |
local.get 6 | |
f64.load offset=16 | |
local.tee 19 | |
local.get 6 | |
i32.load offset=24 | |
local.tee 5 | |
f64.load offset=16 | |
f64.sub | |
local.get 18 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 5 | |
f64.load offset=8 | |
f64.sub | |
local.get 11 | |
f64.load offset=16 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@10;) | |
end | |
local.get 11 | |
local.get 6 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 6 | |
i32.load offset=24 | |
local.tee 4 | |
local.get 11 | |
i32.store offset=28 | |
local.get 6 | |
i32.load offset=36 | |
local.tee 5 | |
if ;; label = @11 | |
local.get 5 | |
local.get 6 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 6 | |
i32.load offset=40 | |
local.tee 6 | |
if ;; label = @11 | |
local.get 6 | |
local.get 5 | |
i32.store offset=36 | |
end | |
local.get 4 | |
local.get 11 | |
i32.eq | |
if ;; label = @11 | |
i32.const 2 | |
local.set 3 | |
br 4 (;@7;) | |
end | |
local.get 4 | |
local.set 3 | |
i32.const 1 | |
local.set 5 | |
br 1 (;@9;) | |
end | |
local.get 6 | |
i32.load offset=28 | |
local.set 4 | |
i32.const 0 | |
local.set 5 | |
end | |
i32.const 1 | |
local.get 4 | |
local.get 3 | |
i32.ne | |
local.get 5 | |
select | |
if ;; label = @9 | |
local.get 4 | |
local.set 6 | |
br 1 (;@8;) | |
end | |
end | |
local.get 3 | |
local.set 11 | |
i32.const 2 | |
local.set 3 | |
end | |
local.get 11 | |
i32.eqz | |
br_if 5 (;@1;) | |
local.get 11 | |
local.set 4 | |
else | |
local.get 4 | |
local.set 5 | |
loop ;; label = @7 | |
local.get 5 | |
i32.load offset=28 | |
local.tee 11 | |
i32.load offset=28 | |
local.tee 6 | |
local.get 5 | |
i32.load offset=24 | |
local.tee 10 | |
i32.ne | |
if ;; label = @8 | |
local.get 5 | |
i32.load | |
local.set 13 | |
loop ;; label = @9 | |
local.get 6 | |
i32.load | |
local.set 12 | |
local.get 13 | |
local.get 12 | |
i32.ne | |
if ;; label = @10 | |
local.get 11 | |
i32.load | |
local.get 12 | |
i32.eq | |
br_if 0 (;@10;) | |
local.get 10 | |
i32.load | |
local.get 12 | |
i32.eq | |
br_if 0 (;@10;) | |
local.get 5 | |
local.set 3 | |
loop ;; label = @11 | |
local.get 3 | |
i32.load | |
local.tee 8 | |
local.get 13 | |
i32.ne | |
if ;; label = @12 | |
local.get 3 | |
i32.load offset=28 | |
local.tee 9 | |
i32.load | |
local.tee 7 | |
local.get 13 | |
i32.eq | |
br_if 0 (;@12;) | |
i32.const 1 | |
local.get 7 | |
local.get 12 | |
i32.eq | |
local.get 8 | |
local.get 12 | |
i32.eq | |
select | |
br_if 0 (;@12;) | |
local.get 3 | |
local.get 9 | |
local.get 5 | |
local.get 6 | |
call 11 | |
br_if 2 (;@10;) | |
end | |
local.get 3 | |
i32.load offset=28 | |
local.tee 3 | |
local.get 5 | |
i32.ne | |
br_if 0 (;@11;) | |
end | |
local.get 6 | |
f64.load offset=16 | |
local.tee 15 | |
local.get 5 | |
f64.load offset=16 | |
local.tee 17 | |
f64.sub | |
local.set 24 | |
local.get 6 | |
f64.load offset=8 | |
local.set 16 | |
local.get 17 | |
local.get 10 | |
f64.load offset=16 | |
local.tee 18 | |
f64.sub | |
local.tee 27 | |
local.get 11 | |
f64.load offset=8 | |
local.tee 19 | |
local.get 5 | |
f64.load offset=8 | |
local.tee 28 | |
f64.sub | |
local.tee 20 | |
f64.mul | |
local.get 28 | |
local.get 10 | |
f64.load offset=8 | |
local.tee 21 | |
f64.sub | |
local.tee 29 | |
local.get 11 | |
f64.load offset=16 | |
local.tee 22 | |
local.get 17 | |
f64.sub | |
local.tee 23 | |
f64.mul | |
f64.sub | |
local.set 30 | |
block ;; label = @11 | |
block ;; label = @12 | |
local.get 30 | |
global.get 1 | |
f64.lt | |
if ;; label = @13 | |
local.get 24 | |
local.get 19 | |
local.get 16 | |
f64.sub | |
f64.mul | |
local.get 22 | |
local.get 15 | |
f64.sub | |
local.get 16 | |
local.get 28 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@12;) | |
local.get 18 | |
local.get 17 | |
f64.sub | |
local.get 16 | |
local.get 21 | |
f64.sub | |
f64.mul | |
local.get 21 | |
local.get 28 | |
f64.sub | |
local.get 15 | |
local.get 18 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@12;) | |
else | |
local.get 24 | |
local.get 21 | |
local.get 16 | |
f64.sub | |
f64.mul | |
local.get 18 | |
local.get 15 | |
f64.sub | |
local.get 16 | |
local.get 28 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
br_if 0 (;@13;) | |
local.get 23 | |
local.get 16 | |
local.get 19 | |
f64.sub | |
f64.mul | |
local.get 20 | |
local.get 15 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@12;) | |
end | |
local.get 17 | |
local.get 15 | |
f64.sub | |
local.set 24 | |
local.get 16 | |
local.get 6 | |
i32.load offset=24 | |
local.tee 3 | |
f64.load offset=8 | |
local.tee 21 | |
f64.sub | |
local.set 26 | |
local.get 6 | |
i32.load offset=28 | |
local.tee 12 | |
f64.load offset=16 | |
local.tee 22 | |
local.get 15 | |
f64.sub | |
local.set 23 | |
local.get 15 | |
local.get 3 | |
f64.load offset=16 | |
local.tee 18 | |
f64.sub | |
local.set 25 | |
local.get 12 | |
f64.load offset=8 | |
local.tee 19 | |
local.get 16 | |
f64.sub | |
local.tee 20 | |
local.get 25 | |
f64.mul | |
local.get 26 | |
local.get 23 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
if ;; label = @13 | |
local.get 24 | |
local.get 19 | |
local.get 28 | |
f64.sub | |
f64.mul | |
local.get 28 | |
local.get 16 | |
f64.sub | |
local.get 22 | |
local.get 17 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@12;) | |
local.get 18 | |
local.get 15 | |
f64.sub | |
local.get 28 | |
local.get 21 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 18 | |
f64.sub | |
local.get 21 | |
local.get 16 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@12;) | |
else | |
local.get 24 | |
local.get 21 | |
local.get 28 | |
f64.sub | |
f64.mul | |
local.get 28 | |
local.get 16 | |
f64.sub | |
local.get 18 | |
local.get 17 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
br_if 0 (;@13;) | |
local.get 28 | |
local.get 19 | |
f64.sub | |
local.get 23 | |
f64.mul | |
local.get 20 | |
local.get 17 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@12;) | |
end | |
local.get 28 | |
local.get 16 | |
f64.add | |
global.get 11 | |
f64.mul | |
local.set 19 | |
local.get 17 | |
local.get 15 | |
f64.add | |
global.get 11 | |
f64.mul | |
local.set 20 | |
local.get 5 | |
local.set 12 | |
i32.const 0 | |
local.set 3 | |
loop ;; label = @13 | |
local.get 12 | |
f64.load offset=16 | |
local.tee 22 | |
local.get 20 | |
f64.gt | |
local.get 12 | |
i32.load offset=28 | |
local.tee 8 | |
f64.load offset=16 | |
local.tee 23 | |
local.get 20 | |
f64.gt | |
i32.xor | |
local.set 9 | |
local.get 23 | |
local.get 22 | |
f64.eq | |
i32.eqz | |
if ;; label = @14 | |
local.get 9 | |
i32.eqz | |
br_if 0 (;@14;) | |
local.get 12 | |
f64.load offset=8 | |
local.set 24 | |
local.get 19 | |
local.get 24 | |
local.get 20 | |
local.get 22 | |
f64.sub | |
local.get 8 | |
f64.load offset=8 | |
local.get 24 | |
f64.sub | |
f64.mul | |
local.get 23 | |
local.get 22 | |
f64.sub | |
f64.div | |
f64.add | |
f64.lt | |
i32.eqz | |
br_if 0 (;@14;) | |
local.get 3 | |
i32.const 1 | |
i32.and | |
i32.const 1 | |
i32.xor | |
local.set 3 | |
end | |
local.get 8 | |
local.get 5 | |
i32.ne | |
if ;; label = @14 | |
local.get 8 | |
local.set 12 | |
br 1 (;@13;) | |
end | |
end | |
local.get 3 | |
i32.const 1 | |
i32.and | |
i32.eqz | |
br_if 0 (;@12;) | |
local.get 18 | |
local.get 17 | |
f64.sub | |
local.set 18 | |
local.get 21 | |
local.get 28 | |
f64.sub | |
local.tee 19 | |
local.get 27 | |
f64.mul | |
local.get 29 | |
local.get 18 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@11;) | |
local.get 18 | |
local.get 26 | |
f64.mul | |
local.get 25 | |
local.get 19 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@11;) | |
end | |
local.get 28 | |
local.get 16 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@10;) | |
local.get 30 | |
global.get 1 | |
f64.gt | |
i32.const 0 | |
local.get 17 | |
local.get 15 | |
f64.eq | |
select | |
i32.eqz | |
br_if 1 (;@10;) | |
local.get 6 | |
i32.load offset=28 | |
local.tee 12 | |
local.get 6 | |
i32.load offset=24 | |
local.set 3 | |
f64.load offset=8 | |
local.get 16 | |
f64.sub | |
local.get 15 | |
local.get 3 | |
f64.load offset=16 | |
f64.sub | |
f64.mul | |
local.get 16 | |
local.get 3 | |
f64.load offset=8 | |
f64.sub | |
local.get 12 | |
f64.load offset=16 | |
local.get 15 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.gt | |
i32.eqz | |
br_if 1 (;@10;) | |
end | |
local.get 0 | |
local.get 5 | |
local.get 6 | |
call 15 | |
local.tee 6 | |
local.get 5 | |
i32.load offset=28 | |
local.tee 3 | |
local.get 5 | |
local.get 3 | |
select | |
local.set 3 | |
block ;; label = @11 | |
loop ;; label = @12 | |
block ;; label = @13 | |
local.get 5 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @14 | |
local.get 5 | |
f64.load offset=8 | |
local.set 17 | |
local.get 5 | |
i32.load offset=28 | |
local.tee 4 | |
f64.load offset=8 | |
local.set 18 | |
block ;; label = @15 | |
local.get 17 | |
local.get 18 | |
f64.eq | |
if ;; label = @16 | |
local.get 5 | |
f64.load offset=16 | |
local.get 4 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@15;) | |
end | |
local.get 5 | |
f64.load offset=16 | |
local.tee 19 | |
local.get 5 | |
i32.load offset=24 | |
local.tee 11 | |
f64.load offset=16 | |
f64.sub | |
local.get 18 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 11 | |
f64.load offset=8 | |
f64.sub | |
local.get 4 | |
f64.load offset=16 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@14;) | |
end | |
local.get 4 | |
local.get 5 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 5 | |
i32.load offset=24 | |
local.tee 11 | |
local.get 4 | |
i32.store offset=28 | |
local.get 5 | |
i32.load offset=36 | |
local.tee 3 | |
if ;; label = @15 | |
local.get 3 | |
local.get 5 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 5 | |
i32.load offset=40 | |
local.tee 5 | |
if ;; label = @15 | |
local.get 5 | |
local.get 3 | |
i32.store offset=36 | |
end | |
local.get 11 | |
local.get 4 | |
i32.eq | |
if ;; label = @15 | |
local.get 4 | |
local.set 3 | |
br 4 (;@11;) | |
end | |
local.get 11 | |
local.set 3 | |
i32.const 1 | |
local.set 5 | |
br 1 (;@13;) | |
end | |
local.get 5 | |
i32.load offset=28 | |
local.set 11 | |
i32.const 0 | |
local.set 5 | |
end | |
i32.const 1 | |
local.get 11 | |
local.get 3 | |
i32.ne | |
local.get 5 | |
select | |
i32.eqz | |
br_if 1 (;@11;) | |
local.get 11 | |
local.set 5 | |
br 0 (;@12;) | |
end | |
end | |
i32.load offset=28 | |
local.tee 5 | |
local.get 6 | |
local.get 5 | |
select | |
local.set 11 | |
block ;; label = @11 | |
loop ;; label = @12 | |
block ;; label = @13 | |
local.get 6 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @14 | |
local.get 6 | |
f64.load offset=8 | |
local.set 17 | |
local.get 6 | |
i32.load offset=28 | |
local.tee 4 | |
f64.load offset=8 | |
local.set 18 | |
block ;; label = @15 | |
local.get 17 | |
local.get 18 | |
f64.eq | |
if ;; label = @16 | |
local.get 6 | |
f64.load offset=16 | |
local.get 4 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@15;) | |
end | |
local.get 6 | |
f64.load offset=16 | |
local.tee 19 | |
local.get 6 | |
i32.load offset=24 | |
local.tee 5 | |
f64.load offset=16 | |
f64.sub | |
local.get 18 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 17 | |
local.get 5 | |
f64.load offset=8 | |
f64.sub | |
local.get 4 | |
f64.load offset=16 | |
local.get 19 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@14;) | |
end | |
local.get 4 | |
local.get 6 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 6 | |
i32.load offset=24 | |
local.tee 11 | |
local.get 4 | |
i32.store offset=28 | |
local.get 6 | |
i32.load offset=36 | |
local.tee 5 | |
if ;; label = @15 | |
local.get 5 | |
local.get 6 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 6 | |
i32.load offset=40 | |
local.tee 6 | |
if ;; label = @15 | |
local.get 6 | |
local.get 5 | |
i32.store offset=36 | |
end | |
local.get 11 | |
local.get 4 | |
i32.eq | |
br_if 3 (;@11;) | |
local.get 11 | |
local.set 6 | |
i32.const 1 | |
local.set 5 | |
br 1 (;@13;) | |
end | |
local.get 6 | |
i32.load offset=28 | |
local.set 6 | |
i32.const 0 | |
local.set 5 | |
end | |
i32.const 1 | |
local.get 6 | |
local.get 11 | |
i32.ne | |
local.get 5 | |
select | |
br_if 0 (;@12;) | |
end | |
local.get 11 | |
local.set 4 | |
end | |
local.get 0 | |
local.get 3 | |
call 16 | |
local.get 4 | |
i32.eqz | |
br_if 9 (;@1;) | |
i32.const 0 | |
local.set 3 | |
br 8 (;@2;) | |
end | |
local.get 6 | |
i32.load offset=28 | |
local.tee 6 | |
local.get 10 | |
i32.ne | |
br_if 0 (;@9;) | |
end | |
end | |
local.get 11 | |
local.get 4 | |
i32.eq | |
br_if 6 (;@1;) | |
local.get 11 | |
local.set 5 | |
br 0 (;@7;) | |
end | |
end | |
br 3 (;@2;) | |
end | |
local.get 11 | |
local.set 5 | |
br 0 (;@4;) | |
end | |
end | |
end | |
end) | |
(func (;17;) (type 3) (param i32 i32) | |
(local i32 i32 i32 i32 i32) | |
local.get 0 | |
i32.load offset=4 | |
local.tee 3 | |
local.get 0 | |
i32.load offset=8 | |
local.tee 4 | |
i32.lt_u | |
if ;; label = @1 | |
local.get 3 | |
local.get 1 | |
i64.load align=4 | |
i64.store align=4 | |
local.get 0 | |
i32.const 8 | |
local.get 3 | |
i32.add | |
i32.store offset=4 | |
else | |
local.get 3 | |
local.get 0 | |
i32.load | |
local.tee 5 | |
i32.sub | |
i32.const 3 | |
i32.shr_s | |
local.tee 3 | |
i32.const 1 | |
i32.add | |
local.tee 6 | |
i32.const 536870911 | |
i32.gt_u | |
if ;; label = @2 | |
call 0 | |
unreachable | |
end | |
local.get 4 | |
local.get 5 | |
i32.sub | |
local.set 4 | |
block ;; label = @2 | |
local.get 4 | |
i32.const 3 | |
i32.shr_s | |
i32.const 268435455 | |
i32.lt_u | |
if ;; label = @3 | |
local.get 6 | |
local.get 4 | |
i32.const 2 | |
i32.shr_s | |
local.tee 4 | |
local.get 4 | |
local.get 6 | |
i32.lt_u | |
select | |
local.tee 6 | |
i32.eqz | |
if ;; label = @4 | |
i32.const 0 | |
i32.const 0 | |
local.set 4 | |
local.set 6 | |
br 2 (;@2;) | |
end | |
local.get 6 | |
i32.const 536870911 | |
i32.gt_u | |
if ;; label = @4 | |
call 5 | |
unreachable | |
end | |
else | |
i32.const 536870911 | |
local.set 6 | |
end | |
local.get 6 | |
i32.const 3 | |
i32.shl | |
call 4 | |
local.set 4 | |
end | |
local.get 6 | |
i32.const 3 | |
i32.shl | |
local.get 4 | |
i32.add | |
local.set 6 | |
local.get 3 | |
i32.const 3 | |
i32.shl | |
local.get 4 | |
i32.add | |
local.tee 3 | |
local.get 1 | |
i64.load align=4 | |
i64.store align=4 | |
i32.const 0 | |
local.get 0 | |
i32.load offset=4 | |
local.get 0 | |
i32.load | |
local.tee 4 | |
i32.sub | |
local.tee 2 | |
i32.const 3 | |
i32.shr_s | |
i32.const 3 | |
i32.shl | |
i32.sub | |
local.get 3 | |
i32.add | |
local.set 5 | |
local.get 2 | |
i32.const 0 | |
i32.gt_s | |
if ;; label = @2 | |
local.get 5 | |
local.get 4 | |
local.get 2 | |
call 28 | |
drop | |
end | |
local.get 0 | |
i32.load | |
local.tee 4 | |
local.get 0 | |
local.get 5 | |
i32.store | |
local.get 0 | |
i32.const 8 | |
local.get 3 | |
i32.add | |
i32.store offset=4 | |
local.get 0 | |
local.get 6 | |
i32.store offset=8 | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 4 | |
call 3 | |
end) | |
(func (;18;) (type 2) (param i32) | |
local.get 0 | |
global.set 0) | |
(func (;19;) (type 8) (result i32) | |
(local i32) | |
global.get 0) | |
(func (;20;) (type 2) (param i32) | |
local.get 0 | |
i64.const 0 | |
i64.store align=4 | |
local.get 0 | |
i32.const 0 | |
i32.store offset=8) | |
(func (;21;) (type 2) (param i32) | |
(local i32 i32 i32 i32 i32 i32) | |
i32.const 0 | |
i32.load offset=1049620 | |
local.tee 2 | |
local.tee 5 | |
i32.const 0 | |
i32.load offset=1049616 | |
local.tee 3 | |
local.tee 4 | |
i32.sub | |
i32.const 4 | |
i32.shr_s | |
local.tee 6 | |
local.get 0 | |
i32.lt_u | |
if ;; label = @1 | |
local.get 0 | |
local.get 6 | |
i32.sub | |
local.set 3 | |
i32.const 0 | |
i32.load offset=1049624 | |
local.tee 1 | |
local.get 5 | |
i32.sub | |
i32.const 4 | |
i32.shr_s | |
local.get 3 | |
i32.lt_u | |
if ;; label = @2 | |
local.get 0 | |
i32.const 268435455 | |
i32.gt_u | |
if ;; label = @3 | |
call 0 | |
unreachable | |
end | |
local.get 1 | |
local.get 4 | |
i32.sub | |
local.set 3 | |
block ;; label = @3 | |
local.get 3 | |
i32.const 4 | |
i32.shr_s | |
i32.const 134217727 | |
i32.lt_u | |
if ;; label = @4 | |
local.get 3 | |
i32.const 3 | |
i32.shr_s | |
local.tee 2 | |
local.get 0 | |
i32.lt_u | |
if ;; label = @5 | |
local.get 0 | |
local.set 2 | |
else | |
local.get 3 | |
i32.eqz | |
if ;; label = @6 | |
i32.const 0 | |
i32.const 0 | |
local.set 3 | |
local.set 2 | |
br 3 (;@3;) | |
end | |
local.get 2 | |
i32.const 268435455 | |
i32.le_u | |
br_if 0 (;@5;) | |
call 5 | |
unreachable | |
end | |
else | |
i32.const 268435455 | |
local.set 2 | |
end | |
local.get 2 | |
i32.const 4 | |
i32.shl | |
call 4 | |
local.set 3 | |
end | |
local.get 6 | |
i32.const 4 | |
i32.shl | |
local.get 3 | |
i32.add | |
local.tee 6 | |
local.get 0 | |
i32.const 4 | |
i32.shl | |
local.get 3 | |
i32.add | |
local.set 4 | |
local.set 5 | |
loop ;; label = @3 | |
local.get 5 | |
i64.const 0 | |
i64.store | |
local.get 5 | |
i64.const 0 | |
i64.store offset=8 | |
i32.const 16 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
local.get 4 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
local.get 2 | |
i32.const 4 | |
i32.shl | |
local.get 3 | |
i32.add | |
local.set 2 | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1049620 | |
i32.const 0 | |
i32.load offset=1049616 | |
local.tee 3 | |
i32.sub | |
local.tee 5 | |
i32.const 4 | |
i32.shr_s | |
i32.const 4 | |
i32.shl | |
i32.sub | |
local.get 6 | |
i32.add | |
local.set 6 | |
local.get 5 | |
i32.const 0 | |
i32.gt_s | |
if ;; label = @3 | |
local.get 6 | |
local.get 3 | |
local.get 5 | |
call 28 | |
drop | |
end | |
i32.const 0 | |
i32.load offset=1049616 | |
local.tee 3 | |
i32.const 0 | |
local.get 6 | |
i32.store offset=1049616 | |
i32.const 0 | |
local.get 4 | |
i32.store offset=1049620 | |
i32.const 0 | |
local.get 2 | |
i32.store offset=1049624 | |
if ;; label = @3 | |
local.get 3 | |
call 3 | |
end | |
else | |
local.get 3 | |
i32.const 4 | |
i32.shl | |
local.get 2 | |
i32.add | |
local.set 4 | |
local.get 3 | |
if ;; label = @3 | |
loop ;; label = @4 | |
local.get 2 | |
i64.const 0 | |
i64.store | |
local.get 2 | |
i64.const 0 | |
i64.store offset=8 | |
i32.const 16 | |
local.get 2 | |
i32.add | |
local.tee 2 | |
local.get 4 | |
i32.ne | |
br_if 0 (;@4;) | |
end | |
else | |
local.get 2 | |
local.set 4 | |
end | |
i32.const 0 | |
local.get 4 | |
i32.store offset=1049620 | |
end | |
else | |
local.get 6 | |
local.get 0 | |
i32.le_u | |
br_if 0 (;@1;) | |
i32.const 0 | |
local.get 0 | |
i32.const 4 | |
i32.shl | |
local.get 3 | |
i32.add | |
i32.store offset=1049620 | |
end) | |
(func (;22;) (type 0) | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1049616 | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1049620 | |
i32.const 0 | |
i32.const 0 | |
i32.store offset=1049624) | |
(func (;23;) (type 3) (param i32 i32) | |
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64 f64) | |
global.get 0 | |
local.tee 2 | |
i32.const -96 | |
local.get 2 | |
i32.add | |
local.tee 4 | |
global.set 0 | |
local.get 4 | |
local.tee 3 | |
i64.const 0 | |
i64.store offset=56 | |
local.get 3 | |
i64.const 0 | |
i64.store align=4 | |
local.get 3 | |
i64.const 0 | |
i64.store offset=8 align=4 | |
local.get 3 | |
i64.const 4294967296 | |
i64.store offset=64 align=4 | |
local.get 3 | |
i64.const 1 | |
i64.store offset=72 align=4 | |
local.get 3 | |
i64.const 0 | |
i64.store offset=80 align=4 | |
local.get 1 | |
i32.load | |
local.tee 5 | |
local.get 1 | |
i32.load offset=4 | |
local.tee 4 | |
i32.ne | |
if ;; label = @1 | |
local.get 4 | |
local.get 5 | |
i32.sub | |
i32.const 3 | |
i32.shr_s | |
local.set 4 | |
i32.const 80 | |
i32.const 0 | |
local.tee 7 | |
local.set 8 | |
local.set 6 | |
loop ;; label = @2 | |
local.get 8 | |
local.get 4 | |
i32.ne | |
if ;; label = @3 | |
local.get 8 | |
i32.const 3 | |
i32.shl | |
local.get 5 | |
i32.add | |
local.tee 9 | |
i32.load offset=4 | |
local.tee 11 | |
local.get 7 | |
i32.add | |
local.get 9 | |
i32.load | |
local.tee 9 | |
i32.sub | |
local.set 7 | |
local.get 9 | |
local.get 6 | |
local.get 11 | |
i32.sub | |
i32.add | |
local.tee 6 | |
i32.const -1 | |
i32.le_s | |
br_if 0 (;@3;) | |
local.get 8 | |
i32.const 1 | |
i32.add | |
local.set 8 | |
br 1 (;@2;) | |
end | |
end | |
local.get 3 | |
i32.load offset=76 | |
local.tee 4 | |
local.get 3 | |
i32.load offset=80 | |
local.tee 5 | |
i32.ne | |
if ;; label = @2 | |
loop ;; label = @3 | |
local.get 4 | |
i32.load | |
call 3 | |
i32.const 4 | |
local.get 4 | |
i32.add | |
local.tee 4 | |
local.get 5 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
end | |
local.get 3 | |
local.get 3 | |
i32.load offset=76 | |
i32.store offset=80 | |
local.get 3 | |
local.get 7 | |
i32.const 3 | |
i32.mul | |
i32.const 1 | |
i32.shr_u | |
local.tee 4 | |
i32.const 1 | |
local.get 4 | |
i32.const 1 | |
i32.gt_u | |
select | |
local.tee 4 | |
i32.store offset=72 | |
local.get 3 | |
i32.const 0 | |
i32.store offset=64 | |
local.get 3 | |
local.get 4 | |
i32.store offset=68 | |
local.get 1 | |
i32.load | |
local.tee 4 | |
i32.load offset=4 | |
local.get 4 | |
i32.load | |
i32.sub | |
local.get 7 | |
i32.add | |
local.set 5 | |
local.get 3 | |
i32.load | |
local.set 7 | |
local.get 3 | |
i32.load offset=8 | |
local.get 7 | |
i32.sub | |
i32.const 2 | |
i32.shr_s | |
local.get 5 | |
i32.lt_u | |
if ;; label = @2 | |
local.get 5 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @3 | |
call 5 | |
unreachable | |
end | |
local.get 5 | |
i32.const 2 | |
i32.shl | |
local.get 3 | |
i32.load offset=4 | |
local.set 4 | |
local.get 5 | |
i32.const 2 | |
i32.shl | |
call 4 | |
local.tee 9 | |
i32.add | |
local.get 4 | |
local.get 7 | |
i32.sub | |
i32.const 2 | |
i32.shr_s | |
i32.const 2 | |
i32.shl | |
local.get 9 | |
i32.add | |
local.set 7 | |
local.set 4 | |
i32.const 0 | |
local.get 3 | |
i32.load offset=4 | |
local.get 3 | |
i32.load | |
local.tee 5 | |
i32.sub | |
local.tee 9 | |
i32.const 2 | |
i32.shr_s | |
i32.const 2 | |
i32.shl | |
i32.sub | |
local.get 7 | |
i32.add | |
local.set 8 | |
local.get 9 | |
i32.const 0 | |
i32.gt_s | |
if ;; label = @3 | |
local.get 8 | |
local.get 5 | |
local.get 9 | |
call 28 | |
drop | |
end | |
local.get 3 | |
i32.load | |
local.tee 9 | |
local.get 3 | |
local.get 8 | |
i32.store | |
local.get 3 | |
local.get 7 | |
i32.store offset=4 | |
local.get 3 | |
local.get 4 | |
i32.store offset=8 | |
i32.eqz | |
br_if 0 (;@2;) | |
local.get 9 | |
call 3 | |
end | |
local.get 3 | |
local.get 1 | |
i32.load | |
i32.const 1 | |
call 13 | |
local.tee 7 | |
i32.eqz | |
br_if 0 (;@1;) | |
local.get 7 | |
i32.load offset=24 | |
local.get 7 | |
i32.load offset=28 | |
i32.eq | |
br_if 0 (;@1;) | |
local.get 1 | |
i32.load offset=4 | |
local.get 1 | |
i32.load | |
i32.sub | |
i32.const 3 | |
i32.shr_s | |
local.tee 4 | |
i32.const 1 | |
i32.gt_u | |
if ;; label = @2 | |
i32.const 0 | |
i32.const 1 | |
local.set 12 | |
local.tee 5 | |
local.tee 10 | |
local.set 11 | |
loop ;; label = @3 | |
local.get 3 | |
local.get 12 | |
i32.const 3 | |
i32.shl | |
local.get 1 | |
i32.load | |
i32.add | |
i32.const 0 | |
call 13 | |
local.tee 9 | |
if ;; label = @4 | |
local.get 9 | |
local.get 9 | |
i32.load offset=28 | |
i32.eq | |
if ;; label = @5 | |
local.get 9 | |
i32.const 1 | |
i32.store8 offset=44 | |
end | |
local.get 9 | |
local.tee 8 | |
local.set 13 | |
loop ;; label = @5 | |
local.get 13 | |
f64.load offset=8 | |
local.set 20 | |
local.get 8 | |
f64.load offset=8 | |
local.set 21 | |
block ;; label = @6 | |
local.get 20 | |
local.get 21 | |
f64.lt | |
i32.eqz | |
if ;; label = @7 | |
local.get 20 | |
local.get 21 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@6;) | |
local.get 13 | |
f64.load offset=16 | |
local.get 8 | |
f64.load offset=16 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@6;) | |
end | |
local.get 13 | |
local.set 8 | |
end | |
local.get 13 | |
i32.load offset=28 | |
local.tee 13 | |
local.get 9 | |
i32.ne | |
br_if 0 (;@5;) | |
end | |
local.get 11 | |
local.get 10 | |
i32.lt_u | |
if ;; label = @5 | |
local.get 11 | |
local.get 8 | |
i32.store | |
i32.const 4 | |
local.get 11 | |
i32.add | |
local.set 11 | |
else | |
local.get 11 | |
local.get 5 | |
local.tee 13 | |
i32.sub | |
local.tee 9 | |
i32.const 2 | |
i32.shr_s | |
local.tee 11 | |
i32.const 1 | |
i32.add | |
local.tee 14 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @6 | |
call 0 | |
unreachable | |
end | |
local.get 10 | |
local.get 13 | |
i32.sub | |
local.set 10 | |
block ;; label = @6 | |
local.get 10 | |
i32.const 2 | |
i32.shr_s | |
i32.const 536870911 | |
i32.lt_u | |
if ;; label = @7 | |
local.get 14 | |
local.get 10 | |
i32.const 1 | |
i32.shr_s | |
local.tee 10 | |
local.get 10 | |
local.get 14 | |
i32.lt_u | |
select | |
local.tee 10 | |
i32.eqz | |
if ;; label = @8 | |
i32.const 0 | |
i32.const 0 | |
local.set 13 | |
local.set 10 | |
br 2 (;@6;) | |
end | |
local.get 10 | |
i32.const 1073741823 | |
i32.gt_u | |
if ;; label = @8 | |
call 5 | |
unreachable | |
end | |
else | |
i32.const 1073741823 | |
local.set 10 | |
end | |
local.get 10 | |
i32.const 2 | |
i32.shl | |
call 4 | |
local.set 13 | |
end | |
local.get 10 | |
i32.const 2 | |
i32.shl | |
local.get 13 | |
i32.add | |
local.set 10 | |
local.get 11 | |
i32.const 2 | |
i32.shl | |
local.get 13 | |
i32.add | |
local.tee 11 | |
local.get 8 | |
i32.store | |
local.get 9 | |
i32.const 0 | |
i32.gt_s | |
if ;; label = @6 | |
local.get 13 | |
local.get 5 | |
local.get 9 | |
call 28 | |
drop | |
end | |
i32.const 4 | |
local.get 11 | |
i32.add | |
local.set 11 | |
local.get 5 | |
if ;; label = @6 | |
local.get 5 | |
call 3 | |
local.get 13 | |
local.set 5 | |
else | |
local.get 13 | |
local.set 5 | |
end | |
end | |
end | |
local.get 12 | |
i32.const 1 | |
i32.add | |
local.tee 12 | |
local.get 4 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
local.get 5 | |
local.get 11 | |
call 9 | |
local.get 11 | |
local.tee 11 | |
local.get 5 | |
local.tee 10 | |
i32.ne | |
if ;; label = @3 | |
local.get 11 | |
local.get 10 | |
i32.sub | |
i32.const 2 | |
i32.shr_s | |
local.tee 11 | |
i32.const 1 | |
local.get 11 | |
i32.const 1 | |
i32.gt_u | |
select | |
local.set 4 | |
i32.const 0 | |
local.set 12 | |
loop ;; label = @4 | |
local.get 12 | |
i32.const 2 | |
i32.shl | |
local.get 5 | |
i32.add | |
i32.load | |
local.tee 9 | |
f64.load offset=8 | |
local.set 20 | |
local.get 9 | |
f64.load offset=16 | |
local.set 21 | |
local.get 7 | |
local.set 13 | |
f64.const -inf (;=-inf;) | |
i32.const 0 | |
local.set 11 | |
local.set 22 | |
block ;; label = @5 | |
block ;; label = @6 | |
loop ;; label = @7 | |
local.get 13 | |
f64.load offset=16 | |
local.tee 23 | |
local.get 21 | |
f64.ge | |
if ;; label = @8 | |
local.get 13 | |
i32.load offset=28 | |
local.tee 8 | |
f64.load offset=16 | |
local.tee 24 | |
local.get 23 | |
f64.eq | |
i32.eqz | |
i32.const 0 | |
local.get 24 | |
local.get 21 | |
f64.le | |
select | |
if ;; label = @9 | |
local.get 13 | |
f64.load offset=8 | |
local.tee 25 | |
local.get 21 | |
local.get 23 | |
f64.sub | |
local.get 8 | |
f64.load offset=8 | |
local.tee 26 | |
local.get 25 | |
f64.sub | |
f64.mul | |
local.get 24 | |
local.get 23 | |
f64.sub | |
f64.div | |
f64.add | |
local.tee 27 | |
local.get 22 | |
f64.gt | |
i32.const 0 | |
local.get 27 | |
local.get 20 | |
f64.le | |
select | |
if ;; label = @10 | |
local.get 27 | |
local.get 20 | |
f64.eq | |
if ;; label = @11 | |
local.get 23 | |
local.get 21 | |
f64.eq | |
if ;; label = @12 | |
local.get 13 | |
local.set 8 | |
br 6 (;@6;) | |
end | |
local.get 24 | |
local.get 21 | |
f64.eq | |
br_if 5 (;@6;) | |
end | |
local.get 25 | |
local.get 26 | |
f64.lt | |
if ;; label = @11 | |
local.get 13 | |
local.set 8 | |
end | |
else | |
local.get 11 | |
local.set 8 | |
local.get 22 | |
local.set 27 | |
end | |
else | |
local.get 11 | |
local.set 8 | |
local.get 22 | |
local.set 27 | |
end | |
else | |
local.get 11 | |
local.set 8 | |
local.get 22 | |
local.set 27 | |
end | |
local.get 13 | |
i32.load offset=28 | |
local.tee 13 | |
local.get 7 | |
i32.ne | |
if ;; label = @8 | |
local.get 8 | |
local.set 11 | |
local.get 27 | |
local.set 22 | |
br 1 (;@7;) | |
end | |
end | |
local.get 8 | |
i32.eqz | |
br_if 1 (;@5;) | |
local.get 27 | |
local.get 20 | |
f64.eq | |
br_if 0 (;@6;) | |
local.get 8 | |
f64.load offset=8 | |
local.set 22 | |
local.get 20 | |
local.get 27 | |
local.get 8 | |
f64.load offset=16 | |
local.tee 23 | |
local.get 21 | |
f64.gt | |
select | |
local.set 24 | |
local.get 8 | |
local.tee 11 | |
local.set 13 | |
f64.const inf (;=inf;) | |
local.set 25 | |
loop ;; label = @7 | |
local.get 11 | |
f64.load offset=8 | |
local.tee 26 | |
local.get 22 | |
f64.ge | |
i32.const 0 | |
local.get 26 | |
local.get 20 | |
f64.le | |
select | |
local.set 10 | |
local.get 26 | |
local.get 20 | |
f64.eq | |
i32.eqz | |
if ;; label = @8 | |
local.get 10 | |
i32.eqz | |
br_if 0 (;@8;) | |
local.get 23 | |
local.get 21 | |
f64.gt | |
if (result f64) ;; label = @9 | |
local.get 27 | |
else | |
local.get 20 | |
end | |
local.get 24 | |
local.get 26 | |
f64.sub | |
local.set 30 | |
local.get 21 | |
local.get 11 | |
f64.load offset=16 | |
local.tee 29 | |
f64.sub | |
local.set 15 | |
local.get 26 | |
f64.sub | |
local.tee 28 | |
local.get 15 | |
f64.mul | |
local.get 30 | |
local.get 15 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@8;) | |
local.get 22 | |
local.get 26 | |
f64.sub | |
local.get 15 | |
f64.mul | |
local.set 32 | |
local.get 23 | |
local.get 29 | |
f64.sub | |
local.tee 31 | |
local.get 30 | |
f64.mul | |
local.get 32 | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@8;) | |
local.get 32 | |
local.get 28 | |
local.get 31 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 0 (;@8;) | |
local.get 15 | |
f64.abs | |
local.get 20 | |
local.get 26 | |
f64.sub | |
local.tee 28 | |
f64.div | |
local.set 31 | |
local.get 11 | |
i32.load offset=28 | |
local.tee 10 | |
f64.load offset=16 | |
local.tee 18 | |
local.get 29 | |
f64.sub | |
local.set 19 | |
local.get 11 | |
i32.load offset=24 | |
local.tee 14 | |
f64.load offset=8 | |
local.set 17 | |
local.get 10 | |
f64.load offset=8 | |
local.tee 16 | |
local.get 26 | |
f64.sub | |
local.tee 30 | |
local.get 14 | |
f64.load offset=16 | |
local.set 32 | |
local.get 29 | |
local.get 32 | |
f64.sub | |
f64.mul | |
local.get 26 | |
local.get 17 | |
f64.sub | |
local.get 19 | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
if ;; label = @9 | |
local.get 15 | |
local.get 16 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 28 | |
local.get 18 | |
local.get 21 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@8;) | |
local.get 32 | |
local.get 29 | |
f64.sub | |
local.get 20 | |
local.get 17 | |
f64.sub | |
f64.mul | |
local.get 21 | |
local.get 32 | |
f64.sub | |
local.get 17 | |
local.get 26 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.ge | |
i32.eqz | |
br_if 1 (;@8;) | |
else | |
local.get 15 | |
local.get 17 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 28 | |
local.get 32 | |
local.get 21 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
br_if 0 (;@9;) | |
local.get 20 | |
local.get 16 | |
f64.sub | |
local.get 19 | |
f64.mul | |
local.get 30 | |
local.get 21 | |
local.get 18 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@8;) | |
end | |
local.get 31 | |
local.get 25 | |
f64.lt | |
i32.eqz | |
if ;; label = @9 | |
local.get 31 | |
local.get 25 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@8;) | |
local.get 13 | |
f64.load offset=8 | |
local.set 29 | |
local.get 26 | |
local.get 29 | |
f64.gt | |
br_if 0 (;@9;) | |
local.get 13 | |
i32.load offset=24 | |
local.set 10 | |
local.get 13 | |
f64.load offset=16 | |
local.tee 26 | |
local.get 10 | |
f64.load offset=16 | |
f64.sub | |
local.get 17 | |
local.get 29 | |
f64.sub | |
f64.mul | |
local.get 32 | |
local.get 26 | |
f64.sub | |
local.get 29 | |
local.get 10 | |
f64.load offset=8 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@8;) | |
local.get 13 | |
i32.load offset=28 | |
local.tee 10 | |
f64.load offset=8 | |
local.get 29 | |
f64.sub | |
local.get 26 | |
local.get 18 | |
f64.sub | |
f64.mul | |
local.get 29 | |
local.get 16 | |
f64.sub | |
local.get 10 | |
f64.load offset=16 | |
local.get 26 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.lt | |
i32.eqz | |
br_if 1 (;@8;) | |
end | |
local.get 11 | |
local.set 13 | |
local.get 31 | |
local.set 25 | |
end | |
local.get 11 | |
i32.load offset=28 | |
local.tee 11 | |
local.get 8 | |
i32.ne | |
br_if 0 (;@7;) | |
end | |
local.get 13 | |
i32.eqz | |
br_if 1 (;@5;) | |
local.get 13 | |
local.set 8 | |
end | |
local.get 3 | |
local.get 8 | |
local.get 9 | |
call 15 | |
local.tee 9 | |
local.get 8 | |
i32.load offset=28 | |
local.tee 13 | |
local.get 8 | |
local.tee 10 | |
local.get 13 | |
select | |
local.set 11 | |
block ;; label = @6 | |
loop ;; label = @7 | |
block ;; label = @8 | |
local.get 10 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @9 | |
local.get 10 | |
f64.load offset=8 | |
local.set 20 | |
local.get 10 | |
i32.load offset=28 | |
local.tee 13 | |
f64.load offset=8 | |
local.set 21 | |
block ;; label = @10 | |
local.get 20 | |
local.get 21 | |
f64.eq | |
if ;; label = @11 | |
local.get 10 | |
f64.load offset=16 | |
local.get 13 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@10;) | |
end | |
local.get 10 | |
f64.load offset=16 | |
local.tee 22 | |
local.get 10 | |
i32.load offset=24 | |
local.tee 14 | |
f64.load offset=16 | |
f64.sub | |
local.get 21 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 20 | |
local.get 14 | |
f64.load offset=8 | |
f64.sub | |
local.get 13 | |
f64.load offset=16 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@9;) | |
end | |
local.get 13 | |
local.get 10 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 10 | |
i32.load offset=24 | |
local.tee 11 | |
local.get 13 | |
i32.store offset=28 | |
local.get 10 | |
i32.load offset=36 | |
local.tee 14 | |
if ;; label = @10 | |
local.get 14 | |
local.get 10 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 10 | |
i32.load offset=40 | |
local.tee 10 | |
if ;; label = @10 | |
local.get 10 | |
local.get 14 | |
i32.store offset=36 | |
end | |
local.get 11 | |
local.get 13 | |
i32.eq | |
if ;; label = @10 | |
local.get 13 | |
local.set 11 | |
br 4 (;@6;) | |
end | |
local.get 11 | |
local.set 10 | |
i32.const 1 | |
local.set 13 | |
br 1 (;@8;) | |
end | |
local.get 10 | |
i32.load offset=28 | |
local.set 10 | |
i32.const 0 | |
local.set 13 | |
end | |
i32.const 1 | |
local.get 10 | |
local.get 11 | |
i32.ne | |
local.get 13 | |
select | |
br_if 0 (;@7;) | |
end | |
end | |
i32.load offset=28 | |
local.tee 10 | |
local.get 9 | |
local.get 10 | |
select | |
local.set 10 | |
block ;; label = @6 | |
loop ;; label = @7 | |
block ;; label = @8 | |
local.get 9 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @9 | |
local.get 9 | |
f64.load offset=8 | |
local.set 20 | |
local.get 9 | |
i32.load offset=28 | |
local.tee 13 | |
f64.load offset=8 | |
local.set 21 | |
block ;; label = @10 | |
local.get 20 | |
local.get 21 | |
f64.eq | |
if ;; label = @11 | |
local.get 9 | |
f64.load offset=16 | |
local.get 13 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@10;) | |
end | |
local.get 9 | |
f64.load offset=16 | |
local.tee 22 | |
local.get 9 | |
i32.load offset=24 | |
local.tee 14 | |
f64.load offset=16 | |
f64.sub | |
local.get 21 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 20 | |
local.get 14 | |
f64.load offset=8 | |
f64.sub | |
local.get 13 | |
f64.load offset=16 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@9;) | |
end | |
local.get 13 | |
local.get 9 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 9 | |
i32.load offset=24 | |
local.tee 10 | |
local.get 13 | |
i32.store offset=28 | |
local.get 9 | |
i32.load offset=36 | |
local.tee 14 | |
if ;; label = @10 | |
local.get 14 | |
local.get 9 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 9 | |
i32.load offset=40 | |
local.tee 9 | |
if ;; label = @10 | |
local.get 9 | |
local.get 14 | |
i32.store offset=36 | |
end | |
local.get 10 | |
local.get 13 | |
i32.eq | |
br_if 3 (;@6;) | |
local.get 10 | |
local.set 9 | |
i32.const 1 | |
local.set 13 | |
br 1 (;@8;) | |
end | |
local.get 9 | |
i32.load offset=28 | |
local.set 9 | |
i32.const 0 | |
local.set 13 | |
end | |
i32.const 1 | |
local.get 9 | |
local.get 10 | |
i32.ne | |
local.get 13 | |
select | |
br_if 0 (;@7;) | |
end | |
end | |
local.get 11 | |
local.get 7 | |
local.get 8 | |
local.get 7 | |
i32.eq | |
select | |
local.set 7 | |
end | |
local.get 7 | |
i32.load offset=28 | |
local.tee 8 | |
local.get 7 | |
local.get 8 | |
select | |
local.set 10 | |
block ;; label = @5 | |
loop ;; label = @6 | |
block ;; label = @7 | |
local.get 7 | |
i32.load8_u offset=44 | |
i32.eqz | |
if ;; label = @8 | |
local.get 7 | |
f64.load offset=8 | |
local.set 20 | |
local.get 7 | |
i32.load offset=28 | |
local.tee 13 | |
f64.load offset=8 | |
local.set 21 | |
block ;; label = @9 | |
local.get 20 | |
local.get 21 | |
f64.eq | |
if ;; label = @10 | |
local.get 7 | |
f64.load offset=16 | |
local.get 13 | |
f64.load offset=16 | |
f64.eq | |
br_if 1 (;@9;) | |
end | |
local.get 7 | |
f64.load offset=16 | |
local.tee 22 | |
local.get 7 | |
i32.load offset=24 | |
local.tee 8 | |
f64.load offset=16 | |
f64.sub | |
local.get 21 | |
local.get 20 | |
f64.sub | |
f64.mul | |
local.get 20 | |
local.get 8 | |
f64.load offset=8 | |
f64.sub | |
local.get 13 | |
f64.load offset=16 | |
local.get 22 | |
f64.sub | |
f64.mul | |
f64.sub | |
global.get 1 | |
f64.eq | |
i32.eqz | |
br_if 1 (;@8;) | |
end | |
local.get 13 | |
local.get 7 | |
i32.load offset=24 | |
i32.store offset=24 | |
local.get 7 | |
i32.load offset=24 | |
local.tee 10 | |
local.get 13 | |
i32.store offset=28 | |
local.get 7 | |
i32.load offset=36 | |
local.tee 8 | |
if ;; label = @9 | |
local.get 8 | |
local.get 7 | |
i32.load offset=40 | |
i32.store offset=40 | |
end | |
local.get 7 | |
i32.load offset=40 | |
local.tee 7 | |
if ;; label = @9 | |
local.get 7 | |
local.get 8 | |
i32.store offset=36 | |
end | |
local.get 10 | |
local.get 13 | |
i32.eq | |
br_if 3 (;@5;) | |
local.get 10 | |
local.set 7 | |
i32.const 1 | |
local.set 8 | |
br 1 (;@7;) | |
end | |
local.get 7 | |
i32.load offset=28 | |
local.set 7 | |
i32.const 0 | |
local.set 8 | |
end | |
i32.const 1 | |
local.get 7 | |
local.get 10 | |
i32.ne | |
local.get 8 | |
select | |
br_if 0 (;@6;) | |
end | |
local.get 10 | |
local.set 13 | |
end | |
local.get 12 | |
i32.const 1 | |
i32.add | |
local.tee 12 | |
local.get 4 | |
i32.ne | |
if ;; label = @5 | |
local.get 13 | |
local.set 7 | |
br 1 (;@4;) | |
end | |
end | |
local.get 13 | |
local.set 7 | |
end | |
local.get 5 | |
i32.eqz | |
br_if 0 (;@2;) | |
local.get 5 | |
call 3 | |
end | |
local.get 3 | |
local.get 6 | |
i32.const 31 | |
i32.shr_u | |
i32.store8 offset=16 | |
local.get 6 | |
i32.const 0 | |
i32.lt_s | |
if ;; label = @2 | |
local.get 7 | |
i32.load offset=28 | |
local.set 6 | |
local.get 7 | |
f64.load offset=8 | |
local.set 20 | |
local.get 3 | |
local.get 20 | |
f64.store offset=32 | |
local.get 3 | |
local.get 20 | |
f64.store offset=24 | |
local.get 7 | |
f64.load offset=16 | |
local.set 20 | |
local.get 3 | |
local.get 20 | |
f64.store offset=48 | |
local.get 3 | |
local.get 20 | |
f64.store offset=40 | |
loop ;; label = @3 | |
local.get 6 | |
f64.load offset=8 | |
local.set 20 | |
local.get 6 | |
f64.load offset=16 | |
local.set 22 | |
local.get 3 | |
f64.load offset=24 | |
local.set 23 | |
local.get 3 | |
local.get 20 | |
local.get 23 | |
local.get 20 | |
local.get 23 | |
f64.lt | |
select | |
local.tee 24 | |
f64.store offset=24 | |
local.get 3 | |
f64.load offset=40 | |
local.set 23 | |
local.get 3 | |
local.get 22 | |
local.get 23 | |
local.get 22 | |
local.get 23 | |
f64.lt | |
select | |
local.tee 23 | |
f64.store offset=40 | |
local.get 3 | |
f64.load offset=32 | |
local.set 21 | |
local.get 3 | |
local.get 20 | |
local.get 21 | |
local.get 21 | |
local.get 20 | |
f64.lt | |
select | |
local.tee 20 | |
f64.store offset=32 | |
local.get 3 | |
f64.load offset=48 | |
local.set 21 | |
local.get 3 | |
local.get 22 | |
local.get 21 | |
local.get 21 | |
local.get 22 | |
f64.lt | |
select | |
local.tee 22 | |
f64.store offset=48 | |
local.get 6 | |
i32.load offset=28 | |
local.tee 6 | |
local.get 7 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
local.get 22 | |
local.get 23 | |
f64.sub | |
local.tee 23 | |
local.get 20 | |
local.get 24 | |
f64.sub | |
local.tee 20 | |
local.get 20 | |
local.get 23 | |
f64.lt | |
select | |
local.tee 20 | |
global.get 1 | |
f64.eq | |
if (result f64) ;; label = @3 | |
global.get 1 | |
else | |
f64.const 0x1p+0 (;=1;) | |
local.get 20 | |
f64.div | |
end | |
local.set 20 | |
local.get 3 | |
local.get 20 | |
f64.store offset=56 | |
end | |
local.get 3 | |
local.get 7 | |
call 16 | |
local.get 3 | |
i32.load offset=72 | |
local.set 4 | |
local.get 3 | |
i32.load offset=76 | |
local.tee 5 | |
local.get 3 | |
i32.load offset=80 | |
local.tee 6 | |
i32.ne | |
if ;; label = @2 | |
loop ;; label = @3 | |
local.get 5 | |
i32.load | |
call 3 | |
i32.const 4 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
local.get 6 | |
i32.ne | |
br_if 0 (;@3;) | |
end | |
end | |
local.get 3 | |
local.get 3 | |
i32.load offset=76 | |
i32.store offset=80 | |
local.get 3 | |
local.get 4 | |
i32.const 1 | |
local.get 4 | |
i32.const 1 | |
i32.gt_u | |
select | |
local.tee 4 | |
i32.store offset=72 | |
local.get 3 | |
i32.const 0 | |
i32.store offset=64 | |
local.get 3 | |
local.get 4 | |
i32.store offset=68 | |
end | |
local.get 0 | |
local.get 3 | |
i32.load | |
i32.store | |
local.get 0 | |
local.get 3 | |
i32.load offset=4 | |
i32.store offset=4 | |
local.get 0 | |
local.get 3 | |
i32.load offset=8 | |
i32.store offset=8 | |
local.get 3 | |
i32.const 0 | |
i32.store offset=8 | |
local.get 3 | |
i64.const 0 | |
i64.store align=4 | |
local.get 3 | |
i32.load offset=72 | |
local.set 4 | |
local.get 3 | |
i32.load offset=76 | |
local.tee 5 | |
local.get 3 | |
i32.load offset=80 | |
local.tee 6 | |
i32.ne | |
if ;; label = @1 | |
loop ;; label = @2 | |
local.get 5 | |
i32.load | |
call 3 | |
i32.const 4 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
local.get 6 | |
i32.ne | |
br_if 0 (;@2;) | |
end | |
end | |
local.get 3 | |
i32.load offset=76 | |
local.tee 5 | |
local.get 3 | |
local.get 5 | |
i32.store offset=80 | |
local.get 3 | |
local.get 4 | |
i32.const 1 | |
local.get 4 | |
i32.const 1 | |
i32.gt_u | |
select | |
local.tee 4 | |
i32.store offset=72 | |
local.get 3 | |
i32.const 0 | |
i32.store offset=64 | |
local.get 3 | |
local.get 4 | |
i32.store offset=68 | |
if ;; label = @1 | |
local.get 3 | |
local.get 5 | |
i32.store offset=80 | |
local.get 5 | |
call 3 | |
end | |
local.get 3 | |
i32.load | |
local.tee 4 | |
if ;; label = @1 | |
local.get 3 | |
local.get 4 | |
i32.store offset=4 | |
local.get 4 | |
call 3 | |
end | |
global.set 0) | |
(func (;24;) (type 0) | |
i32.const 0 | |
i32.const 0 | |
i32.load offset=1049616 | |
i32.store offset=1049620) | |
(func (;25;) (type 3) (param i32 i32) | |
local.get 0 | |
local.get 1 | |
i32.load | |
i32.store) | |
(func (;26;) (type 3) (param i32 i32) | |
local.get 0 | |
local.get 1 | |
i32.load offset=4 | |
i32.store) | |
(func (;27;) (type 2) (param i32) | |
local.get 0 | |
i32.const 4 | |
local.get 0 | |
i32.load | |
i32.add | |
i32.store) | |
(func (;28;) (type 6) (param i32 i32 i32) (result i32) | |
(local i32 i32 i32 i32 i32) | |
local.get 2 | |
local.get 1 | |
i32.add | |
local.set 3 | |
block ;; label = @1 | |
local.get 0 | |
i32.const 3 | |
i32.and | |
if ;; label = @2 | |
local.get 0 | |
local.get 1 | |
local.set 5 | |
local.set 4 | |
loop ;; label = @3 | |
local.get 5 | |
local.get 3 | |
i32.eq | |
br_if 2 (;@1;) | |
local.get 4 | |
local.get 5 | |
i32.load8_u | |
i32.store8 | |
i32.const 1 | |
local.get 5 | |
i32.add | |
local.set 5 | |
i32.const 1 | |
local.get 4 | |
i32.add | |
local.tee 4 | |
i32.const 3 | |
i32.and | |
br_if 0 (;@3;) | |
end | |
else | |
local.get 1 | |
local.get 0 | |
local.set 4 | |
local.set 5 | |
end | |
local.get 5 | |
local.tee 6 | |
i32.const -64 | |
local.get 3 | |
i32.add | |
local.tee 7 | |
i32.le_s | |
if ;; label = @2 | |
loop ;; label = @3 | |
local.get 4 | |
local.get 5 | |
i64.load align=4 | |
i64.store align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=8 align=4 | |
i64.store offset=8 align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=16 align=4 | |
i64.store offset=16 align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=24 align=4 | |
i64.store offset=24 align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=32 align=4 | |
i64.store offset=32 align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=40 align=4 | |
i64.store offset=40 align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=48 align=4 | |
i64.store offset=48 align=4 | |
local.get 4 | |
local.get 5 | |
i64.load offset=56 align=4 | |
i64.store offset=56 align=4 | |
i32.const 64 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
i32.const 64 | |
local.get 4 | |
i32.add | |
local.set 4 | |
local.get 7 | |
i32.le_s | |
br_if 0 (;@3;) | |
end | |
local.get 5 | |
local.set 6 | |
end | |
i32.const -8 | |
local.get 3 | |
i32.add | |
local.set 7 | |
local.get 6 | |
local.get 7 | |
i32.le_s | |
if ;; label = @2 | |
loop ;; label = @3 | |
local.get 4 | |
local.get 5 | |
i64.load align=4 | |
i64.store align=4 | |
i32.const 8 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
i32.const 8 | |
local.get 4 | |
i32.add | |
local.set 4 | |
local.get 7 | |
i32.le_s | |
br_if 0 (;@3;) | |
end | |
end | |
local.get 5 | |
local.get 3 | |
i32.eq | |
br_if 0 (;@1;) | |
loop ;; label = @2 | |
local.get 4 | |
local.get 5 | |
i32.load8_u | |
i32.store8 | |
i32.const 1 | |
local.get 5 | |
i32.add | |
local.tee 5 | |
local.get 3 | |
i32.eq | |
br_if 1 (;@1;) | |
i32.const 1 | |
local.get 4 | |
i32.add | |
local.set 4 | |
br 0 (;@2;) | |
end | |
end | |
local.get 0) | |
(table (;0;) 3 3 funcref) | |
(memory (;0;) 17 128) | |
(global (;0;) (mut i32) (i32.const 1048576)) | |
(global (;1;) f64 (f64.const 0x0p+0 (;=0;))) | |
(global (;2;) (mut i32) (i32.const 0)) | |
(global (;3;) (mut i32) (i32.const 1049632)) | |
(global (;4;) (mut i32) (i32.const 0)) | |
(global (;5;) (mut i32) (i32.const 1049632)) | |
(global (;6;) f64 (f64.const 0x1.fffcp+14 (;=32767;))) | |
(global (;7;) (mut i32) (i32.const -1)) | |
(global (;8;) i64 (i64.const 4503668347895824)) | |
(global (;9;) (mut i32) (i32.const 0)) | |
(global (;10;) (mut i32) (i32.const 0)) | |
(global (;11;) f64 (f64.const 0x1p-1 (;=0.5;))) | |
(export "bq" (memory 0)) | |
(export "aw" (func 22)) | |
(export "aN" (func 21)) | |
(export "aL" (func 20)) | |
(export "ao" (func 17)) | |
(export "aH" (func 23)) | |
(export "aG" (func 24)) | |
(export "aE" (func 25)) | |
(export "aD" (func 26)) | |
(export "ag" (func 18)) | |
(export "ae" (func 7)) | |
(export "aT" (func 27)) | |
(export "ax" (func 19)) | |
(elem (;0;) (i32.const 0) func 2 22 7) | |
(data (;0;) (i32.const 1048592) "\08\00\10\00\08\00\10\00\10\00\10\00\10\00\10\00\18\00\10\00\18\00\10\00 \00\10\00 \00\10\00(\00\10\00(\00\10\000\00\10\000\00\10\008\00\10\008\00\10\00@\00\10\00@\00\10\00H\00\10\00H\00\10\00P\00\10\00P\00\10\00X\00\10\00X\00\10\00`\00\10\00`\00\10\00h\00\10\00h\00\10\00p\00\10\00p\00\10\00x\00\10\00x\00\10\00\80\00\10\00\80\00\10\00\88\00\10\00\88\00\10\00\90\00\10\00\90\00\10\00\98\00\10\00\98\00\10\00\a0\00\10\00\a0\00\10\00\a8\00\10\00\a8\00\10\00\b0\00\10\00\b0\00\10\00\b8\00\10\00\b8\00\10\00\c0\00\10\00\c0\00\10\00\c8\00\10\00\c8\00\10\00\d0\00\10\00\d0\00\10\00\d8\00\10\00\d8\00\10\00\e0\00\10\00\e0\00\10\00\e8\00\10\00\e8\00\10\00\f0\00\10\00\f0\00\10\00\f8\00\10\00\f8\00\10\00\00\01\10\00\00\01\10\00\08\01\10\00\08\01\10\00\10\01\10\00\10\01\10\00\18\01\10\00\18\01\10\00 \01\10\00 \01\10\00(\01\10\00(\01\10\000\01\10\000\01\10\008\01\10\008\01\10\00@\01\10\00@\01\10\00H\01\10\00H\01\10\00P\01\10\00P\01\10\00X\01\10\00X\01\10\00`\01\10\00`\01\10\00h\01\10\00h\01\10\00p\01\10\00p\01\10\00x\01\10\00x\01\10\00\80\01\10\00\80\01\10\00\88\01\10\00\88\01\10\00\90\01\10\00\90\01\10\00\98\01\10\00\98\01\10\00\a0\01\10\00\a0\01\10\00\a8\01\10\00\a8\01\10\00\b0\01\10\00\b0\01\10\00\b8\01\10\00\b8\01\10\00\c0\01\10\00\c0\01\10\00\c8\01\10\00\c8\01\10\00\d0\01\10\00\d0\01\10\00\d8\01\10\00\d8\01\10\00\e0\01\10\00\e0\01\10\00\e8\01\10\00\e8\01\10\00\f0\01\10\00\f0\01\10\00\f8\01\10\00\f8\01\10\00\00\02\10\00\00\02\10\00\08\02\10\00\08\02\10\00\10\02\10\00\10\02\10\00\18\02\10\00\18\02\10\00 \02\10\00 \02\10\00(\02\10\00(\02\10\000\02\10\000\02\10\008\02\10\008\02\10\00@\02\10\00@\02\10\00H\02\10\00H\02\10\00P\02\10\00P\02\10\00X\02\10\00X\02\10\00`\02\10\00`\02\10\00h\02\10\00h\02\10\00p\02\10\00p\02\10\00x\02\10\00x\02\10\00\80\02\10\00\80\02\10\00\88\02\10\00\88\02\10\00\90\02\10\00\90\02\10\00\98\02\10\00\98\02\10\00\a0\02\10\00\a0\02\10\00\a8\02\10\00\a8\02\10\00\b0\02\10\00\b0\02\10\00\b8\02\10\00\b8\02\10\00\c0\02\10\00\c0\02\10\00\c8\02\10\00\c8\02\10\00\d0\02\10\00\d0\02\10\00\d8\02\10\00\d8\02\10\00\e0\02\10\00\e0\02\10\00\e8\02\10\00\e8\02\10\00\f0\02\10\00\f0\02\10\00\f8\02\10\00\f8\02\10\00\00\03\10\00\00\03\10\00\08\03\10\00\08\03\10\00\10\03\10\00\10\03\10\00\18\03\10\00\18\03\10\00 \03\10\00 \03\10\00(\03\10\00(\03\10\000\03\10\000\03\10\008\03\10\008\03\10\00@\03\10\00@\03\10\00H\03\10\00H\03\10\00P\03\10\00P\03\10\00X\03\10\00X\03\10\00`\03\10\00`\03\10\00h\03\10\00h\03\10\00p\03\10\00p\03\10\00x\03\10\00x\03\10\00\80\03\10\00\80\03\10\00\88\03\10\00\88\03\10\00\90\03\10\00\90\03\10\00\98\03\10\00\98\03\10\00\a0\03\10\00\a0\03\10\00\a8\03\10\00\a8\03\10\00\b0\03\10\00\b0\03\10\00\b8\03\10\00\b8\03\10\00\c0\03\10\00\c0\03\10\00\c8\03\10\00\c8\03\10\00\d0\03\10\00\d0\03\10\00\d8\03\10\00\d8\03\10\00\e0\03\10\00\e0\03\10\00\e8\03\10\00\e8\03\10\00\f0\03\10\00\f0\03\10\00\f8\03\10\00\f8\03\10\00\00\04\10\00\00\04\10")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
original - typical OSM building (15 vertices): x 1,077,113 ops/sec ±0.58% (93 runs sampled) | |
cheerpified - typical OSM building (15 vertices): x 490,529 ops/sec ±2.87% (78 runs sampled) | |
original - dude shape (94 vertices): x 41,205 ops/sec ±3.00% (84 runs sampled) | |
cheerpified - dude shape (94 vertices): x 63,367 ops/sec ±4.73% (77 runs sampled) | |
original - dude shape with holes (104 vertices): x 19,616 ops/sec ±2.19% (84 runs sampled) | |
cheerpified - dude shape with holes (104 vertices): x 36,048 ops/sec ±3.32% (85 runs sampled) | |
original - US border (126 vertices): x 27,599 ops/sec ±2.80% (89 runs sampled) | |
cheerpified - US border (126 vertices): x 41,821 ops/sec ±2.04% (87 runs sampled) | |
original - rain (2693 vertices): x 593 ops/sec ±1.81% (91 runs sampled) | |
cheerpified - rain (2693 vertices): x 808 ops/sec ±1.25% (92 runs sampled) | |
original - hourglass (6 vertices): x 931,349 ops/sec ±0.80% (96 runs sampled) | |
cheerpified - hourglass (6 vertices): x 983,514 ops/sec ±1.08% (95 runs sampled) | |
original - complex OSM water (2523 vertices): x 568 ops/sec ±0.86% (92 runs sampled) | |
cheerpified - complex OSM water (2523 vertices): x 907 ops/sec ±0.85% (95 runs sampled) | |
original - complex OSM water2 (1235 vertices): x 397 ops/sec ±0.71% (92 runs sampled) | |
cheerpified - complex OSM water2 (1235 vertices): x 469 ops/sec ±0.95% (92 runs sampled) | |
original - complex OSM water3 (212 vertices): x 4,559 ops/sec ±1.52% (84 runs sampled) | |
cheerpified - complex OSM water3 (212 vertices): x 7,258 ops/sec ±1.16% (95 runs sampled) | |
original - complex OSM water4 (720 vertices): x 1,170 ops/sec ±1.18% (93 runs sampled) | |
cheerpified - complex OSM water4 (720 vertices): x 1,591 ops/sec ±2.34% (91 runs sampled) | |
original - huge OSM water (5667 vertices): x 37.52 ops/sec ±4.34% (50 runs sampled) | |
cheerpified - huge OSM water (5667 vertices): x 37.60 ops/sec ±2.11% (65 runs sampled) | |
original - huge OSM water2 (5488 vertices): x 16.13 ops/sec ±2.03% (44 runs sampled) | |
cheerpified - huge OSM water2 (5488 vertices): x 15.51 ops/sec ±1.52% (43 runs sampled) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// to be compiled with | |
// /opt/cheerp/bin/clang++ wrapper.cpp -o earcut_cheerp.js -O3 | |
#include "earcut.hpp" | |
#include <cheerp/clientlib.h> | |
namespace [[cheerp::genericjs]] client | |
{ | |
struct FloatArrayLike : public Object | |
{ | |
uint32_t get_length() const; | |
double operator[](uint32_t index) const; | |
}; | |
struct IntArrayLike : public Object | |
{ | |
uint32_t get_length() const; | |
int operator[](uint32_t index) const; | |
}; | |
} | |
std::vector<std::tuple<double,double>> data; | |
class View | |
{ | |
const int b; | |
const int e; | |
public: | |
View(int begin, int end) | |
: b(begin), e(end) | |
{ | |
} | |
int size() const | |
{ | |
return e-b; | |
} | |
const std::tuple<double,double>& operator[](int i) const | |
{ | |
return data[b+i]; | |
} | |
typedef const std::tuple<double,double> value_type; | |
}; | |
[[cheerp::jsexport]] | |
[[cheerp::genericjs]] | |
client::Int32Array* earcut_cheerp(client::FloatArrayLike* input, client::IntArrayLike* holes) | |
{ | |
data.resize(input->get_length() / 2); | |
const int t = input->get_length(); | |
for (int i=0, j=0; i<t; i+=2, j++) | |
{ | |
std::get<0>(data[j]) = input->operator[](i); | |
std::get<1>(data[j]) = input->operator[](i+1); | |
} | |
std::vector<View> polygons; | |
int lastInserted = 0; | |
if (holes) | |
{ | |
uint32_t numHoles = holes->get_length(); | |
for (int i=0; i<numHoles; i++) | |
{ | |
int next = (*holes)[i]; | |
polygons.push_back(View(lastInserted, next)); | |
lastInserted = next; | |
} | |
} | |
polygons.push_back(View(lastInserted, data.size())); | |
auto solution = mapbox::earcut(polygons); | |
data.clear(); | |
auto indexes = new client::Int32Array(solution.size()); | |
int i=0; | |
for (auto x : solution) | |
indexes->operator[](i++) = x; | |
return indexes; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment