From 95df04fbe1028913d455dcd9c8b1426ce06c1f97 Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Thu, 18 Jun 2026 18:50:19 -0400 Subject: [PATCH] rexcode: re-house ISA packages under core:rexcode/isa/ Move all ten ISA packages (x86, arm32, arm64, mips, riscv, ppc, ppc_vle, rsp, mos6502, mos65816) from core/rexcode/ to core/rexcode/isa/, so the import pattern is now `import "core:rexcode/isa/x86"`. The shared core stays at core:rexcode/isa. Mechanical: relative `import "../isa"` / "../../isa" -> absolute "core:rexcode/isa" (the only path that survives the move; the "../" and "../.." self/generated imports move with their packages). build.lua now builds paths as /isa/; stale `cd ` hints in the verify tools and the doc.odin paths updated. WASM stays at core/rexcode/wasm for now -- it is an IR, not an ISA, and will move under the forthcoming core:rexcode/ir once that layer lands. All 10 arches gen/builders/check/test green; import core:rexcode/isa/x86 verified working; wasm still compiles. --- core/rexcode/build.lua | 3 +- core/rexcode/doc.odin | 57 +++++++++--------- core/rexcode/{ => isa}/arm32/decoder.odin | 2 +- core/rexcode/{ => isa}/arm32/encoder.odin | 0 .../{ => isa}/arm32/encoding_types.odin | 2 +- core/rexcode/{ => isa}/arm32/immediates.odin | 0 .../rexcode/{ => isa}/arm32/instructions.odin | 0 .../{ => isa}/arm32/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/arm32/mnemonics.odin | 0 core/rexcode/{ => isa}/arm32/operands.odin | 0 core/rexcode/{ => isa}/arm32/printer.odin | 2 +- core/rexcode/{ => isa}/arm32/registers.odin | 0 core/rexcode/{ => isa}/arm32/reloc.odin | 0 .../arm32/tablegen/encoding_table.odin | 0 .../rexcode/{ => isa}/arm32/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../arm32/tablegen/generated/writer.odin | 0 .../{ => isa}/arm32/tablegen/specgen.lua | 0 core/rexcode/{ => isa}/arm32/tables.odin | 0 .../arm32/tables/arm32.bucket_list.bin | Bin .../arm32/tables/arm32.encode_forms.bin | Bin .../arm32/tables/arm32.encode_runs.bin | Bin .../{ => isa}/arm32/tables/arm32.entries.bin | Bin .../{ => isa}/arm32/tables/arm32.form_idx.bin | Bin .../{ => isa}/arm32/tables/arm32.idx_a32.bin | Bin .../{ => isa}/arm32/tables/arm32.idx_t16.bin | Bin .../{ => isa}/arm32/tables/arm32.idx_t32.bin | Bin .../arm32/tables/arm32.idx_t32_sub.bin | Bin .../{ => isa}/arm32/tests/pipeline.odin | 0 core/rexcode/{ => isa}/arm32/tests/smoke.odin | 0 core/rexcode/{ => isa}/arm32/tests/sweep.odin | 0 .../arm32/tools/dump_verify_input.odin | 4 +- .../arm32/tools/gen_mnemonic_builders.odin | 0 .../{ => isa}/arm32/tools/llvm_per_line.sh | 0 .../arm32/tools/verify_against_llvm.odin | 0 core/rexcode/{ => isa}/arm64/bitmask.odin | 0 core/rexcode/{ => isa}/arm64/decoder.odin | 2 +- core/rexcode/{ => isa}/arm64/encoder.odin | 0 .../{ => isa}/arm64/encoding_types.odin | 2 +- .../rexcode/{ => isa}/arm64/instructions.odin | 0 .../{ => isa}/arm64/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/arm64/mnemonics.odin | 0 core/rexcode/{ => isa}/arm64/operands.odin | 0 core/rexcode/{ => isa}/arm64/printer.odin | 2 +- core/rexcode/{ => isa}/arm64/registers.odin | 0 core/rexcode/{ => isa}/arm64/reloc.odin | 0 core/rexcode/{ => isa}/arm64/sysregs.odin | 0 .../arm64/tablegen/encoding_table.odin | 0 .../rexcode/{ => isa}/arm64/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../arm64/tablegen/generated/writer.odin | 0 .../{ => isa}/arm64/tablegen/specgen.lua | 0 core/rexcode/{ => isa}/arm64/tables.odin | 0 .../arm64/tables/arm64.encode_forms.bin | Bin .../arm64/tables/arm64.encode_runs.bin | Bin .../{ => isa}/arm64/tables/arm64.entries.bin | Bin .../{ => isa}/arm64/tables/arm64.idx_op0.bin | Bin .../{ => isa}/arm64/tests/pipeline_smoke.odin | 2 +- core/rexcode/{ => isa}/arm64/tests/smoke.odin | 0 .../arm64/tools/dump_verify_input.odin | 4 +- .../arm64/tools/gen_mnemonic_builders.odin | 0 .../{ => isa}/arm64/tools/llvm_per_line.sh | 0 .../arm64/tools/verify_against_llvm.odin | 2 +- core/rexcode/{ => isa}/mips/decoder.odin | 2 +- core/rexcode/{ => isa}/mips/encoder.odin | 0 .../{ => isa}/mips/encoding_types.odin | 2 +- core/rexcode/{ => isa}/mips/instructions.odin | 0 .../{ => isa}/mips/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/mips/mnemonics.odin | 0 core/rexcode/{ => isa}/mips/operands.odin | 0 core/rexcode/{ => isa}/mips/printer.odin | 2 +- core/rexcode/{ => isa}/mips/registers.odin | 0 core/rexcode/{ => isa}/mips/reloc.odin | 0 .../mips/tablegen/encoding_table.odin | 0 core/rexcode/{ => isa}/mips/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../mips/tablegen/generated/writer.odin | 0 .../{ => isa}/mips/tablegen/specgen.lua | 0 core/rexcode/{ => isa}/mips/tables.odin | 0 .../mips/tables/mips.encode_forms.bin | Bin .../mips/tables/mips.encode_runs.bin | Bin .../{ => isa}/mips/tables/mips.entries.bin | Bin .../{ => isa}/mips/tables/mips.idx_cop1.bin | Bin .../mips/tables/mips.idx_primary.bin | Bin .../{ => isa}/mips/tables/mips.idx_regimm.bin | Bin .../mips/tables/mips.idx_special.bin | Bin .../mips/tables/mips.idx_special2.bin | Bin .../mips/tables/mips.idx_special3.bin | Bin .../{ => isa}/mips/tests/decode_smoke.odin | 0 .../{ => isa}/mips/tests/encode_smoke.odin | 0 .../{ => isa}/mips/tests/print_smoke.odin | 0 core/rexcode/{ => isa}/mips/tests/smoke.odin | 0 .../mips/tools/dump_verify_input.odin | 2 +- .../mips/tools/gen_mnemonic_builders.odin | 0 .../{ => isa}/mips/tools/llvm_per_line.sh | 0 .../mips/tools/verify_against_llvm.odin | 0 core/rexcode/{ => isa}/mos6502/decoder.odin | 2 +- core/rexcode/{ => isa}/mos6502/encoder.odin | 2 +- .../{ => isa}/mos6502/encoding_types.odin | 2 +- .../{ => isa}/mos6502/instructions.odin | 0 .../{ => isa}/mos6502/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/mos6502/mnemonics.odin | 0 core/rexcode/{ => isa}/mos6502/operands.odin | 0 core/rexcode/{ => isa}/mos6502/printer.odin | 2 +- core/rexcode/{ => isa}/mos6502/registers.odin | 0 core/rexcode/{ => isa}/mos6502/reloc.odin | 0 .../mos6502/tablegen/encoding_table.odin | 0 .../{ => isa}/mos6502/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../mos6502/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/mos6502/tables.odin | 0 .../mos6502/tables/mos6502.encode_forms.bin | Bin .../mos6502/tables/mos6502.encode_runs.bin | Bin .../mos6502/tables/mos6502.entries.bin | Bin .../mos6502/tables/mos6502.idx_opcode.bin | Bin .../mos6502/tests/pipeline_smoke.odin | 0 .../{ => isa}/mos6502/tests/smoke.odin | 0 .../mos6502/tools/dump_verify_input.odin | 2 +- .../mos6502/tools/gen_mnemonic_builders.odin | 0 .../mos6502/tools/verify_against_xa.sh | 2 +- core/rexcode/{ => isa}/mos65816/decoder.odin | 2 +- core/rexcode/{ => isa}/mos65816/encoder.odin | 2 +- .../{ => isa}/mos65816/encoding_types.odin | 2 +- .../{ => isa}/mos65816/instructions.odin | 0 .../{ => isa}/mos65816/mnemonic_builders.odin | 0 .../rexcode/{ => isa}/mos65816/mnemonics.odin | 0 core/rexcode/{ => isa}/mos65816/operands.odin | 0 core/rexcode/{ => isa}/mos65816/printer.odin | 2 +- .../rexcode/{ => isa}/mos65816/registers.odin | 0 core/rexcode/{ => isa}/mos65816/reloc.odin | 0 .../mos65816/tablegen/encoding_table.odin | 0 .../{ => isa}/mos65816/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../mos65816/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/mos65816/tables.odin | 0 .../mos65816/tables/mos65816.encode_forms.bin | Bin .../mos65816/tables/mos65816.encode_runs.bin | Bin .../mos65816/tables/mos65816.entries.bin | Bin .../mos65816/tables/mos65816.idx_opcode.bin | Bin .../{ => isa}/mos65816/tests/smoke.odin | 0 .../mos65816/tools/dump_verify_input.odin | 2 +- .../mos65816/tools/gen_mnemonic_builders.odin | 0 .../mos65816/tools/verify_against_ca65.sh | 2 +- core/rexcode/{ => isa}/ppc/decoder.odin | 2 +- core/rexcode/{ => isa}/ppc/encoder.odin | 0 .../rexcode/{ => isa}/ppc/encoding_types.odin | 2 +- core/rexcode/{ => isa}/ppc/instructions.odin | 0 .../{ => isa}/ppc/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/ppc/mnemonics.odin | 0 core/rexcode/{ => isa}/ppc/operands.odin | 0 core/rexcode/{ => isa}/ppc/printer.odin | 2 +- core/rexcode/{ => isa}/ppc/registers.odin | 0 core/rexcode/{ => isa}/ppc/reloc.odin | 0 .../ppc/tablegen/encoding_table.odin | 0 core/rexcode/{ => isa}/ppc/tablegen/gen.odin | 0 .../ppc/tablegen/generated/decode_tables.odin | 0 .../ppc/tablegen/generated/encode_tables.odin | 0 .../ppc/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/ppc/tables.odin | 0 .../{ => isa}/ppc/tables/ppc.bucket_list.bin | Bin .../{ => isa}/ppc/tables/ppc.encode_forms.bin | Bin .../{ => isa}/ppc/tables/ppc.encode_runs.bin | Bin .../{ => isa}/ppc/tables/ppc.entries.bin | Bin .../{ => isa}/ppc/tables/ppc.form_idx.bin | Bin .../{ => isa}/ppc/tables/ppc.idx_primary.bin | Bin .../{ => isa}/ppc/tables/ppc.idx_sub.bin | Bin .../{ => isa}/ppc/tables/ppc.prefix_bits.bin | Bin .../{ => isa}/ppc/tests/branch_reloc.odin | 2 +- .../{ => isa}/ppc/tests/decode_sweep.odin | 0 .../{ => isa}/ppc/tests/full_sweep.odin | 2 +- core/rexcode/{ => isa}/ppc/tests/printer.odin | 2 +- .../{ => isa}/ppc/tests/roundtrip.odin | 2 +- core/rexcode/{ => isa}/ppc/tests/smoke.odin | 0 .../ppc/tools/dump_verify_input.odin | 4 +- .../ppc/tools/gen_mnemonic_builders.odin | 0 .../{ => isa}/ppc/tools/llvm_per_line.sh | 0 .../ppc/tools/verify_against_llvm.odin | 2 +- core/rexcode/{ => isa}/ppc_vle/decoder.odin | 2 +- core/rexcode/{ => isa}/ppc_vle/encoder.odin | 0 .../{ => isa}/ppc_vle/encoding_types.odin | 2 +- .../{ => isa}/ppc_vle/instructions.odin | 0 .../{ => isa}/ppc_vle/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/ppc_vle/mnemonics.odin | 0 core/rexcode/{ => isa}/ppc_vle/operands.odin | 0 core/rexcode/{ => isa}/ppc_vle/printer.odin | 2 +- core/rexcode/{ => isa}/ppc_vle/registers.odin | 0 core/rexcode/{ => isa}/ppc_vle/reloc.odin | 0 .../ppc_vle/tablegen/encoding_table.odin | 0 .../{ => isa}/ppc_vle/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../ppc_vle/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/ppc_vle/tables.odin | 0 .../ppc_vle/tables/ppc_vle.bucket_list.bin | Bin .../ppc_vle/tables/ppc_vle.encode_forms.bin | Bin .../ppc_vle/tables/ppc_vle.encode_runs.bin | Bin .../ppc_vle/tables/ppc_vle.entries.bin | Bin .../ppc_vle/tables/ppc_vle.form_idx.bin | Bin .../ppc_vle/tables/ppc_vle.idx_long.bin | Bin .../ppc_vle/tables/ppc_vle.idx_short.bin | Bin .../{ => isa}/ppc_vle/tests/branch_test.odin | 2 +- .../{ => isa}/ppc_vle/tests/cond_branch.odin | 2 +- core/rexcode/{ => isa}/ppc_vle/tests/e2e.odin | 2 +- .../{ => isa}/ppc_vle/tests/extension.odin | 2 +- .../{ => isa}/ppc_vle/tests/full_sweep.odin | 2 +- .../{ => isa}/ppc_vle/tests/operand_test.odin | 2 +- .../{ => isa}/ppc_vle/tests/printer.odin | 2 +- .../{ => isa}/ppc_vle/tests/roundtrip.odin | 2 +- .../{ => isa}/ppc_vle/tests/smoke.odin | 0 .../ppc_vle/tools/dump_verify_input.odin | 2 +- .../ppc_vle/tools/gen_mnemonic_builders.odin | 0 .../ppc_vle/tools/verify_against_vle_as.sh | 2 +- core/rexcode/{ => isa}/riscv/decoder.odin | 2 +- core/rexcode/{ => isa}/riscv/encoder.odin | 0 .../{ => isa}/riscv/encoding_types.odin | 2 +- .../rexcode/{ => isa}/riscv/instructions.odin | 0 .../{ => isa}/riscv/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/riscv/mnemonics.odin | 0 core/rexcode/{ => isa}/riscv/operands.odin | 0 core/rexcode/{ => isa}/riscv/printer.odin | 2 +- core/rexcode/{ => isa}/riscv/registers.odin | 0 core/rexcode/{ => isa}/riscv/reloc.odin | 0 .../riscv/tablegen/encoding_table.odin | 0 .../rexcode/{ => isa}/riscv/tablegen/gen.odin | 0 .../tablegen/generated/decode_tables.odin | 0 .../tablegen/generated/encode_tables.odin | 0 .../riscv/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/riscv/tables.odin | 0 .../riscv/tables/riscv.encode_forms.bin | Bin .../riscv/tables/riscv.encode_runs.bin | Bin .../{ => isa}/riscv/tables/riscv.entries.bin | Bin .../riscv/tables/riscv.idx_op_fp.bin | Bin .../riscv/tables/riscv.idx_opcode.bin | Bin .../{ => isa}/riscv/tables/riscv.idx_rvc.bin | Bin .../{ => isa}/riscv/tests/pipeline_smoke.odin | 0 core/rexcode/{ => isa}/riscv/tests/smoke.odin | 0 .../riscv/tools/dump_verify_input.odin | 2 +- .../riscv/tools/gen_mnemonic_builders.odin | 0 .../{ => isa}/riscv/tools/llvm_per_line.sh | 0 .../riscv/tools/verify_against_llvm.odin | 0 core/rexcode/{ => isa}/rsp/decoder.odin | 2 +- core/rexcode/{ => isa}/rsp/encoder.odin | 0 .../rexcode/{ => isa}/rsp/encoding_types.odin | 2 +- core/rexcode/{ => isa}/rsp/instructions.odin | 0 .../{ => isa}/rsp/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/rsp/mnemonics.odin | 0 core/rexcode/{ => isa}/rsp/operands.odin | 0 core/rexcode/{ => isa}/rsp/printer.odin | 2 +- core/rexcode/{ => isa}/rsp/registers.odin | 0 core/rexcode/{ => isa}/rsp/reloc.odin | 0 .../rsp/tablegen/encoding_table.odin | 0 core/rexcode/{ => isa}/rsp/tablegen/gen.odin | 0 .../rsp/tablegen/generated/decode_tables.odin | 0 .../rsp/tablegen/generated/encode_tables.odin | 0 .../rsp/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/rsp/tables.odin | 0 .../{ => isa}/rsp/tables/rsp.encode_forms.bin | Bin .../{ => isa}/rsp/tables/rsp.encode_runs.bin | Bin .../{ => isa}/rsp/tables/rsp.entries.bin | Bin .../{ => isa}/rsp/tables/rsp.idx_cop2.bin | Bin .../{ => isa}/rsp/tables/rsp.idx_lwc2.bin | Bin .../{ => isa}/rsp/tables/rsp.idx_primary.bin | Bin .../{ => isa}/rsp/tables/rsp.idx_regimm.bin | Bin .../{ => isa}/rsp/tables/rsp.idx_special.bin | Bin .../{ => isa}/rsp/tables/rsp.idx_swc2.bin | Bin .../{ => isa}/rsp/tests/pipeline_smoke.odin | 0 core/rexcode/{ => isa}/rsp/tests/smoke.odin | 0 .../{ => isa}/rsp/tools/armips_lwv_patch.sh | 0 .../rsp/tools/dump_verify_input.odin | 2 +- .../rsp/tools/gen_mnemonic_builders.odin | 0 .../rsp/tools/verify_against_armips.sh | 2 +- core/rexcode/{ => isa}/x86/decoder.odin | 2 +- core/rexcode/{ => isa}/x86/encoder.odin | 2 +- .../rexcode/{ => isa}/x86/encoding_types.odin | 2 +- core/rexcode/{ => isa}/x86/instructions.odin | 0 core/rexcode/{ => isa}/x86/labels.odin | 2 +- .../{ => isa}/x86/mnemonic_builders.odin | 0 core/rexcode/{ => isa}/x86/mnemonics.odin | 0 core/rexcode/{ => isa}/x86/operands.odin | 0 core/rexcode/{ => isa}/x86/printer.odin | 2 +- core/rexcode/{ => isa}/x86/registers.odin | 0 core/rexcode/{ => isa}/x86/reloc.odin | 0 .../x86/tablegen/encoding_table.odin | 0 core/rexcode/{ => isa}/x86/tablegen/gen.odin | 0 .../x86/tablegen/generated/decode_tables.odin | 0 .../x86/tablegen/generated/encode_tables.odin | 0 .../x86/tablegen/generated/writer.odin | 0 core/rexcode/{ => isa}/x86/tables.odin | 0 .../{ => isa}/x86/tables/x86.encode_forms.bin | Bin .../{ => isa}/x86/tables/x86.encode_runs.bin | Bin .../rexcode/{ => isa}/x86/tables/x86.evex.bin | Bin .../{ => isa}/x86/tables/x86.evex_idx_0f.bin | Bin .../x86/tables/x86.evex_idx_0f38.bin | Bin .../x86/tables/x86.evex_idx_0f3a.bin | Bin .../{ => isa}/x86/tables/x86.idx_0f.bin | Bin .../{ => isa}/x86/tables/x86.idx_0f38.bin | Bin .../{ => isa}/x86/tables/x86.idx_0f3a.bin | Bin .../{ => isa}/x86/tables/x86.idx_legacy.bin | Bin .../{ => isa}/x86/tables/x86.legacy.bin | Bin .../{ => isa}/x86/tables/x86.modrm.bin | Bin core/rexcode/{ => isa}/x86/tables/x86.sib.bin | Bin core/rexcode/{ => isa}/x86/tables/x86.vex.bin | Bin .../{ => isa}/x86/tables/x86.vex_idx_0f.bin | Bin .../{ => isa}/x86/tables/x86.vex_idx_0f38.bin | Bin .../{ => isa}/x86/tables/x86.vex_idx_0f3a.bin | Bin core/rexcode/{ => isa}/x86/tests/test.odin | 2 +- .../{ => isa}/x86/tests32/test_32bit.odin | 0 .../x86/tools/dump_verify_input.odin | 2 +- .../x86/tools/gen_mnemonic_builders.odin | 0 .../x86/tools/verify_against_llvm.odin | 0 .../{ => isa}/x86/tools/verify_tables.odin | 0 316 files changed, 99 insertions(+), 95 deletions(-) rename core/rexcode/{ => isa}/arm32/decoder.odin (99%) rename core/rexcode/{ => isa}/arm32/encoder.odin (100%) rename core/rexcode/{ => isa}/arm32/encoding_types.odin (99%) rename core/rexcode/{ => isa}/arm32/immediates.odin (100%) rename core/rexcode/{ => isa}/arm32/instructions.odin (100%) rename core/rexcode/{ => isa}/arm32/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/arm32/mnemonics.odin (100%) rename core/rexcode/{ => isa}/arm32/operands.odin (100%) rename core/rexcode/{ => isa}/arm32/printer.odin (99%) rename core/rexcode/{ => isa}/arm32/registers.odin (100%) rename core/rexcode/{ => isa}/arm32/reloc.odin (100%) rename core/rexcode/{ => isa}/arm32/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/arm32/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/arm32/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/arm32/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/arm32/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/arm32/tablegen/specgen.lua (100%) rename core/rexcode/{ => isa}/arm32/tables.odin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.bucket_list.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.encode_forms.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.encode_runs.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.entries.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.form_idx.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.idx_a32.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.idx_t16.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.idx_t32.bin (100%) rename core/rexcode/{ => isa}/arm32/tables/arm32.idx_t32_sub.bin (100%) rename core/rexcode/{ => isa}/arm32/tests/pipeline.odin (100%) rename core/rexcode/{ => isa}/arm32/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/arm32/tests/sweep.odin (100%) rename core/rexcode/{ => isa}/arm32/tools/dump_verify_input.odin (98%) rename core/rexcode/{ => isa}/arm32/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/arm32/tools/llvm_per_line.sh (100%) rename core/rexcode/{ => isa}/arm32/tools/verify_against_llvm.odin (100%) rename core/rexcode/{ => isa}/arm64/bitmask.odin (100%) rename core/rexcode/{ => isa}/arm64/decoder.odin (99%) rename core/rexcode/{ => isa}/arm64/encoder.odin (100%) rename core/rexcode/{ => isa}/arm64/encoding_types.odin (99%) rename core/rexcode/{ => isa}/arm64/instructions.odin (100%) rename core/rexcode/{ => isa}/arm64/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/arm64/mnemonics.odin (100%) rename core/rexcode/{ => isa}/arm64/operands.odin (100%) rename core/rexcode/{ => isa}/arm64/printer.odin (99%) rename core/rexcode/{ => isa}/arm64/registers.odin (100%) rename core/rexcode/{ => isa}/arm64/reloc.odin (100%) rename core/rexcode/{ => isa}/arm64/sysregs.odin (100%) rename core/rexcode/{ => isa}/arm64/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/arm64/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/arm64/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/arm64/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/arm64/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/arm64/tablegen/specgen.lua (100%) rename core/rexcode/{ => isa}/arm64/tables.odin (100%) rename core/rexcode/{ => isa}/arm64/tables/arm64.encode_forms.bin (100%) rename core/rexcode/{ => isa}/arm64/tables/arm64.encode_runs.bin (100%) rename core/rexcode/{ => isa}/arm64/tables/arm64.entries.bin (100%) rename core/rexcode/{ => isa}/arm64/tables/arm64.idx_op0.bin (100%) rename core/rexcode/{ => isa}/arm64/tests/pipeline_smoke.odin (99%) rename core/rexcode/{ => isa}/arm64/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/arm64/tools/dump_verify_input.odin (93%) rename core/rexcode/{ => isa}/arm64/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/arm64/tools/llvm_per_line.sh (100%) rename core/rexcode/{ => isa}/arm64/tools/verify_against_llvm.odin (99%) rename core/rexcode/{ => isa}/mips/decoder.odin (99%) rename core/rexcode/{ => isa}/mips/encoder.odin (100%) rename core/rexcode/{ => isa}/mips/encoding_types.odin (99%) rename core/rexcode/{ => isa}/mips/instructions.odin (100%) rename core/rexcode/{ => isa}/mips/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/mips/mnemonics.odin (100%) rename core/rexcode/{ => isa}/mips/operands.odin (100%) rename core/rexcode/{ => isa}/mips/printer.odin (99%) rename core/rexcode/{ => isa}/mips/registers.odin (100%) rename core/rexcode/{ => isa}/mips/reloc.odin (100%) rename core/rexcode/{ => isa}/mips/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/mips/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/mips/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/mips/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/mips/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/mips/tablegen/specgen.lua (100%) rename core/rexcode/{ => isa}/mips/tables.odin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.encode_forms.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.encode_runs.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.entries.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.idx_cop1.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.idx_primary.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.idx_regimm.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.idx_special.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.idx_special2.bin (100%) rename core/rexcode/{ => isa}/mips/tables/mips.idx_special3.bin (100%) rename core/rexcode/{ => isa}/mips/tests/decode_smoke.odin (100%) rename core/rexcode/{ => isa}/mips/tests/encode_smoke.odin (100%) rename core/rexcode/{ => isa}/mips/tests/print_smoke.odin (100%) rename core/rexcode/{ => isa}/mips/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/mips/tools/dump_verify_input.odin (96%) rename core/rexcode/{ => isa}/mips/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/mips/tools/llvm_per_line.sh (100%) rename core/rexcode/{ => isa}/mips/tools/verify_against_llvm.odin (100%) rename core/rexcode/{ => isa}/mos6502/decoder.odin (99%) rename core/rexcode/{ => isa}/mos6502/encoder.odin (99%) rename core/rexcode/{ => isa}/mos6502/encoding_types.odin (99%) rename core/rexcode/{ => isa}/mos6502/instructions.odin (100%) rename core/rexcode/{ => isa}/mos6502/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/mos6502/mnemonics.odin (100%) rename core/rexcode/{ => isa}/mos6502/operands.odin (100%) rename core/rexcode/{ => isa}/mos6502/printer.odin (99%) rename core/rexcode/{ => isa}/mos6502/registers.odin (100%) rename core/rexcode/{ => isa}/mos6502/reloc.odin (100%) rename core/rexcode/{ => isa}/mos6502/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/mos6502/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/mos6502/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/mos6502/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/mos6502/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/mos6502/tables.odin (100%) rename core/rexcode/{ => isa}/mos6502/tables/mos6502.encode_forms.bin (100%) rename core/rexcode/{ => isa}/mos6502/tables/mos6502.encode_runs.bin (100%) rename core/rexcode/{ => isa}/mos6502/tables/mos6502.entries.bin (100%) rename core/rexcode/{ => isa}/mos6502/tables/mos6502.idx_opcode.bin (100%) rename core/rexcode/{ => isa}/mos6502/tests/pipeline_smoke.odin (100%) rename core/rexcode/{ => isa}/mos6502/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/mos6502/tools/dump_verify_input.odin (96%) rename core/rexcode/{ => isa}/mos6502/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/mos6502/tools/verify_against_xa.sh (98%) rename core/rexcode/{ => isa}/mos65816/decoder.odin (99%) rename core/rexcode/{ => isa}/mos65816/encoder.odin (99%) rename core/rexcode/{ => isa}/mos65816/encoding_types.odin (99%) rename core/rexcode/{ => isa}/mos65816/instructions.odin (100%) rename core/rexcode/{ => isa}/mos65816/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/mos65816/mnemonics.odin (100%) rename core/rexcode/{ => isa}/mos65816/operands.odin (100%) rename core/rexcode/{ => isa}/mos65816/printer.odin (99%) rename core/rexcode/{ => isa}/mos65816/registers.odin (100%) rename core/rexcode/{ => isa}/mos65816/reloc.odin (100%) rename core/rexcode/{ => isa}/mos65816/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/mos65816/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/mos65816/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/mos65816/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/mos65816/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/mos65816/tables.odin (100%) rename core/rexcode/{ => isa}/mos65816/tables/mos65816.encode_forms.bin (100%) rename core/rexcode/{ => isa}/mos65816/tables/mos65816.encode_runs.bin (100%) rename core/rexcode/{ => isa}/mos65816/tables/mos65816.entries.bin (100%) rename core/rexcode/{ => isa}/mos65816/tables/mos65816.idx_opcode.bin (100%) rename core/rexcode/{ => isa}/mos65816/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/mos65816/tools/dump_verify_input.odin (98%) rename core/rexcode/{ => isa}/mos65816/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/mos65816/tools/verify_against_ca65.sh (98%) rename core/rexcode/{ => isa}/ppc/decoder.odin (99%) rename core/rexcode/{ => isa}/ppc/encoder.odin (100%) rename core/rexcode/{ => isa}/ppc/encoding_types.odin (99%) rename core/rexcode/{ => isa}/ppc/instructions.odin (100%) rename core/rexcode/{ => isa}/ppc/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/ppc/mnemonics.odin (100%) rename core/rexcode/{ => isa}/ppc/operands.odin (100%) rename core/rexcode/{ => isa}/ppc/printer.odin (99%) rename core/rexcode/{ => isa}/ppc/registers.odin (100%) rename core/rexcode/{ => isa}/ppc/reloc.odin (100%) rename core/rexcode/{ => isa}/ppc/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/ppc/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/ppc/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/ppc/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/ppc/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/ppc/tables.odin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.bucket_list.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.encode_forms.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.encode_runs.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.entries.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.form_idx.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.idx_primary.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.idx_sub.bin (100%) rename core/rexcode/{ => isa}/ppc/tables/ppc.prefix_bits.bin (100%) rename core/rexcode/{ => isa}/ppc/tests/branch_reloc.odin (99%) rename core/rexcode/{ => isa}/ppc/tests/decode_sweep.odin (100%) rename core/rexcode/{ => isa}/ppc/tests/full_sweep.odin (99%) rename core/rexcode/{ => isa}/ppc/tests/printer.odin (98%) rename core/rexcode/{ => isa}/ppc/tests/roundtrip.odin (99%) rename core/rexcode/{ => isa}/ppc/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/ppc/tools/dump_verify_input.odin (98%) rename core/rexcode/{ => isa}/ppc/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/ppc/tools/llvm_per_line.sh (100%) rename core/rexcode/{ => isa}/ppc/tools/verify_against_llvm.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/decoder.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/encoder.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/encoding_types.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/instructions.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/mnemonics.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/operands.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/printer.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/registers.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/reloc.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.bucket_list.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.encode_forms.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.encode_runs.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.entries.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.form_idx.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.idx_long.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tables/ppc_vle.idx_short.bin (100%) rename core/rexcode/{ => isa}/ppc_vle/tests/branch_test.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/tests/cond_branch.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/tests/e2e.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/tests/extension.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/tests/full_sweep.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/tests/operand_test.odin (98%) rename core/rexcode/{ => isa}/ppc_vle/tests/printer.odin (98%) rename core/rexcode/{ => isa}/ppc_vle/tests/roundtrip.odin (99%) rename core/rexcode/{ => isa}/ppc_vle/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tools/dump_verify_input.odin (97%) rename core/rexcode/{ => isa}/ppc_vle/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/ppc_vle/tools/verify_against_vle_as.sh (98%) rename core/rexcode/{ => isa}/riscv/decoder.odin (99%) rename core/rexcode/{ => isa}/riscv/encoder.odin (100%) rename core/rexcode/{ => isa}/riscv/encoding_types.odin (99%) rename core/rexcode/{ => isa}/riscv/instructions.odin (100%) rename core/rexcode/{ => isa}/riscv/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/riscv/mnemonics.odin (100%) rename core/rexcode/{ => isa}/riscv/operands.odin (100%) rename core/rexcode/{ => isa}/riscv/printer.odin (99%) rename core/rexcode/{ => isa}/riscv/registers.odin (100%) rename core/rexcode/{ => isa}/riscv/reloc.odin (100%) rename core/rexcode/{ => isa}/riscv/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/riscv/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/riscv/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/riscv/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/riscv/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/riscv/tables.odin (100%) rename core/rexcode/{ => isa}/riscv/tables/riscv.encode_forms.bin (100%) rename core/rexcode/{ => isa}/riscv/tables/riscv.encode_runs.bin (100%) rename core/rexcode/{ => isa}/riscv/tables/riscv.entries.bin (100%) rename core/rexcode/{ => isa}/riscv/tables/riscv.idx_op_fp.bin (100%) rename core/rexcode/{ => isa}/riscv/tables/riscv.idx_opcode.bin (100%) rename core/rexcode/{ => isa}/riscv/tables/riscv.idx_rvc.bin (100%) rename core/rexcode/{ => isa}/riscv/tests/pipeline_smoke.odin (100%) rename core/rexcode/{ => isa}/riscv/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/riscv/tools/dump_verify_input.odin (95%) rename core/rexcode/{ => isa}/riscv/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/riscv/tools/llvm_per_line.sh (100%) rename core/rexcode/{ => isa}/riscv/tools/verify_against_llvm.odin (100%) rename core/rexcode/{ => isa}/rsp/decoder.odin (99%) rename core/rexcode/{ => isa}/rsp/encoder.odin (100%) rename core/rexcode/{ => isa}/rsp/encoding_types.odin (99%) rename core/rexcode/{ => isa}/rsp/instructions.odin (100%) rename core/rexcode/{ => isa}/rsp/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/rsp/mnemonics.odin (100%) rename core/rexcode/{ => isa}/rsp/operands.odin (100%) rename core/rexcode/{ => isa}/rsp/printer.odin (99%) rename core/rexcode/{ => isa}/rsp/registers.odin (100%) rename core/rexcode/{ => isa}/rsp/reloc.odin (100%) rename core/rexcode/{ => isa}/rsp/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/rsp/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/rsp/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/rsp/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/rsp/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/rsp/tables.odin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.encode_forms.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.encode_runs.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.entries.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.idx_cop2.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.idx_lwc2.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.idx_primary.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.idx_regimm.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.idx_special.bin (100%) rename core/rexcode/{ => isa}/rsp/tables/rsp.idx_swc2.bin (100%) rename core/rexcode/{ => isa}/rsp/tests/pipeline_smoke.odin (100%) rename core/rexcode/{ => isa}/rsp/tests/smoke.odin (100%) rename core/rexcode/{ => isa}/rsp/tools/armips_lwv_patch.sh (100%) rename core/rexcode/{ => isa}/rsp/tools/dump_verify_input.odin (98%) rename core/rexcode/{ => isa}/rsp/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/rsp/tools/verify_against_armips.sh (98%) rename core/rexcode/{ => isa}/x86/decoder.odin (99%) rename core/rexcode/{ => isa}/x86/encoder.odin (99%) rename core/rexcode/{ => isa}/x86/encoding_types.odin (99%) rename core/rexcode/{ => isa}/x86/instructions.odin (100%) rename core/rexcode/{ => isa}/x86/labels.odin (97%) rename core/rexcode/{ => isa}/x86/mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/x86/mnemonics.odin (100%) rename core/rexcode/{ => isa}/x86/operands.odin (100%) rename core/rexcode/{ => isa}/x86/printer.odin (99%) rename core/rexcode/{ => isa}/x86/registers.odin (100%) rename core/rexcode/{ => isa}/x86/reloc.odin (100%) rename core/rexcode/{ => isa}/x86/tablegen/encoding_table.odin (100%) rename core/rexcode/{ => isa}/x86/tablegen/gen.odin (100%) rename core/rexcode/{ => isa}/x86/tablegen/generated/decode_tables.odin (100%) rename core/rexcode/{ => isa}/x86/tablegen/generated/encode_tables.odin (100%) rename core/rexcode/{ => isa}/x86/tablegen/generated/writer.odin (100%) rename core/rexcode/{ => isa}/x86/tables.odin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.encode_forms.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.encode_runs.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.evex.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.evex_idx_0f.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.evex_idx_0f38.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.evex_idx_0f3a.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.idx_0f.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.idx_0f38.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.idx_0f3a.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.idx_legacy.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.legacy.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.modrm.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.sib.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.vex.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.vex_idx_0f.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.vex_idx_0f38.bin (100%) rename core/rexcode/{ => isa}/x86/tables/x86.vex_idx_0f3a.bin (100%) rename core/rexcode/{ => isa}/x86/tests/test.odin (99%) rename core/rexcode/{ => isa}/x86/tests32/test_32bit.odin (100%) rename core/rexcode/{ => isa}/x86/tools/dump_verify_input.odin (98%) rename core/rexcode/{ => isa}/x86/tools/gen_mnemonic_builders.odin (100%) rename core/rexcode/{ => isa}/x86/tools/verify_against_llvm.odin (100%) rename core/rexcode/{ => isa}/x86/tools/verify_tables.odin (100%) diff --git a/core/rexcode/build.lua b/core/rexcode/build.lua index 226ef2820..e8621a930 100755 --- a/core/rexcode/build.lua +++ b/core/rexcode/build.lua @@ -202,7 +202,8 @@ end -- ---------------------------------------------------------------------------- local ODIN, ROOT, OUT -- set in main -local function pkg(isa, sub) return ROOT .. "/" .. isa.name .. (sub and ("/"..sub) or "") end +-- ISA packages live under /isa/ (the shared isa package is /isa). +local function pkg(isa, sub) return ROOT .. "/isa/" .. isa.name .. (sub and ("/"..sub) or "") end local function odin_run(target) return q(ODIN).." run "..q(target).." -out:"..q(OUT) end local function odin_check(target)return q(ODIN).." check "..q(target).." -no-entry-point" end diff --git a/core/rexcode/doc.odin b/core/rexcode/doc.odin index 79e447cee..d74977111 100644 --- a/core/rexcode/doc.odin +++ b/core/rexcode/doc.odin @@ -48,15 +48,15 @@ emits committed binary blobs that the library `#load`s into `@(rodata)` at compile time — no table is built during a normal library build: ```sh -odin run /tablegen # ENCODING_TABLE -> generated Odin + /tables.odin -odin run /tablegen/generated # -> /tables/.*.bin +odin run isa//tablegen # ENCODING_TABLE -> generated Odin + tables.odin +odin run isa//tablegen/generated # -> isa//tables/.*.bin ``` Regenerate after editing `ENCODING_TABLE`. See `docs/table_migration.md`. ## Usage ```odin -import "x86" +import x86 "core:rexcode/isa/x86" instructions := []x86.Instruction{ x86.inst_r_r(.MOV, x86.RAX, x86.RDI), @@ -179,21 +179,21 @@ Tasks: `--gen` (table metaprograms), `--builders` (regenerate each ISA's Each package has its own test suite: ```sh -odin run x86/tests -odin run arm32/tests -odin run arm64/tests -odin run mips/tests -odin run mos6502/tests -odin run mos65816/tests -odin run ppc/tests -odin run ppc_vle/tests -odin run riscv/tests -odin run rsp/tests +odin run isa/x86/tests +odin run isa/arm32/tests +odin run isa/arm64/tests +odin run isa/mips/tests +odin run isa/mos6502/tests +odin run isa/mos65816/tests +odin run isa/ppc/tests +odin run isa/ppc_vle/tests +odin run isa/riscv/tests +odin run isa/rsp/tests ``` ## Verification harnesses -Each arch has a verification harness under `/tools/`: +Each arch has a verification harness under `isa//tools/`: - `dump_verify_input.odin` — emits the per-entry hex/asm manifest. - `verify_against_.*` — runs the canonical external assembler/ disassembler and compares. LLVM-mc for the seven modern archs, plus @@ -203,24 +203,27 @@ Each arch has a verification harness under `/tools/`: ``` rexcode/ - isa/ # shared core: labels, status, print framework, label-inference + isa/ # shared ISA core: labels, status, print framework, label-inference + x86/ # x86-64 / i386 + arm32/ # AArch32 + arm64/ # AArch64 + mips/ # MIPS (R1..R6 + ASEs + coprocessors) + mos6502/ # NMOS 6502 family + mos65816/ # W65C816S + ppc/ # PowerPC (Power ISA 3.1) + ppc_vle/ # Freescale VLE (sibling of ppc) + riscv/ # RISC-V + rsp/ # N64 RSP + wasm/ # WebAssembly (an IR; destined for ir/wasm once the IR layer settles) docs/ # cross-arch design + per-arch design docs - x86/ # x86-64 / i386 - arm32/ # AArch32 - arm64/ # AArch64 - mips/ # MIPS (R1..R6 + ASEs + coprocessors) - mos6502/ # NMOS 6502 family - mos65816/ # W65C816S - ppc/ # PowerPC (Power ISA 3.1) - ppc_vle/ # Freescale VLE (sibling of ppc) - riscv/ # RISC-V - rsp/ # N64 RSP ``` -Per-package layout (canonical, enforced by the cross-arch contract): +Each ISA is imported as `core:rexcode/isa/` (e.g. `core:rexcode/isa/x86`); the +shared core is `core:rexcode/isa`. Per-package layout (canonical, enforced by the +cross-arch contract): ``` -/ +isa// encoder.odin # encode() — two-pass, label/reloc-aware decoder.odin # decode() printer.odin # sb/sbln/print/println/aprint/aprintln/tprint/tprintln/bprint/bprintln/fprint/fprintln/wprint/wprintln diff --git a/core/rexcode/arm32/decoder.odin b/core/rexcode/isa/arm32/decoder.odin similarity index 99% rename from core/rexcode/arm32/decoder.odin rename to core/rexcode/isa/arm32/decoder.odin index a4aa85516..0f2bf9c5d 100644 --- a/core/rexcode/arm32/decoder.odin +++ b/core/rexcode/isa/arm32/decoder.odin @@ -2,7 +2,7 @@ package rexcode_arm32 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // AArch32 DECODER diff --git a/core/rexcode/arm32/encoder.odin b/core/rexcode/isa/arm32/encoder.odin similarity index 100% rename from core/rexcode/arm32/encoder.odin rename to core/rexcode/isa/arm32/encoder.odin diff --git a/core/rexcode/arm32/encoding_types.odin b/core/rexcode/isa/arm32/encoding_types.odin similarity index 99% rename from core/rexcode/arm32/encoding_types.odin rename to core/rexcode/isa/arm32/encoding_types.odin index 8f653e2b3..57e780397 100644 --- a/core/rexcode/arm32/encoding_types.odin +++ b/core/rexcode/isa/arm32/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_arm32 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // AArch32 ENCODING FUNDAMENTALS diff --git a/core/rexcode/arm32/immediates.odin b/core/rexcode/isa/arm32/immediates.odin similarity index 100% rename from core/rexcode/arm32/immediates.odin rename to core/rexcode/isa/arm32/immediates.odin diff --git a/core/rexcode/arm32/instructions.odin b/core/rexcode/isa/arm32/instructions.odin similarity index 100% rename from core/rexcode/arm32/instructions.odin rename to core/rexcode/isa/arm32/instructions.odin diff --git a/core/rexcode/arm32/mnemonic_builders.odin b/core/rexcode/isa/arm32/mnemonic_builders.odin similarity index 100% rename from core/rexcode/arm32/mnemonic_builders.odin rename to core/rexcode/isa/arm32/mnemonic_builders.odin diff --git a/core/rexcode/arm32/mnemonics.odin b/core/rexcode/isa/arm32/mnemonics.odin similarity index 100% rename from core/rexcode/arm32/mnemonics.odin rename to core/rexcode/isa/arm32/mnemonics.odin diff --git a/core/rexcode/arm32/operands.odin b/core/rexcode/isa/arm32/operands.odin similarity index 100% rename from core/rexcode/arm32/operands.odin rename to core/rexcode/isa/arm32/operands.odin diff --git a/core/rexcode/arm32/printer.odin b/core/rexcode/isa/arm32/printer.odin similarity index 99% rename from core/rexcode/arm32/printer.odin rename to core/rexcode/isa/arm32/printer.odin index 110ed668b..2cdf97ac1 100644 --- a/core/rexcode/arm32/printer.odin +++ b/core/rexcode/isa/arm32/printer.odin @@ -7,7 +7,7 @@ import "core:fmt" import "core:io" import "core:os" import "core:reflect" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // AArch32 PRINTER diff --git a/core/rexcode/arm32/registers.odin b/core/rexcode/isa/arm32/registers.odin similarity index 100% rename from core/rexcode/arm32/registers.odin rename to core/rexcode/isa/arm32/registers.odin diff --git a/core/rexcode/arm32/reloc.odin b/core/rexcode/isa/arm32/reloc.odin similarity index 100% rename from core/rexcode/arm32/reloc.odin rename to core/rexcode/isa/arm32/reloc.odin diff --git a/core/rexcode/arm32/tablegen/encoding_table.odin b/core/rexcode/isa/arm32/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/arm32/tablegen/encoding_table.odin rename to core/rexcode/isa/arm32/tablegen/encoding_table.odin diff --git a/core/rexcode/arm32/tablegen/gen.odin b/core/rexcode/isa/arm32/tablegen/gen.odin similarity index 100% rename from core/rexcode/arm32/tablegen/gen.odin rename to core/rexcode/isa/arm32/tablegen/gen.odin diff --git a/core/rexcode/arm32/tablegen/generated/decode_tables.odin b/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/arm32/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/arm32/tablegen/generated/encode_tables.odin b/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/arm32/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/arm32/tablegen/generated/writer.odin b/core/rexcode/isa/arm32/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/arm32/tablegen/generated/writer.odin rename to core/rexcode/isa/arm32/tablegen/generated/writer.odin diff --git a/core/rexcode/arm32/tablegen/specgen.lua b/core/rexcode/isa/arm32/tablegen/specgen.lua similarity index 100% rename from core/rexcode/arm32/tablegen/specgen.lua rename to core/rexcode/isa/arm32/tablegen/specgen.lua diff --git a/core/rexcode/arm32/tables.odin b/core/rexcode/isa/arm32/tables.odin similarity index 100% rename from core/rexcode/arm32/tables.odin rename to core/rexcode/isa/arm32/tables.odin diff --git a/core/rexcode/arm32/tables/arm32.bucket_list.bin b/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.bucket_list.bin rename to core/rexcode/isa/arm32/tables/arm32.bucket_list.bin diff --git a/core/rexcode/arm32/tables/arm32.encode_forms.bin b/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.encode_forms.bin rename to core/rexcode/isa/arm32/tables/arm32.encode_forms.bin diff --git a/core/rexcode/arm32/tables/arm32.encode_runs.bin b/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.encode_runs.bin rename to core/rexcode/isa/arm32/tables/arm32.encode_runs.bin diff --git a/core/rexcode/arm32/tables/arm32.entries.bin b/core/rexcode/isa/arm32/tables/arm32.entries.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.entries.bin rename to core/rexcode/isa/arm32/tables/arm32.entries.bin diff --git a/core/rexcode/arm32/tables/arm32.form_idx.bin b/core/rexcode/isa/arm32/tables/arm32.form_idx.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.form_idx.bin rename to core/rexcode/isa/arm32/tables/arm32.form_idx.bin diff --git a/core/rexcode/arm32/tables/arm32.idx_a32.bin b/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.idx_a32.bin rename to core/rexcode/isa/arm32/tables/arm32.idx_a32.bin diff --git a/core/rexcode/arm32/tables/arm32.idx_t16.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.idx_t16.bin rename to core/rexcode/isa/arm32/tables/arm32.idx_t16.bin diff --git a/core/rexcode/arm32/tables/arm32.idx_t32.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t32.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.idx_t32.bin rename to core/rexcode/isa/arm32/tables/arm32.idx_t32.bin diff --git a/core/rexcode/arm32/tables/arm32.idx_t32_sub.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t32_sub.bin similarity index 100% rename from core/rexcode/arm32/tables/arm32.idx_t32_sub.bin rename to core/rexcode/isa/arm32/tables/arm32.idx_t32_sub.bin diff --git a/core/rexcode/arm32/tests/pipeline.odin b/core/rexcode/isa/arm32/tests/pipeline.odin similarity index 100% rename from core/rexcode/arm32/tests/pipeline.odin rename to core/rexcode/isa/arm32/tests/pipeline.odin diff --git a/core/rexcode/arm32/tests/smoke.odin b/core/rexcode/isa/arm32/tests/smoke.odin similarity index 100% rename from core/rexcode/arm32/tests/smoke.odin rename to core/rexcode/isa/arm32/tests/smoke.odin diff --git a/core/rexcode/arm32/tests/sweep.odin b/core/rexcode/isa/arm32/tests/sweep.odin similarity index 100% rename from core/rexcode/arm32/tests/sweep.odin rename to core/rexcode/isa/arm32/tests/sweep.odin diff --git a/core/rexcode/arm32/tools/dump_verify_input.odin b/core/rexcode/isa/arm32/tools/dump_verify_input.odin similarity index 98% rename from core/rexcode/arm32/tools/dump_verify_input.odin rename to core/rexcode/isa/arm32/tools/dump_verify_input.odin index d019a6c79..7d886c39a 100644 --- a/core/rexcode/arm32/tools/dump_verify_input.odin +++ b/core/rexcode/isa/arm32/tools/dump_verify_input.odin @@ -17,7 +17,7 @@ package main // /tmp/rexcode_arm32_t32w.hex / _meta.txt -- T32 32-bit (high half first) // /tmp/rexcode_arm32_t16.hex / _meta.txt -- T16 16-bit (2-byte halfword) // -// Run: cd arm32 && odin run tools/dump_verify_input.odin -file +// Run: cd isa/arm32 && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" @@ -87,7 +87,7 @@ main :: proc() { fmt.println(" llvm-mc --disassemble -triple=arm-none-eabi -mattr=+armv8,+neon,+vfp4,+crc,+crypto < /tmp/rexcode_arm32_a32.hex > /tmp/rexcode_arm32_a32_llvm.txt 2>&1") fmt.println(" llvm-mc --disassemble -triple=thumbv8-none-eabi -mattr=+v8.1m.main,+mve.fp,+fp.dp,+vfp4 < /tmp/rexcode_arm32_t32w.hex > /tmp/rexcode_arm32_t32w_llvm.txt 2>&1") fmt.println(" llvm-mc --disassemble -triple=thumbv8-none-eabi -mattr=+v8.1m.main,+mve.fp,+fp.dp,+vfp4 < /tmp/rexcode_arm32_t16.hex > /tmp/rexcode_arm32_t16_llvm.txt 2>&1") - fmt.println("Then: cd arm32 && odin run tools/verify_against_llvm.odin -file") + fmt.println("Then: cd isa/arm32 && odin run tools/verify_against_llvm.odin -file") } // Fill in safe non-zero values for operand fields so LLVM can decode without diff --git a/core/rexcode/arm32/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/arm32/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/arm32/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/arm32/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/arm32/tools/llvm_per_line.sh b/core/rexcode/isa/arm32/tools/llvm_per_line.sh similarity index 100% rename from core/rexcode/arm32/tools/llvm_per_line.sh rename to core/rexcode/isa/arm32/tools/llvm_per_line.sh diff --git a/core/rexcode/arm32/tools/verify_against_llvm.odin b/core/rexcode/isa/arm32/tools/verify_against_llvm.odin similarity index 100% rename from core/rexcode/arm32/tools/verify_against_llvm.odin rename to core/rexcode/isa/arm32/tools/verify_against_llvm.odin diff --git a/core/rexcode/arm64/bitmask.odin b/core/rexcode/isa/arm64/bitmask.odin similarity index 100% rename from core/rexcode/arm64/bitmask.odin rename to core/rexcode/isa/arm64/bitmask.odin diff --git a/core/rexcode/arm64/decoder.odin b/core/rexcode/isa/arm64/decoder.odin similarity index 99% rename from core/rexcode/arm64/decoder.odin rename to core/rexcode/isa/arm64/decoder.odin index f55b227c8..8a2deb523 100644 --- a/core/rexcode/arm64/decoder.odin +++ b/core/rexcode/isa/arm64/decoder.odin @@ -2,7 +2,7 @@ package rexcode_arm64 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // AArch64 DECODER diff --git a/core/rexcode/arm64/encoder.odin b/core/rexcode/isa/arm64/encoder.odin similarity index 100% rename from core/rexcode/arm64/encoder.odin rename to core/rexcode/isa/arm64/encoder.odin diff --git a/core/rexcode/arm64/encoding_types.odin b/core/rexcode/isa/arm64/encoding_types.odin similarity index 99% rename from core/rexcode/arm64/encoding_types.odin rename to core/rexcode/isa/arm64/encoding_types.odin index 71f2463f1..47269bc1b 100644 --- a/core/rexcode/arm64/encoding_types.odin +++ b/core/rexcode/isa/arm64/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_arm64 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // AArch64 ENCODING FUNDAMENTALS diff --git a/core/rexcode/arm64/instructions.odin b/core/rexcode/isa/arm64/instructions.odin similarity index 100% rename from core/rexcode/arm64/instructions.odin rename to core/rexcode/isa/arm64/instructions.odin diff --git a/core/rexcode/arm64/mnemonic_builders.odin b/core/rexcode/isa/arm64/mnemonic_builders.odin similarity index 100% rename from core/rexcode/arm64/mnemonic_builders.odin rename to core/rexcode/isa/arm64/mnemonic_builders.odin diff --git a/core/rexcode/arm64/mnemonics.odin b/core/rexcode/isa/arm64/mnemonics.odin similarity index 100% rename from core/rexcode/arm64/mnemonics.odin rename to core/rexcode/isa/arm64/mnemonics.odin diff --git a/core/rexcode/arm64/operands.odin b/core/rexcode/isa/arm64/operands.odin similarity index 100% rename from core/rexcode/arm64/operands.odin rename to core/rexcode/isa/arm64/operands.odin diff --git a/core/rexcode/arm64/printer.odin b/core/rexcode/isa/arm64/printer.odin similarity index 99% rename from core/rexcode/arm64/printer.odin rename to core/rexcode/isa/arm64/printer.odin index 1c470c774..c5a2141f7 100644 --- a/core/rexcode/arm64/printer.odin +++ b/core/rexcode/isa/arm64/printer.odin @@ -6,7 +6,7 @@ import "core:strings" import "core:reflect" import "core:os" import "core:io" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // AArch64 PRINTER diff --git a/core/rexcode/arm64/registers.odin b/core/rexcode/isa/arm64/registers.odin similarity index 100% rename from core/rexcode/arm64/registers.odin rename to core/rexcode/isa/arm64/registers.odin diff --git a/core/rexcode/arm64/reloc.odin b/core/rexcode/isa/arm64/reloc.odin similarity index 100% rename from core/rexcode/arm64/reloc.odin rename to core/rexcode/isa/arm64/reloc.odin diff --git a/core/rexcode/arm64/sysregs.odin b/core/rexcode/isa/arm64/sysregs.odin similarity index 100% rename from core/rexcode/arm64/sysregs.odin rename to core/rexcode/isa/arm64/sysregs.odin diff --git a/core/rexcode/arm64/tablegen/encoding_table.odin b/core/rexcode/isa/arm64/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/arm64/tablegen/encoding_table.odin rename to core/rexcode/isa/arm64/tablegen/encoding_table.odin diff --git a/core/rexcode/arm64/tablegen/gen.odin b/core/rexcode/isa/arm64/tablegen/gen.odin similarity index 100% rename from core/rexcode/arm64/tablegen/gen.odin rename to core/rexcode/isa/arm64/tablegen/gen.odin diff --git a/core/rexcode/arm64/tablegen/generated/decode_tables.odin b/core/rexcode/isa/arm64/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/arm64/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/arm64/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/arm64/tablegen/generated/encode_tables.odin b/core/rexcode/isa/arm64/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/arm64/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/arm64/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/arm64/tablegen/generated/writer.odin b/core/rexcode/isa/arm64/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/arm64/tablegen/generated/writer.odin rename to core/rexcode/isa/arm64/tablegen/generated/writer.odin diff --git a/core/rexcode/arm64/tablegen/specgen.lua b/core/rexcode/isa/arm64/tablegen/specgen.lua similarity index 100% rename from core/rexcode/arm64/tablegen/specgen.lua rename to core/rexcode/isa/arm64/tablegen/specgen.lua diff --git a/core/rexcode/arm64/tables.odin b/core/rexcode/isa/arm64/tables.odin similarity index 100% rename from core/rexcode/arm64/tables.odin rename to core/rexcode/isa/arm64/tables.odin diff --git a/core/rexcode/arm64/tables/arm64.encode_forms.bin b/core/rexcode/isa/arm64/tables/arm64.encode_forms.bin similarity index 100% rename from core/rexcode/arm64/tables/arm64.encode_forms.bin rename to core/rexcode/isa/arm64/tables/arm64.encode_forms.bin diff --git a/core/rexcode/arm64/tables/arm64.encode_runs.bin b/core/rexcode/isa/arm64/tables/arm64.encode_runs.bin similarity index 100% rename from core/rexcode/arm64/tables/arm64.encode_runs.bin rename to core/rexcode/isa/arm64/tables/arm64.encode_runs.bin diff --git a/core/rexcode/arm64/tables/arm64.entries.bin b/core/rexcode/isa/arm64/tables/arm64.entries.bin similarity index 100% rename from core/rexcode/arm64/tables/arm64.entries.bin rename to core/rexcode/isa/arm64/tables/arm64.entries.bin diff --git a/core/rexcode/arm64/tables/arm64.idx_op0.bin b/core/rexcode/isa/arm64/tables/arm64.idx_op0.bin similarity index 100% rename from core/rexcode/arm64/tables/arm64.idx_op0.bin rename to core/rexcode/isa/arm64/tables/arm64.idx_op0.bin diff --git a/core/rexcode/arm64/tests/pipeline_smoke.odin b/core/rexcode/isa/arm64/tests/pipeline_smoke.odin similarity index 99% rename from core/rexcode/arm64/tests/pipeline_smoke.odin rename to core/rexcode/isa/arm64/tests/pipeline_smoke.odin index 3d680b4fe..f5e8ad370 100644 --- a/core/rexcode/arm64/tests/pipeline_smoke.odin +++ b/core/rexcode/isa/arm64/tests/pipeline_smoke.odin @@ -11,7 +11,7 @@ package rexcode_arm64_tests import "core:fmt" import "core:os" import a "../" -import "../../isa" +import "core:rexcode/isa" @(private="file") rpasses := 0 @(private="file") rfailures := 0 diff --git a/core/rexcode/arm64/tests/smoke.odin b/core/rexcode/isa/arm64/tests/smoke.odin similarity index 100% rename from core/rexcode/arm64/tests/smoke.odin rename to core/rexcode/isa/arm64/tests/smoke.odin diff --git a/core/rexcode/arm64/tools/dump_verify_input.odin b/core/rexcode/isa/arm64/tools/dump_verify_input.odin similarity index 93% rename from core/rexcode/arm64/tools/dump_verify_input.odin rename to core/rexcode/isa/arm64/tools/dump_verify_input.odin index 95cd082be..6ae4adb88 100644 --- a/core/rexcode/arm64/tools/dump_verify_input.odin +++ b/core/rexcode/isa/arm64/tools/dump_verify_input.odin @@ -15,7 +15,7 @@ package main // // Then verify_against_llvm.odin reads meta + llvm output and reports mismatches. // -// Run: cd arm64 && odin run tools/dump_verify_input.odin -file +// Run: cd isa/arm64 && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" @@ -59,5 +59,5 @@ main :: proc() { fmt.println(" < /tmp/rexcode_aarch64_input.hex \\") fmt.println(" > /tmp/rexcode_aarch64_llvm.txt 2>&1") fmt.println("Then:") - fmt.println(" cd arm64 && odin run tools/verify_against_llvm.odin -file") + fmt.println(" cd isa/arm64 && odin run tools/verify_against_llvm.odin -file") } diff --git a/core/rexcode/arm64/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/arm64/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/arm64/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/arm64/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/arm64/tools/llvm_per_line.sh b/core/rexcode/isa/arm64/tools/llvm_per_line.sh similarity index 100% rename from core/rexcode/arm64/tools/llvm_per_line.sh rename to core/rexcode/isa/arm64/tools/llvm_per_line.sh diff --git a/core/rexcode/arm64/tools/verify_against_llvm.odin b/core/rexcode/isa/arm64/tools/verify_against_llvm.odin similarity index 99% rename from core/rexcode/arm64/tools/verify_against_llvm.odin rename to core/rexcode/isa/arm64/tools/verify_against_llvm.odin index a6fd71602..051166b3f 100644 --- a/core/rexcode/arm64/tools/verify_against_llvm.odin +++ b/core/rexcode/isa/arm64/tools/verify_against_llvm.odin @@ -19,7 +19,7 @@ package main // /tmp/rexcode_aarch64_verify_report.txt -- full report // /tmp/rexcode_aarch64_verify_mismatches.txt -- just the mismatches // -// Run: cd arm64 && odin run tools/verify_against_llvm.odin -file +// Run: cd isa/arm64 && odin run tools/verify_against_llvm.odin -file import "core:fmt" import "core:os" diff --git a/core/rexcode/mips/decoder.odin b/core/rexcode/isa/mips/decoder.odin similarity index 99% rename from core/rexcode/mips/decoder.odin rename to core/rexcode/isa/mips/decoder.odin index 65cea77c7..c3315ddb7 100644 --- a/core/rexcode/mips/decoder.odin +++ b/core/rexcode/isa/mips/decoder.odin @@ -2,7 +2,7 @@ package rexcode_mips -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MIPS DECODER diff --git a/core/rexcode/mips/encoder.odin b/core/rexcode/isa/mips/encoder.odin similarity index 100% rename from core/rexcode/mips/encoder.odin rename to core/rexcode/isa/mips/encoder.odin diff --git a/core/rexcode/mips/encoding_types.odin b/core/rexcode/isa/mips/encoding_types.odin similarity index 99% rename from core/rexcode/mips/encoding_types.odin rename to core/rexcode/isa/mips/encoding_types.odin index ef8fac520..3ea9d46e6 100644 --- a/core/rexcode/mips/encoding_types.odin +++ b/core/rexcode/isa/mips/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_mips -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MIPS ENCODING FUNDAMENTALS diff --git a/core/rexcode/mips/instructions.odin b/core/rexcode/isa/mips/instructions.odin similarity index 100% rename from core/rexcode/mips/instructions.odin rename to core/rexcode/isa/mips/instructions.odin diff --git a/core/rexcode/mips/mnemonic_builders.odin b/core/rexcode/isa/mips/mnemonic_builders.odin similarity index 100% rename from core/rexcode/mips/mnemonic_builders.odin rename to core/rexcode/isa/mips/mnemonic_builders.odin diff --git a/core/rexcode/mips/mnemonics.odin b/core/rexcode/isa/mips/mnemonics.odin similarity index 100% rename from core/rexcode/mips/mnemonics.odin rename to core/rexcode/isa/mips/mnemonics.odin diff --git a/core/rexcode/mips/operands.odin b/core/rexcode/isa/mips/operands.odin similarity index 100% rename from core/rexcode/mips/operands.odin rename to core/rexcode/isa/mips/operands.odin diff --git a/core/rexcode/mips/printer.odin b/core/rexcode/isa/mips/printer.odin similarity index 99% rename from core/rexcode/mips/printer.odin rename to core/rexcode/isa/mips/printer.odin index 8f30b60d0..b51b14095 100644 --- a/core/rexcode/mips/printer.odin +++ b/core/rexcode/isa/mips/printer.odin @@ -6,7 +6,7 @@ import "core:strings" import "core:reflect" import "core:os" import "core:io" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MIPS PRINTER diff --git a/core/rexcode/mips/registers.odin b/core/rexcode/isa/mips/registers.odin similarity index 100% rename from core/rexcode/mips/registers.odin rename to core/rexcode/isa/mips/registers.odin diff --git a/core/rexcode/mips/reloc.odin b/core/rexcode/isa/mips/reloc.odin similarity index 100% rename from core/rexcode/mips/reloc.odin rename to core/rexcode/isa/mips/reloc.odin diff --git a/core/rexcode/mips/tablegen/encoding_table.odin b/core/rexcode/isa/mips/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/mips/tablegen/encoding_table.odin rename to core/rexcode/isa/mips/tablegen/encoding_table.odin diff --git a/core/rexcode/mips/tablegen/gen.odin b/core/rexcode/isa/mips/tablegen/gen.odin similarity index 100% rename from core/rexcode/mips/tablegen/gen.odin rename to core/rexcode/isa/mips/tablegen/gen.odin diff --git a/core/rexcode/mips/tablegen/generated/decode_tables.odin b/core/rexcode/isa/mips/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/mips/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/mips/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/mips/tablegen/generated/encode_tables.odin b/core/rexcode/isa/mips/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/mips/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/mips/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/mips/tablegen/generated/writer.odin b/core/rexcode/isa/mips/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/mips/tablegen/generated/writer.odin rename to core/rexcode/isa/mips/tablegen/generated/writer.odin diff --git a/core/rexcode/mips/tablegen/specgen.lua b/core/rexcode/isa/mips/tablegen/specgen.lua similarity index 100% rename from core/rexcode/mips/tablegen/specgen.lua rename to core/rexcode/isa/mips/tablegen/specgen.lua diff --git a/core/rexcode/mips/tables.odin b/core/rexcode/isa/mips/tables.odin similarity index 100% rename from core/rexcode/mips/tables.odin rename to core/rexcode/isa/mips/tables.odin diff --git a/core/rexcode/mips/tables/mips.encode_forms.bin b/core/rexcode/isa/mips/tables/mips.encode_forms.bin similarity index 100% rename from core/rexcode/mips/tables/mips.encode_forms.bin rename to core/rexcode/isa/mips/tables/mips.encode_forms.bin diff --git a/core/rexcode/mips/tables/mips.encode_runs.bin b/core/rexcode/isa/mips/tables/mips.encode_runs.bin similarity index 100% rename from core/rexcode/mips/tables/mips.encode_runs.bin rename to core/rexcode/isa/mips/tables/mips.encode_runs.bin diff --git a/core/rexcode/mips/tables/mips.entries.bin b/core/rexcode/isa/mips/tables/mips.entries.bin similarity index 100% rename from core/rexcode/mips/tables/mips.entries.bin rename to core/rexcode/isa/mips/tables/mips.entries.bin diff --git a/core/rexcode/mips/tables/mips.idx_cop1.bin b/core/rexcode/isa/mips/tables/mips.idx_cop1.bin similarity index 100% rename from core/rexcode/mips/tables/mips.idx_cop1.bin rename to core/rexcode/isa/mips/tables/mips.idx_cop1.bin diff --git a/core/rexcode/mips/tables/mips.idx_primary.bin b/core/rexcode/isa/mips/tables/mips.idx_primary.bin similarity index 100% rename from core/rexcode/mips/tables/mips.idx_primary.bin rename to core/rexcode/isa/mips/tables/mips.idx_primary.bin diff --git a/core/rexcode/mips/tables/mips.idx_regimm.bin b/core/rexcode/isa/mips/tables/mips.idx_regimm.bin similarity index 100% rename from core/rexcode/mips/tables/mips.idx_regimm.bin rename to core/rexcode/isa/mips/tables/mips.idx_regimm.bin diff --git a/core/rexcode/mips/tables/mips.idx_special.bin b/core/rexcode/isa/mips/tables/mips.idx_special.bin similarity index 100% rename from core/rexcode/mips/tables/mips.idx_special.bin rename to core/rexcode/isa/mips/tables/mips.idx_special.bin diff --git a/core/rexcode/mips/tables/mips.idx_special2.bin b/core/rexcode/isa/mips/tables/mips.idx_special2.bin similarity index 100% rename from core/rexcode/mips/tables/mips.idx_special2.bin rename to core/rexcode/isa/mips/tables/mips.idx_special2.bin diff --git a/core/rexcode/mips/tables/mips.idx_special3.bin b/core/rexcode/isa/mips/tables/mips.idx_special3.bin similarity index 100% rename from core/rexcode/mips/tables/mips.idx_special3.bin rename to core/rexcode/isa/mips/tables/mips.idx_special3.bin diff --git a/core/rexcode/mips/tests/decode_smoke.odin b/core/rexcode/isa/mips/tests/decode_smoke.odin similarity index 100% rename from core/rexcode/mips/tests/decode_smoke.odin rename to core/rexcode/isa/mips/tests/decode_smoke.odin diff --git a/core/rexcode/mips/tests/encode_smoke.odin b/core/rexcode/isa/mips/tests/encode_smoke.odin similarity index 100% rename from core/rexcode/mips/tests/encode_smoke.odin rename to core/rexcode/isa/mips/tests/encode_smoke.odin diff --git a/core/rexcode/mips/tests/print_smoke.odin b/core/rexcode/isa/mips/tests/print_smoke.odin similarity index 100% rename from core/rexcode/mips/tests/print_smoke.odin rename to core/rexcode/isa/mips/tests/print_smoke.odin diff --git a/core/rexcode/mips/tests/smoke.odin b/core/rexcode/isa/mips/tests/smoke.odin similarity index 100% rename from core/rexcode/mips/tests/smoke.odin rename to core/rexcode/isa/mips/tests/smoke.odin diff --git a/core/rexcode/mips/tools/dump_verify_input.odin b/core/rexcode/isa/mips/tools/dump_verify_input.odin similarity index 96% rename from core/rexcode/mips/tools/dump_verify_input.odin rename to core/rexcode/isa/mips/tools/dump_verify_input.odin index 8ba049e1f..eaae4b8a1 100644 --- a/core/rexcode/mips/tools/dump_verify_input.odin +++ b/core/rexcode/isa/mips/tools/dump_verify_input.odin @@ -13,7 +13,7 @@ package main // MIPS u32 instruction words go on the wire big-endian; llvm-mc's // `-triple=mips` consumes hex bytes in that order, so we emit byte 3,2,1,0. // -// Run: cd mips && odin run tools/dump_verify_input.odin -file +// Run: cd isa/mips && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" diff --git a/core/rexcode/mips/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/mips/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/mips/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/mips/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/mips/tools/llvm_per_line.sh b/core/rexcode/isa/mips/tools/llvm_per_line.sh similarity index 100% rename from core/rexcode/mips/tools/llvm_per_line.sh rename to core/rexcode/isa/mips/tools/llvm_per_line.sh diff --git a/core/rexcode/mips/tools/verify_against_llvm.odin b/core/rexcode/isa/mips/tools/verify_against_llvm.odin similarity index 100% rename from core/rexcode/mips/tools/verify_against_llvm.odin rename to core/rexcode/isa/mips/tools/verify_against_llvm.odin diff --git a/core/rexcode/mos6502/decoder.odin b/core/rexcode/isa/mos6502/decoder.odin similarity index 99% rename from core/rexcode/mos6502/decoder.odin rename to core/rexcode/isa/mos6502/decoder.odin index 96515419d..85700beda 100644 --- a/core/rexcode/mos6502/decoder.odin +++ b/core/rexcode/isa/mos6502/decoder.odin @@ -2,7 +2,7 @@ package rexcode_mos6502 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MOS 6502 DECODER diff --git a/core/rexcode/mos6502/encoder.odin b/core/rexcode/isa/mos6502/encoder.odin similarity index 99% rename from core/rexcode/mos6502/encoder.odin rename to core/rexcode/isa/mos6502/encoder.odin index 57f7ca31e..f9cf05da9 100644 --- a/core/rexcode/mos6502/encoder.odin +++ b/core/rexcode/isa/mos6502/encoder.odin @@ -2,7 +2,7 @@ package rexcode_mos6502 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MOS 6502 ENCODER diff --git a/core/rexcode/mos6502/encoding_types.odin b/core/rexcode/isa/mos6502/encoding_types.odin similarity index 99% rename from core/rexcode/mos6502/encoding_types.odin rename to core/rexcode/isa/mos6502/encoding_types.odin index 334333bb0..444bcd74f 100644 --- a/core/rexcode/mos6502/encoding_types.odin +++ b/core/rexcode/isa/mos6502/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_mos6502 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MOS 6502 ENCODING FUNDAMENTALS diff --git a/core/rexcode/mos6502/instructions.odin b/core/rexcode/isa/mos6502/instructions.odin similarity index 100% rename from core/rexcode/mos6502/instructions.odin rename to core/rexcode/isa/mos6502/instructions.odin diff --git a/core/rexcode/mos6502/mnemonic_builders.odin b/core/rexcode/isa/mos6502/mnemonic_builders.odin similarity index 100% rename from core/rexcode/mos6502/mnemonic_builders.odin rename to core/rexcode/isa/mos6502/mnemonic_builders.odin diff --git a/core/rexcode/mos6502/mnemonics.odin b/core/rexcode/isa/mos6502/mnemonics.odin similarity index 100% rename from core/rexcode/mos6502/mnemonics.odin rename to core/rexcode/isa/mos6502/mnemonics.odin diff --git a/core/rexcode/mos6502/operands.odin b/core/rexcode/isa/mos6502/operands.odin similarity index 100% rename from core/rexcode/mos6502/operands.odin rename to core/rexcode/isa/mos6502/operands.odin diff --git a/core/rexcode/mos6502/printer.odin b/core/rexcode/isa/mos6502/printer.odin similarity index 99% rename from core/rexcode/mos6502/printer.odin rename to core/rexcode/isa/mos6502/printer.odin index e337ae956..f2a5020ee 100644 --- a/core/rexcode/mos6502/printer.odin +++ b/core/rexcode/isa/mos6502/printer.odin @@ -6,7 +6,7 @@ import "core:strings" import "core:reflect" import "core:os" import "core:io" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // MOS 6502 PRINTER diff --git a/core/rexcode/mos6502/registers.odin b/core/rexcode/isa/mos6502/registers.odin similarity index 100% rename from core/rexcode/mos6502/registers.odin rename to core/rexcode/isa/mos6502/registers.odin diff --git a/core/rexcode/mos6502/reloc.odin b/core/rexcode/isa/mos6502/reloc.odin similarity index 100% rename from core/rexcode/mos6502/reloc.odin rename to core/rexcode/isa/mos6502/reloc.odin diff --git a/core/rexcode/mos6502/tablegen/encoding_table.odin b/core/rexcode/isa/mos6502/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/mos6502/tablegen/encoding_table.odin rename to core/rexcode/isa/mos6502/tablegen/encoding_table.odin diff --git a/core/rexcode/mos6502/tablegen/gen.odin b/core/rexcode/isa/mos6502/tablegen/gen.odin similarity index 100% rename from core/rexcode/mos6502/tablegen/gen.odin rename to core/rexcode/isa/mos6502/tablegen/gen.odin diff --git a/core/rexcode/mos6502/tablegen/generated/decode_tables.odin b/core/rexcode/isa/mos6502/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/mos6502/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/mos6502/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/mos6502/tablegen/generated/encode_tables.odin b/core/rexcode/isa/mos6502/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/mos6502/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/mos6502/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/mos6502/tablegen/generated/writer.odin b/core/rexcode/isa/mos6502/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/mos6502/tablegen/generated/writer.odin rename to core/rexcode/isa/mos6502/tablegen/generated/writer.odin diff --git a/core/rexcode/mos6502/tables.odin b/core/rexcode/isa/mos6502/tables.odin similarity index 100% rename from core/rexcode/mos6502/tables.odin rename to core/rexcode/isa/mos6502/tables.odin diff --git a/core/rexcode/mos6502/tables/mos6502.encode_forms.bin b/core/rexcode/isa/mos6502/tables/mos6502.encode_forms.bin similarity index 100% rename from core/rexcode/mos6502/tables/mos6502.encode_forms.bin rename to core/rexcode/isa/mos6502/tables/mos6502.encode_forms.bin diff --git a/core/rexcode/mos6502/tables/mos6502.encode_runs.bin b/core/rexcode/isa/mos6502/tables/mos6502.encode_runs.bin similarity index 100% rename from core/rexcode/mos6502/tables/mos6502.encode_runs.bin rename to core/rexcode/isa/mos6502/tables/mos6502.encode_runs.bin diff --git a/core/rexcode/mos6502/tables/mos6502.entries.bin b/core/rexcode/isa/mos6502/tables/mos6502.entries.bin similarity index 100% rename from core/rexcode/mos6502/tables/mos6502.entries.bin rename to core/rexcode/isa/mos6502/tables/mos6502.entries.bin diff --git a/core/rexcode/mos6502/tables/mos6502.idx_opcode.bin b/core/rexcode/isa/mos6502/tables/mos6502.idx_opcode.bin similarity index 100% rename from core/rexcode/mos6502/tables/mos6502.idx_opcode.bin rename to core/rexcode/isa/mos6502/tables/mos6502.idx_opcode.bin diff --git a/core/rexcode/mos6502/tests/pipeline_smoke.odin b/core/rexcode/isa/mos6502/tests/pipeline_smoke.odin similarity index 100% rename from core/rexcode/mos6502/tests/pipeline_smoke.odin rename to core/rexcode/isa/mos6502/tests/pipeline_smoke.odin diff --git a/core/rexcode/mos6502/tests/smoke.odin b/core/rexcode/isa/mos6502/tests/smoke.odin similarity index 100% rename from core/rexcode/mos6502/tests/smoke.odin rename to core/rexcode/isa/mos6502/tests/smoke.odin diff --git a/core/rexcode/mos6502/tools/dump_verify_input.odin b/core/rexcode/isa/mos6502/tools/dump_verify_input.odin similarity index 96% rename from core/rexcode/mos6502/tools/dump_verify_input.odin rename to core/rexcode/isa/mos6502/tools/dump_verify_input.odin index cdd937e3f..a5e3bfcb7 100644 --- a/core/rexcode/mos6502/tools/dump_verify_input.odin +++ b/core/rexcode/isa/mos6502/tools/dump_verify_input.odin @@ -13,7 +13,7 @@ package main // /tmp/rexcode_mos6502.hex bytes per line (1-7 bytes) // /tmp/rexcode_mos6502_meta.txt parallel meta // -// Run: cd mos6502 && odin run tools/dump_verify_input.odin -file +// Run: cd isa/mos6502 && odin run tools/dump_verify_input.odin -file // // Verifier: bash tools/verify_against_xa.sh /tmp/rexcode_mos6502.hex diff --git a/core/rexcode/mos6502/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/mos6502/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/mos6502/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/mos6502/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/mos6502/tools/verify_against_xa.sh b/core/rexcode/isa/mos6502/tools/verify_against_xa.sh similarity index 98% rename from core/rexcode/mos6502/tools/verify_against_xa.sh rename to core/rexcode/isa/mos6502/tools/verify_against_xa.sh index 3d5ccbb98..d89cb3097 100644 --- a/core/rexcode/mos6502/tools/verify_against_xa.sh +++ b/core/rexcode/isa/mos6502/tools/verify_against_xa.sh @@ -29,7 +29,7 @@ if ! command -v da65 >/dev/null 2>&1; then fi if [ ! -f "$HEX_FILE" ] || [ ! -f "$META_FILE" ]; then echo "Manifest files missing. Run first:" - echo " cd mos6502 && odin run tools/dump_verify_input.odin -file" + echo " cd isa/mos6502 && odin run tools/dump_verify_input.odin -file" exit 1 fi diff --git a/core/rexcode/mos65816/decoder.odin b/core/rexcode/isa/mos65816/decoder.odin similarity index 99% rename from core/rexcode/mos65816/decoder.odin rename to core/rexcode/isa/mos65816/decoder.odin index f21e6ace9..89b9cf4fb 100644 --- a/core/rexcode/mos65816/decoder.odin +++ b/core/rexcode/isa/mos65816/decoder.odin @@ -2,7 +2,7 @@ package rexcode_mos65816 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // W65C816S DECODER diff --git a/core/rexcode/mos65816/encoder.odin b/core/rexcode/isa/mos65816/encoder.odin similarity index 99% rename from core/rexcode/mos65816/encoder.odin rename to core/rexcode/isa/mos65816/encoder.odin index fb7b2dbbd..503701263 100644 --- a/core/rexcode/mos65816/encoder.odin +++ b/core/rexcode/isa/mos65816/encoder.odin @@ -2,7 +2,7 @@ package rexcode_mos65816 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // W65C816S ENCODER diff --git a/core/rexcode/mos65816/encoding_types.odin b/core/rexcode/isa/mos65816/encoding_types.odin similarity index 99% rename from core/rexcode/mos65816/encoding_types.odin rename to core/rexcode/isa/mos65816/encoding_types.odin index a2bc957a1..8f3c22c66 100644 --- a/core/rexcode/mos65816/encoding_types.odin +++ b/core/rexcode/isa/mos65816/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_mos65816 -import "../isa" +import "core:rexcode/isa" // ============================================================================= // W65C816S ENCODING FUNDAMENTALS diff --git a/core/rexcode/mos65816/instructions.odin b/core/rexcode/isa/mos65816/instructions.odin similarity index 100% rename from core/rexcode/mos65816/instructions.odin rename to core/rexcode/isa/mos65816/instructions.odin diff --git a/core/rexcode/mos65816/mnemonic_builders.odin b/core/rexcode/isa/mos65816/mnemonic_builders.odin similarity index 100% rename from core/rexcode/mos65816/mnemonic_builders.odin rename to core/rexcode/isa/mos65816/mnemonic_builders.odin diff --git a/core/rexcode/mos65816/mnemonics.odin b/core/rexcode/isa/mos65816/mnemonics.odin similarity index 100% rename from core/rexcode/mos65816/mnemonics.odin rename to core/rexcode/isa/mos65816/mnemonics.odin diff --git a/core/rexcode/mos65816/operands.odin b/core/rexcode/isa/mos65816/operands.odin similarity index 100% rename from core/rexcode/mos65816/operands.odin rename to core/rexcode/isa/mos65816/operands.odin diff --git a/core/rexcode/mos65816/printer.odin b/core/rexcode/isa/mos65816/printer.odin similarity index 99% rename from core/rexcode/mos65816/printer.odin rename to core/rexcode/isa/mos65816/printer.odin index c10a5fa16..61cd358c6 100644 --- a/core/rexcode/mos65816/printer.odin +++ b/core/rexcode/isa/mos65816/printer.odin @@ -6,7 +6,7 @@ import "core:strings" import "core:reflect" import "core:os" import "core:io" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // W65C816S PRINTER diff --git a/core/rexcode/mos65816/registers.odin b/core/rexcode/isa/mos65816/registers.odin similarity index 100% rename from core/rexcode/mos65816/registers.odin rename to core/rexcode/isa/mos65816/registers.odin diff --git a/core/rexcode/mos65816/reloc.odin b/core/rexcode/isa/mos65816/reloc.odin similarity index 100% rename from core/rexcode/mos65816/reloc.odin rename to core/rexcode/isa/mos65816/reloc.odin diff --git a/core/rexcode/mos65816/tablegen/encoding_table.odin b/core/rexcode/isa/mos65816/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/mos65816/tablegen/encoding_table.odin rename to core/rexcode/isa/mos65816/tablegen/encoding_table.odin diff --git a/core/rexcode/mos65816/tablegen/gen.odin b/core/rexcode/isa/mos65816/tablegen/gen.odin similarity index 100% rename from core/rexcode/mos65816/tablegen/gen.odin rename to core/rexcode/isa/mos65816/tablegen/gen.odin diff --git a/core/rexcode/mos65816/tablegen/generated/decode_tables.odin b/core/rexcode/isa/mos65816/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/mos65816/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/mos65816/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/mos65816/tablegen/generated/encode_tables.odin b/core/rexcode/isa/mos65816/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/mos65816/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/mos65816/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/mos65816/tablegen/generated/writer.odin b/core/rexcode/isa/mos65816/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/mos65816/tablegen/generated/writer.odin rename to core/rexcode/isa/mos65816/tablegen/generated/writer.odin diff --git a/core/rexcode/mos65816/tables.odin b/core/rexcode/isa/mos65816/tables.odin similarity index 100% rename from core/rexcode/mos65816/tables.odin rename to core/rexcode/isa/mos65816/tables.odin diff --git a/core/rexcode/mos65816/tables/mos65816.encode_forms.bin b/core/rexcode/isa/mos65816/tables/mos65816.encode_forms.bin similarity index 100% rename from core/rexcode/mos65816/tables/mos65816.encode_forms.bin rename to core/rexcode/isa/mos65816/tables/mos65816.encode_forms.bin diff --git a/core/rexcode/mos65816/tables/mos65816.encode_runs.bin b/core/rexcode/isa/mos65816/tables/mos65816.encode_runs.bin similarity index 100% rename from core/rexcode/mos65816/tables/mos65816.encode_runs.bin rename to core/rexcode/isa/mos65816/tables/mos65816.encode_runs.bin diff --git a/core/rexcode/mos65816/tables/mos65816.entries.bin b/core/rexcode/isa/mos65816/tables/mos65816.entries.bin similarity index 100% rename from core/rexcode/mos65816/tables/mos65816.entries.bin rename to core/rexcode/isa/mos65816/tables/mos65816.entries.bin diff --git a/core/rexcode/mos65816/tables/mos65816.idx_opcode.bin b/core/rexcode/isa/mos65816/tables/mos65816.idx_opcode.bin similarity index 100% rename from core/rexcode/mos65816/tables/mos65816.idx_opcode.bin rename to core/rexcode/isa/mos65816/tables/mos65816.idx_opcode.bin diff --git a/core/rexcode/mos65816/tests/smoke.odin b/core/rexcode/isa/mos65816/tests/smoke.odin similarity index 100% rename from core/rexcode/mos65816/tests/smoke.odin rename to core/rexcode/isa/mos65816/tests/smoke.odin diff --git a/core/rexcode/mos65816/tools/dump_verify_input.odin b/core/rexcode/isa/mos65816/tools/dump_verify_input.odin similarity index 98% rename from core/rexcode/mos65816/tools/dump_verify_input.odin rename to core/rexcode/isa/mos65816/tools/dump_verify_input.odin index 875228fbd..f5a09bdc8 100644 --- a/core/rexcode/mos65816/tools/dump_verify_input.odin +++ b/core/rexcode/isa/mos65816/tools/dump_verify_input.odin @@ -17,7 +17,7 @@ package main // verifier assembles this through ca65 with --listing and compares the // listing's per-line bytes against our table. // -// Run: cd mos65816 && odin run tools/dump_verify_input.odin -file +// Run: cd isa/mos65816 && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" diff --git a/core/rexcode/mos65816/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/mos65816/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/mos65816/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/mos65816/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/mos65816/tools/verify_against_ca65.sh b/core/rexcode/isa/mos65816/tools/verify_against_ca65.sh similarity index 98% rename from core/rexcode/mos65816/tools/verify_against_ca65.sh rename to core/rexcode/isa/mos65816/tools/verify_against_ca65.sh index 9e81512ba..33ecf27db 100644 --- a/core/rexcode/mos65816/tools/verify_against_ca65.sh +++ b/core/rexcode/isa/mos65816/tools/verify_against_ca65.sh @@ -31,7 +31,7 @@ fi for f in "$HEX_FILE" "$ASM_FILE" "$META_FILE"; do if [ ! -f "$f" ]; then echo "Manifest missing: $f" - echo "Run first: cd mos65816 && odin run tools/dump_verify_input.odin -file" + echo "Run first: cd isa/mos65816 && odin run tools/dump_verify_input.odin -file" exit 1 fi done diff --git a/core/rexcode/ppc/decoder.odin b/core/rexcode/isa/ppc/decoder.odin similarity index 99% rename from core/rexcode/ppc/decoder.odin rename to core/rexcode/isa/ppc/decoder.odin index 10f960e52..2111df8f6 100644 --- a/core/rexcode/ppc/decoder.odin +++ b/core/rexcode/isa/ppc/decoder.odin @@ -2,7 +2,7 @@ package rexcode_ppc -import "../isa" +import "core:rexcode/isa" // ============================================================================= // PowerPC DECODER diff --git a/core/rexcode/ppc/encoder.odin b/core/rexcode/isa/ppc/encoder.odin similarity index 100% rename from core/rexcode/ppc/encoder.odin rename to core/rexcode/isa/ppc/encoder.odin diff --git a/core/rexcode/ppc/encoding_types.odin b/core/rexcode/isa/ppc/encoding_types.odin similarity index 99% rename from core/rexcode/ppc/encoding_types.odin rename to core/rexcode/isa/ppc/encoding_types.odin index c1cf03dfe..2906861cb 100644 --- a/core/rexcode/ppc/encoding_types.odin +++ b/core/rexcode/isa/ppc/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_ppc -import "../isa" +import "core:rexcode/isa" // ============================================================================= // PowerPC ENCODING FUNDAMENTALS diff --git a/core/rexcode/ppc/instructions.odin b/core/rexcode/isa/ppc/instructions.odin similarity index 100% rename from core/rexcode/ppc/instructions.odin rename to core/rexcode/isa/ppc/instructions.odin diff --git a/core/rexcode/ppc/mnemonic_builders.odin b/core/rexcode/isa/ppc/mnemonic_builders.odin similarity index 100% rename from core/rexcode/ppc/mnemonic_builders.odin rename to core/rexcode/isa/ppc/mnemonic_builders.odin diff --git a/core/rexcode/ppc/mnemonics.odin b/core/rexcode/isa/ppc/mnemonics.odin similarity index 100% rename from core/rexcode/ppc/mnemonics.odin rename to core/rexcode/isa/ppc/mnemonics.odin diff --git a/core/rexcode/ppc/operands.odin b/core/rexcode/isa/ppc/operands.odin similarity index 100% rename from core/rexcode/ppc/operands.odin rename to core/rexcode/isa/ppc/operands.odin diff --git a/core/rexcode/ppc/printer.odin b/core/rexcode/isa/ppc/printer.odin similarity index 99% rename from core/rexcode/ppc/printer.odin rename to core/rexcode/isa/ppc/printer.odin index 5018d9cde..3105b7b43 100644 --- a/core/rexcode/ppc/printer.odin +++ b/core/rexcode/isa/ppc/printer.odin @@ -7,7 +7,7 @@ import "core:fmt" import "core:io" import "core:os" import "core:reflect" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // PowerPC PRINTER diff --git a/core/rexcode/ppc/registers.odin b/core/rexcode/isa/ppc/registers.odin similarity index 100% rename from core/rexcode/ppc/registers.odin rename to core/rexcode/isa/ppc/registers.odin diff --git a/core/rexcode/ppc/reloc.odin b/core/rexcode/isa/ppc/reloc.odin similarity index 100% rename from core/rexcode/ppc/reloc.odin rename to core/rexcode/isa/ppc/reloc.odin diff --git a/core/rexcode/ppc/tablegen/encoding_table.odin b/core/rexcode/isa/ppc/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/ppc/tablegen/encoding_table.odin rename to core/rexcode/isa/ppc/tablegen/encoding_table.odin diff --git a/core/rexcode/ppc/tablegen/gen.odin b/core/rexcode/isa/ppc/tablegen/gen.odin similarity index 100% rename from core/rexcode/ppc/tablegen/gen.odin rename to core/rexcode/isa/ppc/tablegen/gen.odin diff --git a/core/rexcode/ppc/tablegen/generated/decode_tables.odin b/core/rexcode/isa/ppc/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/ppc/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/ppc/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/ppc/tablegen/generated/encode_tables.odin b/core/rexcode/isa/ppc/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/ppc/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/ppc/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/ppc/tablegen/generated/writer.odin b/core/rexcode/isa/ppc/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/ppc/tablegen/generated/writer.odin rename to core/rexcode/isa/ppc/tablegen/generated/writer.odin diff --git a/core/rexcode/ppc/tables.odin b/core/rexcode/isa/ppc/tables.odin similarity index 100% rename from core/rexcode/ppc/tables.odin rename to core/rexcode/isa/ppc/tables.odin diff --git a/core/rexcode/ppc/tables/ppc.bucket_list.bin b/core/rexcode/isa/ppc/tables/ppc.bucket_list.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.bucket_list.bin rename to core/rexcode/isa/ppc/tables/ppc.bucket_list.bin diff --git a/core/rexcode/ppc/tables/ppc.encode_forms.bin b/core/rexcode/isa/ppc/tables/ppc.encode_forms.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.encode_forms.bin rename to core/rexcode/isa/ppc/tables/ppc.encode_forms.bin diff --git a/core/rexcode/ppc/tables/ppc.encode_runs.bin b/core/rexcode/isa/ppc/tables/ppc.encode_runs.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.encode_runs.bin rename to core/rexcode/isa/ppc/tables/ppc.encode_runs.bin diff --git a/core/rexcode/ppc/tables/ppc.entries.bin b/core/rexcode/isa/ppc/tables/ppc.entries.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.entries.bin rename to core/rexcode/isa/ppc/tables/ppc.entries.bin diff --git a/core/rexcode/ppc/tables/ppc.form_idx.bin b/core/rexcode/isa/ppc/tables/ppc.form_idx.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.form_idx.bin rename to core/rexcode/isa/ppc/tables/ppc.form_idx.bin diff --git a/core/rexcode/ppc/tables/ppc.idx_primary.bin b/core/rexcode/isa/ppc/tables/ppc.idx_primary.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.idx_primary.bin rename to core/rexcode/isa/ppc/tables/ppc.idx_primary.bin diff --git a/core/rexcode/ppc/tables/ppc.idx_sub.bin b/core/rexcode/isa/ppc/tables/ppc.idx_sub.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.idx_sub.bin rename to core/rexcode/isa/ppc/tables/ppc.idx_sub.bin diff --git a/core/rexcode/ppc/tables/ppc.prefix_bits.bin b/core/rexcode/isa/ppc/tables/ppc.prefix_bits.bin similarity index 100% rename from core/rexcode/ppc/tables/ppc.prefix_bits.bin rename to core/rexcode/isa/ppc/tables/ppc.prefix_bits.bin diff --git a/core/rexcode/ppc/tests/branch_reloc.odin b/core/rexcode/isa/ppc/tests/branch_reloc.odin similarity index 99% rename from core/rexcode/ppc/tests/branch_reloc.odin rename to core/rexcode/isa/ppc/tests/branch_reloc.odin index 9bf991f33..7a614cd95 100644 --- a/core/rexcode/ppc/tests/branch_reloc.odin +++ b/core/rexcode/isa/ppc/tests/branch_reloc.odin @@ -5,7 +5,7 @@ package rexcode_ppc_tests import "core:fmt" import "core:os" import p ".." -import "../../isa" +import "core:rexcode/isa" ok, fail: int diff --git a/core/rexcode/ppc/tests/decode_sweep.odin b/core/rexcode/isa/ppc/tests/decode_sweep.odin similarity index 100% rename from core/rexcode/ppc/tests/decode_sweep.odin rename to core/rexcode/isa/ppc/tests/decode_sweep.odin diff --git a/core/rexcode/ppc/tests/full_sweep.odin b/core/rexcode/isa/ppc/tests/full_sweep.odin similarity index 99% rename from core/rexcode/ppc/tests/full_sweep.odin rename to core/rexcode/isa/ppc/tests/full_sweep.odin index e73d90437..9db5f0239 100644 --- a/core/rexcode/ppc/tests/full_sweep.odin +++ b/core/rexcode/isa/ppc/tests/full_sweep.odin @@ -17,7 +17,7 @@ package rexcode_ppc_tests import "core:fmt" import "core:os" import p ".." -import "../../isa" +import "core:rexcode/isa" Stats :: struct { ok, build_fail, encode_fail, decode_fail, reencode_fail, byte_mismatch, mn_alias: int, diff --git a/core/rexcode/ppc/tests/printer.odin b/core/rexcode/isa/ppc/tests/printer.odin similarity index 98% rename from core/rexcode/ppc/tests/printer.odin rename to core/rexcode/isa/ppc/tests/printer.odin index cdab622ff..ea8d4943e 100644 --- a/core/rexcode/ppc/tests/printer.odin +++ b/core/rexcode/isa/ppc/tests/printer.odin @@ -6,7 +6,7 @@ import "core:fmt" import "core:os" import "core:strings" import p ".." -import "../../isa" +import "core:rexcode/isa" p_ok, p_fail: int diff --git a/core/rexcode/ppc/tests/roundtrip.odin b/core/rexcode/isa/ppc/tests/roundtrip.odin similarity index 99% rename from core/rexcode/ppc/tests/roundtrip.odin rename to core/rexcode/isa/ppc/tests/roundtrip.odin index 08b515af5..919571925 100644 --- a/core/rexcode/ppc/tests/roundtrip.odin +++ b/core/rexcode/isa/ppc/tests/roundtrip.odin @@ -5,7 +5,7 @@ package rexcode_ppc_tests import "core:fmt" import "core:os" import p ".." -import "../../isa" +import "core:rexcode/isa" @(private="file") check_roundtrip :: proc(name: string, inst: p.Instruction, want_bytes: []u8) { diff --git a/core/rexcode/ppc/tests/smoke.odin b/core/rexcode/isa/ppc/tests/smoke.odin similarity index 100% rename from core/rexcode/ppc/tests/smoke.odin rename to core/rexcode/isa/ppc/tests/smoke.odin diff --git a/core/rexcode/ppc/tools/dump_verify_input.odin b/core/rexcode/isa/ppc/tools/dump_verify_input.odin similarity index 98% rename from core/rexcode/ppc/tools/dump_verify_input.odin rename to core/rexcode/isa/ppc/tools/dump_verify_input.odin index aae1b9a35..99a9859e9 100644 --- a/core/rexcode/ppc/tools/dump_verify_input.odin +++ b/core/rexcode/isa/ppc/tools/dump_verify_input.odin @@ -20,7 +20,7 @@ package main // // Parallel meta files keep the row-to-mnemonic mapping. // -// Run: cd ppc && odin run tools/dump_verify_input.odin -file +// Run: cd isa/ppc && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" @@ -85,7 +85,7 @@ main :: proc() { fmt.println("Next:") fmt.println(" bash tools/llvm_per_line.sh /tmp/rexcode_ppc_main.hex powerpc64-unknown-linux-gnu +isa-v207-instructions,+isa-v30-instructions,+isa-v31-instructions,+altivec,+vsx,+power8-vector,+power9-vector,+power10-vector,+power8-altivec,+power9-altivec,+crypto,+mfocrf,+paired-vector-memops,+prefix-instrs,+mma,+htm,+booke > /tmp/rexcode_ppc_main_llvm.txt 2>&1") fmt.println(" bash tools/llvm_per_line.sh /tmp/rexcode_ppc_spe.hex powerpc-unknown-linux-gnu +spe > /tmp/rexcode_ppc_spe_llvm.txt 2>&1") - fmt.println(" cd ppc && odin run tools/verify_against_llvm.odin -file") + fmt.println(" cd isa/ppc && odin run tools/verify_against_llvm.odin -file") } // Fill operand fields with safe values so LLVM accepts the bytes as a valid diff --git a/core/rexcode/ppc/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/ppc/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/ppc/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/ppc/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/ppc/tools/llvm_per_line.sh b/core/rexcode/isa/ppc/tools/llvm_per_line.sh similarity index 100% rename from core/rexcode/ppc/tools/llvm_per_line.sh rename to core/rexcode/isa/ppc/tools/llvm_per_line.sh diff --git a/core/rexcode/ppc/tools/verify_against_llvm.odin b/core/rexcode/isa/ppc/tools/verify_against_llvm.odin similarity index 99% rename from core/rexcode/ppc/tools/verify_against_llvm.odin rename to core/rexcode/isa/ppc/tools/verify_against_llvm.odin index 0c6d488bc..76f250659 100644 --- a/core/rexcode/ppc/tools/verify_against_llvm.odin +++ b/core/rexcode/isa/ppc/tools/verify_against_llvm.odin @@ -17,7 +17,7 @@ package main // encoding is wrong OR the form needs a feature LLVM lacks // MISMATCH LLVM decoded to a different mnemonic — a real encoding bug // -// Run: cd ppc && odin run tools/verify_against_llvm.odin -file +// Run: cd isa/ppc && odin run tools/verify_against_llvm.odin -file import "core:fmt" import "core:os" diff --git a/core/rexcode/ppc_vle/decoder.odin b/core/rexcode/isa/ppc_vle/decoder.odin similarity index 99% rename from core/rexcode/ppc_vle/decoder.odin rename to core/rexcode/isa/ppc_vle/decoder.odin index e6b99c710..224452eff 100644 --- a/core/rexcode/ppc_vle/decoder.odin +++ b/core/rexcode/isa/ppc_vle/decoder.odin @@ -2,7 +2,7 @@ package rexcode_ppc_vle -import "../isa" +import "core:rexcode/isa" // ============================================================================= // PowerPC VLE Decoder diff --git a/core/rexcode/ppc_vle/encoder.odin b/core/rexcode/isa/ppc_vle/encoder.odin similarity index 100% rename from core/rexcode/ppc_vle/encoder.odin rename to core/rexcode/isa/ppc_vle/encoder.odin diff --git a/core/rexcode/ppc_vle/encoding_types.odin b/core/rexcode/isa/ppc_vle/encoding_types.odin similarity index 99% rename from core/rexcode/ppc_vle/encoding_types.odin rename to core/rexcode/isa/ppc_vle/encoding_types.odin index fa3423054..87754a7e3 100644 --- a/core/rexcode/ppc_vle/encoding_types.odin +++ b/core/rexcode/isa/ppc_vle/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_ppc_vle -import "../isa" +import "core:rexcode/isa" // ============================================================================= // PowerPC VLE Encoding Types diff --git a/core/rexcode/ppc_vle/instructions.odin b/core/rexcode/isa/ppc_vle/instructions.odin similarity index 100% rename from core/rexcode/ppc_vle/instructions.odin rename to core/rexcode/isa/ppc_vle/instructions.odin diff --git a/core/rexcode/ppc_vle/mnemonic_builders.odin b/core/rexcode/isa/ppc_vle/mnemonic_builders.odin similarity index 100% rename from core/rexcode/ppc_vle/mnemonic_builders.odin rename to core/rexcode/isa/ppc_vle/mnemonic_builders.odin diff --git a/core/rexcode/ppc_vle/mnemonics.odin b/core/rexcode/isa/ppc_vle/mnemonics.odin similarity index 100% rename from core/rexcode/ppc_vle/mnemonics.odin rename to core/rexcode/isa/ppc_vle/mnemonics.odin diff --git a/core/rexcode/ppc_vle/operands.odin b/core/rexcode/isa/ppc_vle/operands.odin similarity index 100% rename from core/rexcode/ppc_vle/operands.odin rename to core/rexcode/isa/ppc_vle/operands.odin diff --git a/core/rexcode/ppc_vle/printer.odin b/core/rexcode/isa/ppc_vle/printer.odin similarity index 99% rename from core/rexcode/ppc_vle/printer.odin rename to core/rexcode/isa/ppc_vle/printer.odin index 52a06b3ef..d2896fb30 100644 --- a/core/rexcode/ppc_vle/printer.odin +++ b/core/rexcode/isa/ppc_vle/printer.odin @@ -7,7 +7,7 @@ import "core:fmt" import "core:io" import "core:os" import "core:reflect" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // PowerPC VLE Printer diff --git a/core/rexcode/ppc_vle/registers.odin b/core/rexcode/isa/ppc_vle/registers.odin similarity index 100% rename from core/rexcode/ppc_vle/registers.odin rename to core/rexcode/isa/ppc_vle/registers.odin diff --git a/core/rexcode/ppc_vle/reloc.odin b/core/rexcode/isa/ppc_vle/reloc.odin similarity index 100% rename from core/rexcode/ppc_vle/reloc.odin rename to core/rexcode/isa/ppc_vle/reloc.odin diff --git a/core/rexcode/ppc_vle/tablegen/encoding_table.odin b/core/rexcode/isa/ppc_vle/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/ppc_vle/tablegen/encoding_table.odin rename to core/rexcode/isa/ppc_vle/tablegen/encoding_table.odin diff --git a/core/rexcode/ppc_vle/tablegen/gen.odin b/core/rexcode/isa/ppc_vle/tablegen/gen.odin similarity index 100% rename from core/rexcode/ppc_vle/tablegen/gen.odin rename to core/rexcode/isa/ppc_vle/tablegen/gen.odin diff --git a/core/rexcode/ppc_vle/tablegen/generated/decode_tables.odin b/core/rexcode/isa/ppc_vle/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/ppc_vle/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/ppc_vle/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/ppc_vle/tablegen/generated/encode_tables.odin b/core/rexcode/isa/ppc_vle/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/ppc_vle/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/ppc_vle/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/ppc_vle/tablegen/generated/writer.odin b/core/rexcode/isa/ppc_vle/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/ppc_vle/tablegen/generated/writer.odin rename to core/rexcode/isa/ppc_vle/tablegen/generated/writer.odin diff --git a/core/rexcode/ppc_vle/tables.odin b/core/rexcode/isa/ppc_vle/tables.odin similarity index 100% rename from core/rexcode/ppc_vle/tables.odin rename to core/rexcode/isa/ppc_vle/tables.odin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.bucket_list.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.bucket_list.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.bucket_list.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.bucket_list.bin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.encode_forms.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.encode_forms.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.encode_forms.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.encode_forms.bin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.encode_runs.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.encode_runs.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.encode_runs.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.encode_runs.bin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.entries.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.entries.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.entries.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.entries.bin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.form_idx.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.form_idx.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.form_idx.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.form_idx.bin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.idx_long.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.idx_long.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.idx_long.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.idx_long.bin diff --git a/core/rexcode/ppc_vle/tables/ppc_vle.idx_short.bin b/core/rexcode/isa/ppc_vle/tables/ppc_vle.idx_short.bin similarity index 100% rename from core/rexcode/ppc_vle/tables/ppc_vle.idx_short.bin rename to core/rexcode/isa/ppc_vle/tables/ppc_vle.idx_short.bin diff --git a/core/rexcode/ppc_vle/tests/branch_test.odin b/core/rexcode/isa/ppc_vle/tests/branch_test.odin similarity index 99% rename from core/rexcode/ppc_vle/tests/branch_test.odin rename to core/rexcode/isa/ppc_vle/tests/branch_test.odin index 272ed7bea..74ff29dfc 100644 --- a/core/rexcode/ppc_vle/tests/branch_test.odin +++ b/core/rexcode/isa/ppc_vle/tests/branch_test.odin @@ -5,7 +5,7 @@ package rexcode_ppc_vle_tests import "core:fmt" import "core:os" import v ".." -import "../../isa" +import "core:rexcode/isa" @(private="file") check :: proc(name: string, instructions: []v.Instruction, label_defs: []isa.Label_Definition, want: []u8) { diff --git a/core/rexcode/ppc_vle/tests/cond_branch.odin b/core/rexcode/isa/ppc_vle/tests/cond_branch.odin similarity index 99% rename from core/rexcode/ppc_vle/tests/cond_branch.odin rename to core/rexcode/isa/ppc_vle/tests/cond_branch.odin index 967fc5c27..d06101a38 100644 --- a/core/rexcode/ppc_vle/tests/cond_branch.odin +++ b/core/rexcode/isa/ppc_vle/tests/cond_branch.odin @@ -5,7 +5,7 @@ package rexcode_ppc_vle_tests import "core:fmt" import "core:os" import v ".." -import "../../isa" +import "core:rexcode/isa" @(private="file") check :: proc(name: string, instructions: []v.Instruction, label_defs: []isa.Label_Definition, want: []u8) { diff --git a/core/rexcode/ppc_vle/tests/e2e.odin b/core/rexcode/isa/ppc_vle/tests/e2e.odin similarity index 99% rename from core/rexcode/ppc_vle/tests/e2e.odin rename to core/rexcode/isa/ppc_vle/tests/e2e.odin index edfe1327a..76c25a09c 100644 --- a/core/rexcode/ppc_vle/tests/e2e.odin +++ b/core/rexcode/isa/ppc_vle/tests/e2e.odin @@ -6,7 +6,7 @@ import "core:fmt" import "core:os" import "core:strings" import v ".." -import "../../isa" +import "core:rexcode/isa" // End-to-end: encode → decode → print, verify bytes and that asm contains key tokens. @(private="file") diff --git a/core/rexcode/ppc_vle/tests/extension.odin b/core/rexcode/isa/ppc_vle/tests/extension.odin similarity index 99% rename from core/rexcode/ppc_vle/tests/extension.odin rename to core/rexcode/isa/ppc_vle/tests/extension.odin index 501e0887b..75afa480f 100644 --- a/core/rexcode/ppc_vle/tests/extension.odin +++ b/core/rexcode/isa/ppc_vle/tests/extension.odin @@ -6,7 +6,7 @@ import "core:fmt" import "core:os" import "core:strings" import v ".." -import "../../isa" +import "core:rexcode/isa" @(private="file") check :: proc(name: string, ok: bool) { diff --git a/core/rexcode/ppc_vle/tests/full_sweep.odin b/core/rexcode/isa/ppc_vle/tests/full_sweep.odin similarity index 99% rename from core/rexcode/ppc_vle/tests/full_sweep.odin rename to core/rexcode/isa/ppc_vle/tests/full_sweep.odin index 3eb289b7e..0e4778e95 100644 --- a/core/rexcode/ppc_vle/tests/full_sweep.odin +++ b/core/rexcode/isa/ppc_vle/tests/full_sweep.odin @@ -5,7 +5,7 @@ package rexcode_ppc_vle_tests import "core:fmt" import "core:os" import v ".." -import "../../isa" +import "core:rexcode/isa" stats: struct { ok, mn_alias, byte_mismatch, encode_fail, decode_fail: int } diff --git a/core/rexcode/ppc_vle/tests/operand_test.odin b/core/rexcode/isa/ppc_vle/tests/operand_test.odin similarity index 98% rename from core/rexcode/ppc_vle/tests/operand_test.odin rename to core/rexcode/isa/ppc_vle/tests/operand_test.odin index 68e47232b..fb104c229 100644 --- a/core/rexcode/ppc_vle/tests/operand_test.odin +++ b/core/rexcode/isa/ppc_vle/tests/operand_test.odin @@ -5,7 +5,7 @@ package rexcode_ppc_vle_tests import "core:fmt" import "core:os" import v ".." -import "../../isa" +import "core:rexcode/isa" @(private="file") check :: proc(name: string, inst: v.Instruction, want_bytes: []u8) { diff --git a/core/rexcode/ppc_vle/tests/printer.odin b/core/rexcode/isa/ppc_vle/tests/printer.odin similarity index 98% rename from core/rexcode/ppc_vle/tests/printer.odin rename to core/rexcode/isa/ppc_vle/tests/printer.odin index abd279a07..8bd1bf51f 100644 --- a/core/rexcode/ppc_vle/tests/printer.odin +++ b/core/rexcode/isa/ppc_vle/tests/printer.odin @@ -6,7 +6,7 @@ import "core:fmt" import "core:os" import "core:strings" import v ".." -import "../../isa" +import "core:rexcode/isa" check_print :: proc(name: string, inst: v.Instruction, want_text: string) { instructions := []v.Instruction{inst} diff --git a/core/rexcode/ppc_vle/tests/roundtrip.odin b/core/rexcode/isa/ppc_vle/tests/roundtrip.odin similarity index 99% rename from core/rexcode/ppc_vle/tests/roundtrip.odin rename to core/rexcode/isa/ppc_vle/tests/roundtrip.odin index d1a9a5e70..2b51ca9cf 100644 --- a/core/rexcode/ppc_vle/tests/roundtrip.odin +++ b/core/rexcode/isa/ppc_vle/tests/roundtrip.odin @@ -5,7 +5,7 @@ package rexcode_ppc_vle_tests import "core:fmt" import "core:os" import v ".." -import "../../isa" +import "core:rexcode/isa" check_encode :: proc(name: string, inst: v.Instruction, want_bytes: []u8) { code := make([]u8, 16, context.temp_allocator) diff --git a/core/rexcode/ppc_vle/tests/smoke.odin b/core/rexcode/isa/ppc_vle/tests/smoke.odin similarity index 100% rename from core/rexcode/ppc_vle/tests/smoke.odin rename to core/rexcode/isa/ppc_vle/tests/smoke.odin diff --git a/core/rexcode/ppc_vle/tools/dump_verify_input.odin b/core/rexcode/isa/ppc_vle/tools/dump_verify_input.odin similarity index 97% rename from core/rexcode/ppc_vle/tools/dump_verify_input.odin rename to core/rexcode/isa/ppc_vle/tools/dump_verify_input.odin index f6521da74..6a8301bfc 100644 --- a/core/rexcode/ppc_vle/tools/dump_verify_input.odin +++ b/core/rexcode/isa/ppc_vle/tools/dump_verify_input.odin @@ -16,7 +16,7 @@ package main // linker sets the SHF_PPC_VLE section flag — then objdump -M vle will // correctly decode every subsequent .short/.long as VLE. // -// Run: cd ppc_vle && odin run tools/dump_verify_input.odin -file +// Run: cd isa/ppc_vle && odin run tools/dump_verify_input.odin -file // // Verifier: bash tools/verify_against_vle_as.sh /tmp/rexcode_ppc_vle.hex diff --git a/core/rexcode/ppc_vle/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/ppc_vle/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/ppc_vle/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/ppc_vle/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/ppc_vle/tools/verify_against_vle_as.sh b/core/rexcode/isa/ppc_vle/tools/verify_against_vle_as.sh similarity index 98% rename from core/rexcode/ppc_vle/tools/verify_against_vle_as.sh rename to core/rexcode/isa/ppc_vle/tools/verify_against_vle_as.sh index e93e24a6f..673bd2b59 100644 --- a/core/rexcode/ppc_vle/tools/verify_against_vle_as.sh +++ b/core/rexcode/isa/ppc_vle/tools/verify_against_vle_as.sh @@ -39,7 +39,7 @@ fi for f in "$HEX_FILE" "$ASM_FILE" "$META_FILE"; do if [ ! -f "$f" ]; then echo "Manifest missing: $f" - echo "Run first: cd ppc_vle && odin run tools/dump_verify_input.odin -file" + echo "Run first: cd isa/ppc_vle && odin run tools/dump_verify_input.odin -file" exit 1 fi done diff --git a/core/rexcode/riscv/decoder.odin b/core/rexcode/isa/riscv/decoder.odin similarity index 99% rename from core/rexcode/riscv/decoder.odin rename to core/rexcode/isa/riscv/decoder.odin index ea2093cc7..04a6ed666 100644 --- a/core/rexcode/riscv/decoder.odin +++ b/core/rexcode/isa/riscv/decoder.odin @@ -2,7 +2,7 @@ package rexcode_riscv -import "../isa" +import "core:rexcode/isa" // ============================================================================= // RISC-V DECODER diff --git a/core/rexcode/riscv/encoder.odin b/core/rexcode/isa/riscv/encoder.odin similarity index 100% rename from core/rexcode/riscv/encoder.odin rename to core/rexcode/isa/riscv/encoder.odin diff --git a/core/rexcode/riscv/encoding_types.odin b/core/rexcode/isa/riscv/encoding_types.odin similarity index 99% rename from core/rexcode/riscv/encoding_types.odin rename to core/rexcode/isa/riscv/encoding_types.odin index 5b93e3fc8..7c3cf21b0 100644 --- a/core/rexcode/riscv/encoding_types.odin +++ b/core/rexcode/isa/riscv/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_riscv -import "../isa" +import "core:rexcode/isa" // ============================================================================= // RISC-V ENCODING FUNDAMENTALS diff --git a/core/rexcode/riscv/instructions.odin b/core/rexcode/isa/riscv/instructions.odin similarity index 100% rename from core/rexcode/riscv/instructions.odin rename to core/rexcode/isa/riscv/instructions.odin diff --git a/core/rexcode/riscv/mnemonic_builders.odin b/core/rexcode/isa/riscv/mnemonic_builders.odin similarity index 100% rename from core/rexcode/riscv/mnemonic_builders.odin rename to core/rexcode/isa/riscv/mnemonic_builders.odin diff --git a/core/rexcode/riscv/mnemonics.odin b/core/rexcode/isa/riscv/mnemonics.odin similarity index 100% rename from core/rexcode/riscv/mnemonics.odin rename to core/rexcode/isa/riscv/mnemonics.odin diff --git a/core/rexcode/riscv/operands.odin b/core/rexcode/isa/riscv/operands.odin similarity index 100% rename from core/rexcode/riscv/operands.odin rename to core/rexcode/isa/riscv/operands.odin diff --git a/core/rexcode/riscv/printer.odin b/core/rexcode/isa/riscv/printer.odin similarity index 99% rename from core/rexcode/riscv/printer.odin rename to core/rexcode/isa/riscv/printer.odin index 9a8f1cb1f..9bbdea3a9 100644 --- a/core/rexcode/riscv/printer.odin +++ b/core/rexcode/isa/riscv/printer.odin @@ -6,7 +6,7 @@ import "core:strings" import "core:reflect" import "core:os" import "core:io" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // RISC-V PRINTER diff --git a/core/rexcode/riscv/registers.odin b/core/rexcode/isa/riscv/registers.odin similarity index 100% rename from core/rexcode/riscv/registers.odin rename to core/rexcode/isa/riscv/registers.odin diff --git a/core/rexcode/riscv/reloc.odin b/core/rexcode/isa/riscv/reloc.odin similarity index 100% rename from core/rexcode/riscv/reloc.odin rename to core/rexcode/isa/riscv/reloc.odin diff --git a/core/rexcode/riscv/tablegen/encoding_table.odin b/core/rexcode/isa/riscv/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/riscv/tablegen/encoding_table.odin rename to core/rexcode/isa/riscv/tablegen/encoding_table.odin diff --git a/core/rexcode/riscv/tablegen/gen.odin b/core/rexcode/isa/riscv/tablegen/gen.odin similarity index 100% rename from core/rexcode/riscv/tablegen/gen.odin rename to core/rexcode/isa/riscv/tablegen/gen.odin diff --git a/core/rexcode/riscv/tablegen/generated/decode_tables.odin b/core/rexcode/isa/riscv/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/riscv/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/riscv/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/riscv/tablegen/generated/encode_tables.odin b/core/rexcode/isa/riscv/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/riscv/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/riscv/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/riscv/tablegen/generated/writer.odin b/core/rexcode/isa/riscv/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/riscv/tablegen/generated/writer.odin rename to core/rexcode/isa/riscv/tablegen/generated/writer.odin diff --git a/core/rexcode/riscv/tables.odin b/core/rexcode/isa/riscv/tables.odin similarity index 100% rename from core/rexcode/riscv/tables.odin rename to core/rexcode/isa/riscv/tables.odin diff --git a/core/rexcode/riscv/tables/riscv.encode_forms.bin b/core/rexcode/isa/riscv/tables/riscv.encode_forms.bin similarity index 100% rename from core/rexcode/riscv/tables/riscv.encode_forms.bin rename to core/rexcode/isa/riscv/tables/riscv.encode_forms.bin diff --git a/core/rexcode/riscv/tables/riscv.encode_runs.bin b/core/rexcode/isa/riscv/tables/riscv.encode_runs.bin similarity index 100% rename from core/rexcode/riscv/tables/riscv.encode_runs.bin rename to core/rexcode/isa/riscv/tables/riscv.encode_runs.bin diff --git a/core/rexcode/riscv/tables/riscv.entries.bin b/core/rexcode/isa/riscv/tables/riscv.entries.bin similarity index 100% rename from core/rexcode/riscv/tables/riscv.entries.bin rename to core/rexcode/isa/riscv/tables/riscv.entries.bin diff --git a/core/rexcode/riscv/tables/riscv.idx_op_fp.bin b/core/rexcode/isa/riscv/tables/riscv.idx_op_fp.bin similarity index 100% rename from core/rexcode/riscv/tables/riscv.idx_op_fp.bin rename to core/rexcode/isa/riscv/tables/riscv.idx_op_fp.bin diff --git a/core/rexcode/riscv/tables/riscv.idx_opcode.bin b/core/rexcode/isa/riscv/tables/riscv.idx_opcode.bin similarity index 100% rename from core/rexcode/riscv/tables/riscv.idx_opcode.bin rename to core/rexcode/isa/riscv/tables/riscv.idx_opcode.bin diff --git a/core/rexcode/riscv/tables/riscv.idx_rvc.bin b/core/rexcode/isa/riscv/tables/riscv.idx_rvc.bin similarity index 100% rename from core/rexcode/riscv/tables/riscv.idx_rvc.bin rename to core/rexcode/isa/riscv/tables/riscv.idx_rvc.bin diff --git a/core/rexcode/riscv/tests/pipeline_smoke.odin b/core/rexcode/isa/riscv/tests/pipeline_smoke.odin similarity index 100% rename from core/rexcode/riscv/tests/pipeline_smoke.odin rename to core/rexcode/isa/riscv/tests/pipeline_smoke.odin diff --git a/core/rexcode/riscv/tests/smoke.odin b/core/rexcode/isa/riscv/tests/smoke.odin similarity index 100% rename from core/rexcode/riscv/tests/smoke.odin rename to core/rexcode/isa/riscv/tests/smoke.odin diff --git a/core/rexcode/riscv/tools/dump_verify_input.odin b/core/rexcode/isa/riscv/tools/dump_verify_input.odin similarity index 95% rename from core/rexcode/riscv/tools/dump_verify_input.odin rename to core/rexcode/isa/riscv/tools/dump_verify_input.odin index 9b197feb5..eb2630885 100644 --- a/core/rexcode/riscv/tools/dump_verify_input.odin +++ b/core/rexcode/isa/riscv/tools/dump_verify_input.odin @@ -12,7 +12,7 @@ package main // // Compressed (RVC) instructions take 2 bytes; everything else takes 4. // -// Run: cd riscv && odin run tools/dump_verify_input.odin -file +// Run: cd isa/riscv && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" diff --git a/core/rexcode/riscv/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/riscv/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/riscv/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/riscv/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/riscv/tools/llvm_per_line.sh b/core/rexcode/isa/riscv/tools/llvm_per_line.sh similarity index 100% rename from core/rexcode/riscv/tools/llvm_per_line.sh rename to core/rexcode/isa/riscv/tools/llvm_per_line.sh diff --git a/core/rexcode/riscv/tools/verify_against_llvm.odin b/core/rexcode/isa/riscv/tools/verify_against_llvm.odin similarity index 100% rename from core/rexcode/riscv/tools/verify_against_llvm.odin rename to core/rexcode/isa/riscv/tools/verify_against_llvm.odin diff --git a/core/rexcode/rsp/decoder.odin b/core/rexcode/isa/rsp/decoder.odin similarity index 99% rename from core/rexcode/rsp/decoder.odin rename to core/rexcode/isa/rsp/decoder.odin index 21a8864eb..9b1635691 100644 --- a/core/rexcode/rsp/decoder.odin +++ b/core/rexcode/isa/rsp/decoder.odin @@ -2,7 +2,7 @@ package rexcode_rsp -import "../isa" +import "core:rexcode/isa" // ============================================================================= // N64 RSP DECODER diff --git a/core/rexcode/rsp/encoder.odin b/core/rexcode/isa/rsp/encoder.odin similarity index 100% rename from core/rexcode/rsp/encoder.odin rename to core/rexcode/isa/rsp/encoder.odin diff --git a/core/rexcode/rsp/encoding_types.odin b/core/rexcode/isa/rsp/encoding_types.odin similarity index 99% rename from core/rexcode/rsp/encoding_types.odin rename to core/rexcode/isa/rsp/encoding_types.odin index d0b671387..e6b48c586 100644 --- a/core/rexcode/rsp/encoding_types.odin +++ b/core/rexcode/isa/rsp/encoding_types.odin @@ -2,7 +2,7 @@ package rexcode_rsp -import "../isa" +import "core:rexcode/isa" // ============================================================================= // N64 RSP encoding fundamentals diff --git a/core/rexcode/rsp/instructions.odin b/core/rexcode/isa/rsp/instructions.odin similarity index 100% rename from core/rexcode/rsp/instructions.odin rename to core/rexcode/isa/rsp/instructions.odin diff --git a/core/rexcode/rsp/mnemonic_builders.odin b/core/rexcode/isa/rsp/mnemonic_builders.odin similarity index 100% rename from core/rexcode/rsp/mnemonic_builders.odin rename to core/rexcode/isa/rsp/mnemonic_builders.odin diff --git a/core/rexcode/rsp/mnemonics.odin b/core/rexcode/isa/rsp/mnemonics.odin similarity index 100% rename from core/rexcode/rsp/mnemonics.odin rename to core/rexcode/isa/rsp/mnemonics.odin diff --git a/core/rexcode/rsp/operands.odin b/core/rexcode/isa/rsp/operands.odin similarity index 100% rename from core/rexcode/rsp/operands.odin rename to core/rexcode/isa/rsp/operands.odin diff --git a/core/rexcode/rsp/printer.odin b/core/rexcode/isa/rsp/printer.odin similarity index 99% rename from core/rexcode/rsp/printer.odin rename to core/rexcode/isa/rsp/printer.odin index 15aab8cf9..7b4c4499c 100644 --- a/core/rexcode/rsp/printer.odin +++ b/core/rexcode/isa/rsp/printer.odin @@ -6,7 +6,7 @@ import "core:strings" import "core:reflect" import "core:os" import "core:io" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // N64 RSP PRINTER diff --git a/core/rexcode/rsp/registers.odin b/core/rexcode/isa/rsp/registers.odin similarity index 100% rename from core/rexcode/rsp/registers.odin rename to core/rexcode/isa/rsp/registers.odin diff --git a/core/rexcode/rsp/reloc.odin b/core/rexcode/isa/rsp/reloc.odin similarity index 100% rename from core/rexcode/rsp/reloc.odin rename to core/rexcode/isa/rsp/reloc.odin diff --git a/core/rexcode/rsp/tablegen/encoding_table.odin b/core/rexcode/isa/rsp/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/rsp/tablegen/encoding_table.odin rename to core/rexcode/isa/rsp/tablegen/encoding_table.odin diff --git a/core/rexcode/rsp/tablegen/gen.odin b/core/rexcode/isa/rsp/tablegen/gen.odin similarity index 100% rename from core/rexcode/rsp/tablegen/gen.odin rename to core/rexcode/isa/rsp/tablegen/gen.odin diff --git a/core/rexcode/rsp/tablegen/generated/decode_tables.odin b/core/rexcode/isa/rsp/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/rsp/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/rsp/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/rsp/tablegen/generated/encode_tables.odin b/core/rexcode/isa/rsp/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/rsp/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/rsp/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/rsp/tablegen/generated/writer.odin b/core/rexcode/isa/rsp/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/rsp/tablegen/generated/writer.odin rename to core/rexcode/isa/rsp/tablegen/generated/writer.odin diff --git a/core/rexcode/rsp/tables.odin b/core/rexcode/isa/rsp/tables.odin similarity index 100% rename from core/rexcode/rsp/tables.odin rename to core/rexcode/isa/rsp/tables.odin diff --git a/core/rexcode/rsp/tables/rsp.encode_forms.bin b/core/rexcode/isa/rsp/tables/rsp.encode_forms.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.encode_forms.bin rename to core/rexcode/isa/rsp/tables/rsp.encode_forms.bin diff --git a/core/rexcode/rsp/tables/rsp.encode_runs.bin b/core/rexcode/isa/rsp/tables/rsp.encode_runs.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.encode_runs.bin rename to core/rexcode/isa/rsp/tables/rsp.encode_runs.bin diff --git a/core/rexcode/rsp/tables/rsp.entries.bin b/core/rexcode/isa/rsp/tables/rsp.entries.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.entries.bin rename to core/rexcode/isa/rsp/tables/rsp.entries.bin diff --git a/core/rexcode/rsp/tables/rsp.idx_cop2.bin b/core/rexcode/isa/rsp/tables/rsp.idx_cop2.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.idx_cop2.bin rename to core/rexcode/isa/rsp/tables/rsp.idx_cop2.bin diff --git a/core/rexcode/rsp/tables/rsp.idx_lwc2.bin b/core/rexcode/isa/rsp/tables/rsp.idx_lwc2.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.idx_lwc2.bin rename to core/rexcode/isa/rsp/tables/rsp.idx_lwc2.bin diff --git a/core/rexcode/rsp/tables/rsp.idx_primary.bin b/core/rexcode/isa/rsp/tables/rsp.idx_primary.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.idx_primary.bin rename to core/rexcode/isa/rsp/tables/rsp.idx_primary.bin diff --git a/core/rexcode/rsp/tables/rsp.idx_regimm.bin b/core/rexcode/isa/rsp/tables/rsp.idx_regimm.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.idx_regimm.bin rename to core/rexcode/isa/rsp/tables/rsp.idx_regimm.bin diff --git a/core/rexcode/rsp/tables/rsp.idx_special.bin b/core/rexcode/isa/rsp/tables/rsp.idx_special.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.idx_special.bin rename to core/rexcode/isa/rsp/tables/rsp.idx_special.bin diff --git a/core/rexcode/rsp/tables/rsp.idx_swc2.bin b/core/rexcode/isa/rsp/tables/rsp.idx_swc2.bin similarity index 100% rename from core/rexcode/rsp/tables/rsp.idx_swc2.bin rename to core/rexcode/isa/rsp/tables/rsp.idx_swc2.bin diff --git a/core/rexcode/rsp/tests/pipeline_smoke.odin b/core/rexcode/isa/rsp/tests/pipeline_smoke.odin similarity index 100% rename from core/rexcode/rsp/tests/pipeline_smoke.odin rename to core/rexcode/isa/rsp/tests/pipeline_smoke.odin diff --git a/core/rexcode/rsp/tests/smoke.odin b/core/rexcode/isa/rsp/tests/smoke.odin similarity index 100% rename from core/rexcode/rsp/tests/smoke.odin rename to core/rexcode/isa/rsp/tests/smoke.odin diff --git a/core/rexcode/rsp/tools/armips_lwv_patch.sh b/core/rexcode/isa/rsp/tools/armips_lwv_patch.sh similarity index 100% rename from core/rexcode/rsp/tools/armips_lwv_patch.sh rename to core/rexcode/isa/rsp/tools/armips_lwv_patch.sh diff --git a/core/rexcode/rsp/tools/dump_verify_input.odin b/core/rexcode/isa/rsp/tools/dump_verify_input.odin similarity index 98% rename from core/rexcode/rsp/tools/dump_verify_input.odin rename to core/rexcode/isa/rsp/tools/dump_verify_input.odin index 5ba1b1cf2..27821b58d 100644 --- a/core/rexcode/rsp/tools/dump_verify_input.odin +++ b/core/rexcode/isa/rsp/tools/dump_verify_input.odin @@ -15,7 +15,7 @@ package main // All operand fields are filled with `$0`/`$v0`/element-0/immediate-0 so // the resulting encoded word equals our table's `bits` field exactly. // -// Run: cd rsp && odin run tools/dump_verify_input.odin -file +// Run: cd isa/rsp && odin run tools/dump_verify_input.odin -file // // Verifier: bash tools/verify_against_armips.sh /tmp/rexcode_rsp.hex diff --git a/core/rexcode/rsp/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/rsp/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/rsp/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/rsp/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/rsp/tools/verify_against_armips.sh b/core/rexcode/isa/rsp/tools/verify_against_armips.sh similarity index 98% rename from core/rexcode/rsp/tools/verify_against_armips.sh rename to core/rexcode/isa/rsp/tools/verify_against_armips.sh index d7afa9c62..a35cd70fa 100644 --- a/core/rexcode/rsp/tools/verify_against_armips.sh +++ b/core/rexcode/isa/rsp/tools/verify_against_armips.sh @@ -40,7 +40,7 @@ echo "Using: $ARMIPS_BIN" for f in "$HEX_FILE" "$ASM_FILE" "$META_FILE"; do if [ ! -f "$f" ]; then echo "Manifest missing: $f" - echo "Run first: cd rsp && odin run tools/dump_verify_input.odin -file" + echo "Run first: cd isa/rsp && odin run tools/dump_verify_input.odin -file" exit 1 fi done diff --git a/core/rexcode/x86/decoder.odin b/core/rexcode/isa/x86/decoder.odin similarity index 99% rename from core/rexcode/x86/decoder.odin rename to core/rexcode/isa/x86/decoder.odin index d66ef36d4..e16d571c5 100644 --- a/core/rexcode/x86/decoder.odin +++ b/core/rexcode/isa/x86/decoder.odin @@ -3,7 +3,7 @@ package rexcode_x86 import "core:fmt" -import "../isa" +import "core:rexcode/isa" // ============================================================================= // SECTION: 8. DECODER diff --git a/core/rexcode/x86/encoder.odin b/core/rexcode/isa/x86/encoder.odin similarity index 99% rename from core/rexcode/x86/encoder.odin rename to core/rexcode/isa/x86/encoder.odin index 3164212af..2e22a8b74 100644 --- a/core/rexcode/x86/encoder.odin +++ b/core/rexcode/isa/x86/encoder.odin @@ -25,7 +25,7 @@ package rexcode_x86 import "base:intrinsics" import "core:fmt" -import "../isa" +import "core:rexcode/isa" // ----------------------------------------------------------------------------- // SECTION: 7.1 Constants diff --git a/core/rexcode/x86/encoding_types.odin b/core/rexcode/isa/x86/encoding_types.odin similarity index 99% rename from core/rexcode/x86/encoding_types.odin rename to core/rexcode/isa/x86/encoding_types.odin index ea537b6f4..0f47213ed 100644 --- a/core/rexcode/x86/encoding_types.odin +++ b/core/rexcode/isa/x86/encoding_types.odin @@ -6,7 +6,7 @@ package rexcode_x86 // SECTION: 6. ENCODING TABLES // ============================================================================= -import "../isa" +import "core:rexcode/isa" // ----------------------------------------------------------------------------- // SECTION: 6.0 Re-exports from isa (status, relocation) diff --git a/core/rexcode/x86/instructions.odin b/core/rexcode/isa/x86/instructions.odin similarity index 100% rename from core/rexcode/x86/instructions.odin rename to core/rexcode/isa/x86/instructions.odin diff --git a/core/rexcode/x86/labels.odin b/core/rexcode/isa/x86/labels.odin similarity index 97% rename from core/rexcode/x86/labels.odin rename to core/rexcode/isa/x86/labels.odin index 4fc56b599..af31cdd8b 100644 --- a/core/rexcode/x86/labels.odin +++ b/core/rexcode/isa/x86/labels.odin @@ -14,7 +14,7 @@ package rexcode_x86 // over the Instruction type and live in `isa/labels.odin` -- callers // invoke them directly as `isa.(...)`. -import "../isa" +import "core:rexcode/isa" Label_Definition :: isa.Label_Definition Label_Map :: isa.Label_Map diff --git a/core/rexcode/x86/mnemonic_builders.odin b/core/rexcode/isa/x86/mnemonic_builders.odin similarity index 100% rename from core/rexcode/x86/mnemonic_builders.odin rename to core/rexcode/isa/x86/mnemonic_builders.odin diff --git a/core/rexcode/x86/mnemonics.odin b/core/rexcode/isa/x86/mnemonics.odin similarity index 100% rename from core/rexcode/x86/mnemonics.odin rename to core/rexcode/isa/x86/mnemonics.odin diff --git a/core/rexcode/x86/operands.odin b/core/rexcode/isa/x86/operands.odin similarity index 100% rename from core/rexcode/x86/operands.odin rename to core/rexcode/isa/x86/operands.odin diff --git a/core/rexcode/x86/printer.odin b/core/rexcode/isa/x86/printer.odin similarity index 99% rename from core/rexcode/x86/printer.odin rename to core/rexcode/isa/x86/printer.odin index 792c01afb..42ef7a5bf 100644 --- a/core/rexcode/x86/printer.odin +++ b/core/rexcode/isa/x86/printer.odin @@ -28,7 +28,7 @@ import "core:strings" import "core:reflect" import "core:io" import "core:os" -import "../isa" +import "core:rexcode/isa" // ----------------------------------------------------------------------------- // 9.1 Printer Configuration (re-exported from isa) diff --git a/core/rexcode/x86/registers.odin b/core/rexcode/isa/x86/registers.odin similarity index 100% rename from core/rexcode/x86/registers.odin rename to core/rexcode/isa/x86/registers.odin diff --git a/core/rexcode/x86/reloc.odin b/core/rexcode/isa/x86/reloc.odin similarity index 100% rename from core/rexcode/x86/reloc.odin rename to core/rexcode/isa/x86/reloc.odin diff --git a/core/rexcode/x86/tablegen/encoding_table.odin b/core/rexcode/isa/x86/tablegen/encoding_table.odin similarity index 100% rename from core/rexcode/x86/tablegen/encoding_table.odin rename to core/rexcode/isa/x86/tablegen/encoding_table.odin diff --git a/core/rexcode/x86/tablegen/gen.odin b/core/rexcode/isa/x86/tablegen/gen.odin similarity index 100% rename from core/rexcode/x86/tablegen/gen.odin rename to core/rexcode/isa/x86/tablegen/gen.odin diff --git a/core/rexcode/x86/tablegen/generated/decode_tables.odin b/core/rexcode/isa/x86/tablegen/generated/decode_tables.odin similarity index 100% rename from core/rexcode/x86/tablegen/generated/decode_tables.odin rename to core/rexcode/isa/x86/tablegen/generated/decode_tables.odin diff --git a/core/rexcode/x86/tablegen/generated/encode_tables.odin b/core/rexcode/isa/x86/tablegen/generated/encode_tables.odin similarity index 100% rename from core/rexcode/x86/tablegen/generated/encode_tables.odin rename to core/rexcode/isa/x86/tablegen/generated/encode_tables.odin diff --git a/core/rexcode/x86/tablegen/generated/writer.odin b/core/rexcode/isa/x86/tablegen/generated/writer.odin similarity index 100% rename from core/rexcode/x86/tablegen/generated/writer.odin rename to core/rexcode/isa/x86/tablegen/generated/writer.odin diff --git a/core/rexcode/x86/tables.odin b/core/rexcode/isa/x86/tables.odin similarity index 100% rename from core/rexcode/x86/tables.odin rename to core/rexcode/isa/x86/tables.odin diff --git a/core/rexcode/x86/tables/x86.encode_forms.bin b/core/rexcode/isa/x86/tables/x86.encode_forms.bin similarity index 100% rename from core/rexcode/x86/tables/x86.encode_forms.bin rename to core/rexcode/isa/x86/tables/x86.encode_forms.bin diff --git a/core/rexcode/x86/tables/x86.encode_runs.bin b/core/rexcode/isa/x86/tables/x86.encode_runs.bin similarity index 100% rename from core/rexcode/x86/tables/x86.encode_runs.bin rename to core/rexcode/isa/x86/tables/x86.encode_runs.bin diff --git a/core/rexcode/x86/tables/x86.evex.bin b/core/rexcode/isa/x86/tables/x86.evex.bin similarity index 100% rename from core/rexcode/x86/tables/x86.evex.bin rename to core/rexcode/isa/x86/tables/x86.evex.bin diff --git a/core/rexcode/x86/tables/x86.evex_idx_0f.bin b/core/rexcode/isa/x86/tables/x86.evex_idx_0f.bin similarity index 100% rename from core/rexcode/x86/tables/x86.evex_idx_0f.bin rename to core/rexcode/isa/x86/tables/x86.evex_idx_0f.bin diff --git a/core/rexcode/x86/tables/x86.evex_idx_0f38.bin b/core/rexcode/isa/x86/tables/x86.evex_idx_0f38.bin similarity index 100% rename from core/rexcode/x86/tables/x86.evex_idx_0f38.bin rename to core/rexcode/isa/x86/tables/x86.evex_idx_0f38.bin diff --git a/core/rexcode/x86/tables/x86.evex_idx_0f3a.bin b/core/rexcode/isa/x86/tables/x86.evex_idx_0f3a.bin similarity index 100% rename from core/rexcode/x86/tables/x86.evex_idx_0f3a.bin rename to core/rexcode/isa/x86/tables/x86.evex_idx_0f3a.bin diff --git a/core/rexcode/x86/tables/x86.idx_0f.bin b/core/rexcode/isa/x86/tables/x86.idx_0f.bin similarity index 100% rename from core/rexcode/x86/tables/x86.idx_0f.bin rename to core/rexcode/isa/x86/tables/x86.idx_0f.bin diff --git a/core/rexcode/x86/tables/x86.idx_0f38.bin b/core/rexcode/isa/x86/tables/x86.idx_0f38.bin similarity index 100% rename from core/rexcode/x86/tables/x86.idx_0f38.bin rename to core/rexcode/isa/x86/tables/x86.idx_0f38.bin diff --git a/core/rexcode/x86/tables/x86.idx_0f3a.bin b/core/rexcode/isa/x86/tables/x86.idx_0f3a.bin similarity index 100% rename from core/rexcode/x86/tables/x86.idx_0f3a.bin rename to core/rexcode/isa/x86/tables/x86.idx_0f3a.bin diff --git a/core/rexcode/x86/tables/x86.idx_legacy.bin b/core/rexcode/isa/x86/tables/x86.idx_legacy.bin similarity index 100% rename from core/rexcode/x86/tables/x86.idx_legacy.bin rename to core/rexcode/isa/x86/tables/x86.idx_legacy.bin diff --git a/core/rexcode/x86/tables/x86.legacy.bin b/core/rexcode/isa/x86/tables/x86.legacy.bin similarity index 100% rename from core/rexcode/x86/tables/x86.legacy.bin rename to core/rexcode/isa/x86/tables/x86.legacy.bin diff --git a/core/rexcode/x86/tables/x86.modrm.bin b/core/rexcode/isa/x86/tables/x86.modrm.bin similarity index 100% rename from core/rexcode/x86/tables/x86.modrm.bin rename to core/rexcode/isa/x86/tables/x86.modrm.bin diff --git a/core/rexcode/x86/tables/x86.sib.bin b/core/rexcode/isa/x86/tables/x86.sib.bin similarity index 100% rename from core/rexcode/x86/tables/x86.sib.bin rename to core/rexcode/isa/x86/tables/x86.sib.bin diff --git a/core/rexcode/x86/tables/x86.vex.bin b/core/rexcode/isa/x86/tables/x86.vex.bin similarity index 100% rename from core/rexcode/x86/tables/x86.vex.bin rename to core/rexcode/isa/x86/tables/x86.vex.bin diff --git a/core/rexcode/x86/tables/x86.vex_idx_0f.bin b/core/rexcode/isa/x86/tables/x86.vex_idx_0f.bin similarity index 100% rename from core/rexcode/x86/tables/x86.vex_idx_0f.bin rename to core/rexcode/isa/x86/tables/x86.vex_idx_0f.bin diff --git a/core/rexcode/x86/tables/x86.vex_idx_0f38.bin b/core/rexcode/isa/x86/tables/x86.vex_idx_0f38.bin similarity index 100% rename from core/rexcode/x86/tables/x86.vex_idx_0f38.bin rename to core/rexcode/isa/x86/tables/x86.vex_idx_0f38.bin diff --git a/core/rexcode/x86/tables/x86.vex_idx_0f3a.bin b/core/rexcode/isa/x86/tables/x86.vex_idx_0f3a.bin similarity index 100% rename from core/rexcode/x86/tables/x86.vex_idx_0f3a.bin rename to core/rexcode/isa/x86/tables/x86.vex_idx_0f3a.bin diff --git a/core/rexcode/x86/tests/test.odin b/core/rexcode/isa/x86/tests/test.odin similarity index 99% rename from core/rexcode/x86/tests/test.odin rename to core/rexcode/isa/x86/tests/test.odin index b82f0ade3..204014038 100644 --- a/core/rexcode/x86/tests/test.odin +++ b/core/rexcode/isa/x86/tests/test.odin @@ -3,7 +3,7 @@ package rexcode_x86_tests import x86 "../" -import "../../isa" +import "core:rexcode/isa" import "core:fmt" import "core:time" import "core:strings" diff --git a/core/rexcode/x86/tests32/test_32bit.odin b/core/rexcode/isa/x86/tests32/test_32bit.odin similarity index 100% rename from core/rexcode/x86/tests32/test_32bit.odin rename to core/rexcode/isa/x86/tests32/test_32bit.odin diff --git a/core/rexcode/x86/tools/dump_verify_input.odin b/core/rexcode/isa/x86/tools/dump_verify_input.odin similarity index 98% rename from core/rexcode/x86/tools/dump_verify_input.odin rename to core/rexcode/isa/x86/tools/dump_verify_input.odin index b375d6ab8..567161fc4 100644 --- a/core/rexcode/x86/tools/dump_verify_input.odin +++ b/core/rexcode/isa/x86/tools/dump_verify_input.odin @@ -19,7 +19,7 @@ package main // Skips entries that can't be safely encoded standalone (segment overrides, // label-relative branches, REL operands, etc.). // -// Run: cd x86 && odin run tools/dump_verify_input.odin -file +// Run: cd isa/x86 && odin run tools/dump_verify_input.odin -file import "core:fmt" import "core:os" diff --git a/core/rexcode/x86/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin similarity index 100% rename from core/rexcode/x86/tools/gen_mnemonic_builders.odin rename to core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin diff --git a/core/rexcode/x86/tools/verify_against_llvm.odin b/core/rexcode/isa/x86/tools/verify_against_llvm.odin similarity index 100% rename from core/rexcode/x86/tools/verify_against_llvm.odin rename to core/rexcode/isa/x86/tools/verify_against_llvm.odin diff --git a/core/rexcode/x86/tools/verify_tables.odin b/core/rexcode/isa/x86/tools/verify_tables.odin similarity index 100% rename from core/rexcode/x86/tools/verify_tables.odin rename to core/rexcode/isa/x86/tools/verify_tables.odin