Files
Odin/core
Brendan Punsky 49787b7de4 rexcode/x86: buffer-sizing helpers for encode and decode
Give callers a clean way to pre-size their own buffers so the encode/decode
hot paths never allocate or resize, instead of decode() silently reserving the
caller's arrays itself (removed). The library allocates nothing -- these only
grow the caller's own dynamic arrays, and only when not already big enough
(Odin's reserve no-ops when capacity already suffices).

Size-only helpers (caller manages its own memory), keyed off the input slice:
  encode_max_code_size(instructions)            - exact code bytes
  encode_max_relocation_count(instructions)     - exact reloc upper bound
  decode_max_instruction_count(data)            - exact ceiling (1 byte/inst)
  decode_estimate_instruction_count(data)       - typical estimate (~3 B/inst)

Reserve helpers (pre-size the caller's dynamic arrays; nil to skip an array):
  encode_reserve(code, relocs, instructions)
      code is a [dynamic]u8 grown by LENGTH (so code[:] is a valid emit
      target); relocs reserved by capacity on top of existing elements.
  decode_reserve(instructions, inst_info, label_defs, data, exact=false)
      reserves capacity on top of existing; exact=true for the ceiling.

Error arrays grow only on the failure path, so they are intentionally not
covered. check/test green; 2282 cases; exercised end-to-end (the [dynamic]u8
code pattern, factor-in-existing, nil args, exact ceiling, reserve no-op).
2026-06-19 03:48:36 -04:00
..
2026-03-13 11:54:15 +01:00
2026-04-28 19:27:24 +02:00
2026-04-01 18:58:16 +02:00
2026-05-19 19:32:50 +09:00
2026-04-28 19:27:24 +02:00
2026-02-12 12:12:21 +01:00
2026-05-27 11:03:14 +01:00
2026-04-22 11:17:17 +01:00
2026-06-15 14:42:38 +01:00
2026-05-12 18:53:39 -04:00
2026-04-28 19:27:24 +02:00
2026-03-14 16:21:38 +00:00
2026-05-20 17:55:29 -07:00
2026-06-12 21:48:41 +02:00
2026-02-09 20:08:22 +01:00
2026-04-28 19:27:24 +02:00
2026-04-28 19:27:24 +02:00