From 53fe1938688233a0a48fdaf86d5a17dfbf1fac38 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 17 Jun 2026 12:39:45 +0100 Subject: [PATCH] Use log2 for the alignment, remove unneeded code --- core/rexcode/wasm/decoder.odin | 2 ++ core/rexcode/wasm/encoder.odin | 7 +++- core/rexcode/wasm/printer.odin | 64 ++++++---------------------------- 3 files changed, 19 insertions(+), 54 deletions(-) diff --git a/core/rexcode/wasm/decoder.odin b/core/rexcode/wasm/decoder.odin index c58516d6e..30a4abebb 100644 --- a/core/rexcode/wasm/decoder.odin +++ b/core/rexcode/wasm/decoder.odin @@ -166,6 +166,8 @@ decode_one :: proc( // See: https://webassembly.github.io/spec/core/binary/instructions.html#memory-instructions align := read_uleb(data, &off) or_return offset := read_uleb(data, &off) or_return + // NOTE(bill) this appears to be stored as log2 even though the docs say otherwise + align = 1< 0; i += 1 { - buf[i] = '0' + u8(n % 10) - n /= 10 - } - for j := i - 1; j >= 0; j -= 1 { - strings.write_byte(sb, buf[j]) - } -} - -write_signed_decimal :: proc(sb: ^strings.Builder, v: i64) { - if v < 0 { - strings.write_byte(sb, '-') - write_decimal_u64(sb, u64(-(v + 1)) + 1) - } else { - write_decimal_u64(sb, u64(v)) - } -} - -write_decimal_u64 :: proc(sb: ^strings.Builder, v: u64) { - if v == 0 { - strings.write_byte(sb, '0') - return - } - buf: [20]u8 - i := 0 - for n := v; n > 0; i += 1 { - buf[i] = '0' + u8(n % 10) - n /= 10 - } - for j := i - 1; j >= 0; j -= 1 { - strings.write_byte(sb, buf[j]) - } -} + strings.write_u64(sb, u64(label_id)) +} \ No newline at end of file