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 00000000..c1ac6e8a Binary files /dev/null and b/addons/xterm-addon-image/inwasm-builds/out/base64.wasm.js/decode/final.wasm differ 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)))