From 0027b27ea3a8d70061cb153d1f242c146650ebe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Breitbart?= Date: Tue, 27 Jun 2023 13:49:49 +0200 Subject: [PATCH] add wasm builds --- .../out/base64.wasm.js/decode/definition.json | 1 + .../out/base64.wasm.js/decode/final.wasm | Bin 0 -> 654 bytes .../out/base64.wasm.js/decode/final.wat | 210 ++++++++++++++++++ 3 files changed, 211 insertions(+) create mode 100644 addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/definition.json create mode 100644 addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wasm create mode 100644 addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wat diff --git a/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/definition.json b/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/definition.json new file mode 100644 index 000000000..b4a652c8e --- /dev/null +++ b/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/definition.json @@ -0,0 +1 @@ +{"def":{"name":"decode","type":0,"mode":1,"srctype":"Clang-C","imports":{"env":{"memory":{}}},"exports":{},"compile":{"switches":["-Wl,-z,stack-size=0","-Wl,--stack-first"]},"code":"\n typedef struct {\n unsigned int wp;\n unsigned int sp;\n unsigned int dp;\n unsigned int e_size;\n unsigned int b_size;\n unsigned int dummy[3];\n unsigned char data[0];\n } State;\n\n unsigned int *D0 = (unsigned int *) 1024;\n unsigned int *D1 = (unsigned int *) 2048;\n unsigned int *D2 = (unsigned int *) 3072;\n unsigned int *D3 = (unsigned int *) 4096;\n State *state = (State *) 5120;\n\n __attribute__((noinline)) int dec() {\n unsigned int nsp = (state->wp - 1) & ~3;\n unsigned char *src = state->data + state->sp;\n unsigned char *end = state->data + nsp;\n unsigned char *dst = state->data + state->dp;\n unsigned int accu;\n\n while (src < end) {\n if ((accu = D0[src[0]] | D1[src[1]] | D2[src[2]] | D3[src[3]]) >> 24) return 1;\n *((unsigned int *) dst) = accu;\n dst += 3;\n src += 4;\n }\n state->sp = nsp;\n state->dp = dst - state->data;\n return 0;\n }\n\n int end() {\n int rem = state->wp - state->sp;\n if (rem > 4 && dec()) return 1;\n rem = state->wp - state->sp;\n if (rem < 2) return 1;\n\n unsigned char *src = state->data + state->sp;\n unsigned int accu = D0[src[0]] | D1[src[1]];\n int dp = 1;\n if (rem > 2 && src[2] != 61) {\n accu |= D2[src[2]];\n dp++;\n }\n if (rem == 4 && src[3] != 61) {\n accu |= D3[src[3]];\n dp++;\n }\n if (accu >> 24) return 1;\n *((unsigned int *) (state->data + state->dp)) = accu;\n state->dp += dp;\n return state->dp != state->b_size;\n }\n "},"memorySettings":{"descriptor":{"initial":1,"shared":false},"mode":"imported"},"srcDef":"{\n name: 'decode',\n type: 0 /* OutputType.INSTANCE */,\n mode: 1 /* OutputMode.SYNC */,\n srctype: 'Clang-C',\n imports: {\n env: { memory: new WebAssembly.Memory({ initial: 1 }) }\n },\n exports: {\n dec: () => 0,\n end: () => 0\n },\n compile: {\n switches: ['-Wl,-z,stack-size=0', '-Wl,--stack-first']\n },\n code: `\n typedef struct {\n unsigned int wp;\n unsigned int sp;\n unsigned int dp;\n unsigned int e_size;\n unsigned int b_size;\n unsigned int dummy[3];\n unsigned char data[0];\n } State;\n\n unsigned int *D0 = (unsigned int *) ${256 /* P32.D0 */ * 4};\n unsigned int *D1 = (unsigned int *) ${512 /* P32.D1 */ * 4};\n unsigned int *D2 = (unsigned int *) ${768 /* P32.D2 */ * 4};\n unsigned int *D3 = (unsigned int *) ${1024 /* P32.D3 */ * 4};\n State *state = (State *) ${1280 /* P32.STATE */ * 4};\n\n __attribute__((noinline)) int dec() {\n unsigned int nsp = (state->wp - 1) & ~3;\n unsigned char *src = state->data + state->sp;\n unsigned char *end = state->data + nsp;\n unsigned char *dst = state->data + state->dp;\n unsigned int accu;\n\n while (src < end) {\n if ((accu = D0[src[0]] | D1[src[1]] | D2[src[2]] | D3[src[3]]) >> 24) return 1;\n *((unsigned int *) dst) = accu;\n dst += 3;\n src += 4;\n }\n state->sp = nsp;\n state->dp = dst - state->data;\n return 0;\n }\n\n int end() {\n int rem = state->wp - state->sp;\n if (rem > 4 && dec()) return 1;\n rem = state->wp - state->sp;\n if (rem < 2) return 1;\n\n unsigned char *src = state->data + state->sp;\n unsigned int accu = D0[src[0]] | D1[src[1]];\n int dp = 1;\n if (rem > 2 && src[2] != 61) {\n accu |= D2[src[2]];\n dp++;\n }\n if (rem == 4 && src[3] != 61) {\n accu |= D3[src[3]];\n dp++;\n }\n if (accu >> 24) return 1;\n *((unsigned int *) (state->data + state->dp)) = accu;\n state->dp += dp;\n return state->dp != state->b_size;\n }\n `\n}","hash":""} \ No newline at end of file diff --git a/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wasm b/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c1ac6e8ad7ef12e6efe50ac5a5979513c0932ee6 GIT binary patch literal 654 zcmX|7O>fgc5S^K|+kk7OM~)kxjEWPdjgl6rQufjmA#vmi{@A2VoTS)JL?xv3z=0z_ zp}-x9KS-F((p*+=XWqPdZy>4W2mt8fN5Bm=QRv0`V6NxO@}2;NAb>-kM6NRc?&W~b z{|Nex=x)@vFeFfq;k1S7tHA-Nhg}V4>dU8quAQNz9YIJ-1TmBlflyS3^dJo;i(eRw z79Sf77B|YW3>>xHZV%r&LxoLGqICKM5|!Z1EbL4Jkm8LGp2t2Uag)7q|1q2y4BlVF zgAEO>yI}8jrrdW%vn7tfN85eM(gM#kcp1!iKVAF4tA2#jy)$-cvhDwkvV}C1%)Q!) z(h(X7GGTs(fvYY@TqiELPmz&FJf3hyMm>UGA)oN_ia(@qYDO(nO3Orh2jArTe|w2G zuB}MoTbSd3`feDbmhhzTVEyc_T;{7xmlYl{%yd=hJWB7;&5C3(dEXth<8~~=o4UTM zUUxc^+xljewzK8DQxt3aL_9dvSuMwBX}@=VKFD>y8=uBme9?=0=~(NFL3%n)^875$ u$K5!239p)UQciUJVXTvSRqBdPn)6kiq=k+q#WGEb>ZDQKP8N~=T>k@{5{exF literal 0 HcmV?d00001 diff --git a/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wat b/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wat new file mode 100644 index 000000000..d7832f451 --- /dev/null +++ b/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wat @@ -0,0 +1,210 @@ +(module + (type (;0;) (func (result i32))) + (import "env" "memory" (memory (;0;) 1)) + (func (;0;) (type 0) (result i32) + (local i32 i32 i32 i32 i32) + i32.const 5128 + i32.load + i32.const 5152 + i32.add + local.set 1 + i32.const 5124 + i32.load + local.tee 0 + i32.const 5120 + i32.load + i32.const 1 + i32.sub + i32.const -4 + i32.and + local.tee 2 + i32.lt_s + if ;; label = @1 + local.get 2 + i32.const 5152 + i32.add + local.set 3 + local.get 0 + i32.const 5152 + i32.add + local.set 0 + loop ;; label = @2 + local.get 0 + i32.load8_u offset=3 + i32.const 2 + i32.shl + i32.load offset=4096 + local.get 0 + i32.load8_u offset=2 + i32.const 2 + i32.shl + i32.load offset=3072 + local.get 0 + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.load offset=2048 + local.get 0 + i32.load8_u + i32.const 2 + i32.shl + i32.load offset=1024 + i32.or + i32.or + i32.or + local.tee 4 + i32.const 16777215 + i32.gt_u + if ;; label = @3 + i32.const 1 + return + end + local.get 1 + local.get 4 + i32.store + local.get 1 + i32.const 3 + i32.add + local.set 1 + local.get 0 + i32.const 4 + i32.add + local.tee 0 + local.get 3 + i32.lt_u + br_if 0 (;@2;) + end + end + i32.const 5124 + local.get 2 + i32.store + i32.const 5128 + local.get 1 + i32.const 5152 + i32.sub + i32.store + i32.const 0) + (func (;1;) (type 0) (result i32) + (local i32 i32 i32 i32 i32 i32) + block ;; label = @1 + i32.const 5120 + i32.load + local.tee 1 + i32.const 5124 + i32.load + local.tee 0 + i32.sub + i32.const 5 + i32.ge_s + if ;; label = @2 + i32.const 1 + local.set 3 + call 0 + br_if 1 (;@1;) + i32.const 5120 + i32.load + local.set 1 + i32.const 5124 + i32.load + local.set 0 + end + i32.const 1 + local.set 3 + local.get 1 + local.get 0 + i32.sub + local.tee 4 + i32.const 2 + i32.lt_s + br_if 0 (;@1;) + local.get 0 + i32.const 5153 + i32.add + i32.load8_u + i32.const 2 + i32.shl + i32.load offset=2048 + local.get 0 + i32.const 5152 + i32.add + i32.load8_u + i32.const 2 + i32.shl + i32.load offset=1024 + i32.or + local.set 1 + block ;; label = @2 + local.get 4 + i32.const 2 + i32.eq + if ;; label = @3 + i32.const 1 + local.set 2 + br 1 (;@2;) + end + i32.const 1 + local.set 2 + local.get 0 + i32.load8_u offset=5154 + local.tee 5 + i32.const 61 + i32.ne + if ;; label = @3 + i32.const 2 + local.set 2 + local.get 5 + i32.const 2 + i32.shl + i32.load offset=3072 + local.get 1 + i32.or + local.set 1 + end + local.get 4 + i32.const 4 + i32.ne + br_if 0 (;@2;) + local.get 0 + i32.load8_u offset=5155 + local.tee 0 + i32.const 61 + i32.eq + br_if 0 (;@2;) + local.get 2 + i32.const 1 + i32.add + local.set 2 + local.get 0 + i32.const 2 + i32.shl + i32.load offset=4096 + local.get 1 + i32.or + local.set 1 + end + local.get 1 + i32.const 16777215 + i32.gt_u + br_if 0 (;@1;) + i32.const 5128 + i32.load + i32.const 5152 + i32.add + local.get 1 + i32.store + i32.const 5128 + i32.const 5128 + i32.load + local.get 2 + i32.add + local.tee 0 + i32.store + local.get 0 + i32.const 5136 + i32.load + i32.ne + local.set 3 + end + local.get 3) + (export "dec" (func 0)) + (export "end" (func 1)))