mirror of
https://github.com/odin-lang/Odin.git
synced 2026-07-17 21:21:04 +00:00
Merge origin/bill/rexcode: struct repack (#raw_union #packed), wasm arch
Merge gingerBill's latest into bill/rexcode. His changes: minimize the Instruction/Operand structs across ISAs with packed raw-unions (+ the compiler support for #raw_union #packed), the new core:rexcode/wasm arch and wasm/module, encode() now returns (byte_count, ok) instead of a Result struct, decode_one made public, and assorted formatting/inlining. Conflict: arm64/tests/pipeline_smoke.odin CSEL test -- kept the generated 4-arg inst_csel(dst,src,src2,cond) (mnemonic_builders.odin is generated, not from Bill's branch) and adopted Bill's (byte_count, success) encode signature. Required rebuilding ./odin from the merged source for the packed-union syntax. Re-validated after the repack: regenerated all artifacts (idempotent -- no spurious churn), all 10 arches gen/builders/check/test green, and byte-compared the new arm32 BF + mips PS/MMI/DSP/R6 forms to confirm no field truncation. arm64/arm32/mips still 100%.
This commit is contained in:
@@ -51,17 +51,8 @@ compile time — no table is built during a normal library build:
|
||||
odin run <arch>/tablegen # ENCODING_TABLE -> generated Odin + <arch>/tables.odin
|
||||
odin run <arch>/tablegen/generated # -> <arch>/tables/<arch>.*.bin
|
||||
```
|
||||
|
||||
Regenerate after editing `ENCODING_TABLE`. See `docs/table_migration.md`.
|
||||
|
||||
## Performance (x86)
|
||||
|
||||
With `-o:speed -microarch:native -no-bounds-check`:
|
||||
- Encoder: ~17 M instructions/sec (~56 MB/s)
|
||||
- Decoder: ~16 M instructions/sec (~54 MB/s)
|
||||
|
||||
Measured on AMD Ryzen 3950X.
|
||||
|
||||
## Usage
|
||||
|
||||
```odin
|
||||
|
||||
Reference in New Issue
Block a user