From 2da616e0ff559264b32ae42eea76fe54ec254d4c Mon Sep 17 00:00:00 2001 From: Peter Salomonsen Date: Sun, 19 Mar 2023 20:27:19 +0100 Subject: [PATCH] allocate data segments for math --- templates/wasm/player.wat | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/templates/wasm/player.wat b/templates/wasm/player.wat index b274e50..290d808 100644 --- a/templates/wasm/player.wat +++ b/templates/wasm/player.wat @@ -115,6 +115,17 @@ {{- end}} {{- .SetBlockLabel "su_outputend"}} +{{- /* +;------------------------------------------------------------------------------- +; Pow function ( initialized below ) +;------------------------------------------------------------------------------- +*/}} +{{- .Align}} + +{{- .SetBlockLabel "math_pow_1"}} +{{- .Block 262}} +{{- .SetBlockLabel "math_pow_2"}} +{{- .Block 240}} ;;------------------------------------------------------------------------------ ;; Import the difficult math functions from javascript @@ -185,7 +196,7 @@ i32.and i32.const 4 i32.shl - i32.const 1024 + i32.const {{index .Labels "math_pow_1"}} i32.add local.set $4 local.get $1 @@ -231,8 +242,6 @@ end ) -(data (i32.const 100024) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") -(data (i32.const 100286) "\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 f64) @@ -544,7 +553,7 @@ i32.and i32.const 4 i32.shl - i32.const 100024 + i32.const {{index .Labels "math_pow_1"}} i32.add local.tee $2 f64.load @@ -651,7 +660,7 @@ i32.and i32.const 3 i32.shl - i32.const 100280 + i32.const {{add (index .Labels "math_pow_1") 256}} i32.add i64.load local.get $4 @@ -671,6 +680,7 @@ local.get $1 call $~lib/math/NativeMathf.pow ) + (export "pow" (func $pow)) (func $sin (param $0 f32) (result f32) (local $1 f32) @@ -729,7 +739,7 @@ {{- if .HasOp "delay"}} (global $delayWRK (mut i32) (i32.const 0)) {{- end}} -(global $globaltick (mut i32) (i32.const 0)) +(global $globaltick (export "tick") (mut i32) (i32.const 0)) (global $row (mut i32) (i32.const 0)) (global $pattern (mut i32) (i32.const 0)) (global $sample (mut i32) (i32.const 0)) @@ -954,9 +964,10 @@ {{template "patch.wat" .}} - ;; All data is collected into a byte buffer and emitted at once (data (i32.const 0) "{{range .Data}}\{{. | printf "%02x"}}{{end}}") +(data (i32.const {{index .Labels "math_pow_1"}}) "\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") +(data (i32.const {{index .Labels "math_pow_2"}}) "\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") ;;(data (i32.const 8388610) "\52\49\46\46\b2\eb\0c\20\57\41\56\45\66\6d\74\20\12\20\20\20\03\20\02\20\44\ac\20\20\20\62\05\20\08\20\20\20\20\20\66\61\63\74\04\20\20\20\e0\3a\03\20\64\61\74\61\80\eb\0c\20")