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 00000000..b4a652c8 --- /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 zcmZQbEY4+QU|?WmWlUgTtY_k9WKPX1W6Mp=%`d8CVqj!uW@2Dq=Vf9}Nlj*8U{1|T zVPNFi$jr2kk&(6Du|q?HiNSG!MwTL@V+)9_#NgNfq8%Bt9cv1em^@e<6qvvYm=z!j z8JHau7<3t!9hpirm>Lv7Y$ga>0>oy7umwPD1_+y@sHjMZ#qt0D|Loo@4vvic+zN~e zEM`m$3XG1-S&EDb42~>WN(>6jp1cg)+>R|83QT5942~Td3XF~mG_pZ#2JU~1jBNEx z4iMKV!Cjl}$m$0&Q;}JKftL{?3-gO21GgiiBC`Uc0zoMdKVVPT$<*>XppGMpu=C1Sd^Yx5}%fuSW;S)TFj))pIcgz an3R*Mo1T-Ol$cYj%~710o~N5yQ33#*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 00000000..d7832f45 --- /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)))