diff --git a/ISSUE-165-TODO.md b/ISSUE-165-TODO.md deleted file mode 100644 index 6c6b054e..00000000 --- a/ISSUE-165-TODO.md +++ /dev/null @@ -1,221 +0,0 @@ -# Issue #165 Restructure Todo - -Tracking work for `restructure large files` on branch -`issue-165-restructure-large-files`. - -## 1. `emu/execution.rs` - -- [x] Extract shared run-loop startup, limit, loop-tracking, and trace helpers into `execution_control.rs` -- [x] Extract decode/cache-fill helpers out of `execution.rs` -- [x] Further separate single-threaded and multi-threaded runner concerns -- [x] Revisit REP-handling boundaries after the control-flow split - -## 2. Linux syscall gateways - -- [x] Convert `syscall32.rs` to descriptor-driven dispatch -- [x] Extract implemented `syscall32` handlers from the gateway -- [x] Convert `syscall64.rs` fallback name table to static metadata -- [x] Extract implemented `syscall64` handlers from the gateway - -## 3. `arch/x86/regs.rs` - -- [x] Macro-generate repetitive getter/setter helpers -- [x] Macro-generate repetitive show helpers -- [x] Preserve debugger/script register-name lookups while reducing duplication - -## 4. `maps/mod.rs` + `maps/mem64.rs` - -- [x] Extract shared scalar little-endian read/write helpers -- [x] Preserve `banzai` semantics -- [x] Preserve cross-map `write_bytes` behavior - -## 5. `windows/structures/kernel64.rs` - -- [x] Split the file into domain-oriented modules -- [x] Reassess macro/derive generation after the structural split - -## 6. Loader/API paired cleanup - -- [x] Share common readers between `loaders/pe/pe32.rs` and `loaders/pe/pe64.rs` -- [x] Extract common helper paths between `winapi32/ntdll.rs` and `winapi64/ntdll.rs` - -## 7. Deferred unless they block feature work - -- [x] Revisit `api/windows/winapi32/kernel32/mod.rs` and carry any remaining root-file cleanup into the later `kernel32` closeout sections below -- [x] Revisit `windows/constants.rs` and explicitly leave it alone for now unless feature work or code generation strategy changes - -## 8. Follow-up consistency cleanup - -- [x] Move the `emu/execution*` split into an `emu/execution/` module directory -- [x] Normalize `syscall32.rs` and `syscall64.rs` around one metadata/logging shape -- [x] Replace scalar helper string tags in `maps/mod.rs` and `maps/mem64.rs` with a typed enum -- [x] Run a focused review pass over the refactor diff before calling this polished - -## 9. Linux syscall architectural follow-up - -Section 2 and Section 8 got the syscall gateways into a more consistent state. -This section tracks the larger structural cleanup that is still open. - -- [x] Split `syscall32.rs` into family-oriented modules behind a thin gateway (`fs`, `proc`, `net`, `memory`, `signal`, `misc`) -- [x] Split `syscall64.rs` into the same family-oriented module layout so 32-bit and 64-bit syscall code are organized the same way -- [x] Move fallback syscall-name/descriptor metadata out of the top-level gateway bodies so both 32-bit and 64-bit gateways now follow the same thin-dispatch shape -- [x] Normalize the remaining legacy per-branch syscall logging/tracing so implemented handlers and fallback paths share one format -- [x] Reassess which syscall helpers can actually be shared across 32-bit and 64-bit without hiding ABI differences (kept ABI-specific handlers separate in this pass) - -## 10. WinAPI `kernel32` pair (`#128`) - -Issue `#128` is about reducing duplication without hiding ABI adaptation. -This section tracks the `kernel32` pair specifically. - -- [x] Extract shared API resolution, name lookup, and library-loading helpers from `winapi32/kernel32/mod.rs` and `winapi64/kernel32/mod.rs` -- [x] Keep 32-bit and 64-bit gateway / ABI adaptation thin and explicit -- [x] Reduce the size of both `kernel32` gateway files without growing a generic `common` dumping ground - -## 11. WinAPI `ntdll` pair (`#128`) - -This section should prefer domain-oriented helpers over growing `api/windows/common/ntdll.rs`. - -- [x] Split `winapi32/ntdll.rs` into domain-oriented helpers (`heap`, `file`, `memory`, `loader`, `string`, `sync`, `misc`) behind a thin gateway -- [x] Split `winapi64/ntdll.rs` into the same domain-oriented layout -- [x] Keep `api/windows/common/ntdll.rs` small and limited to obviously shared semantics -- [x] Reassess which `ntdll` helpers can actually be shared across 32-bit and 64-bit without hiding ABI differences - -## 12. `maps/mod.rs` - -- [x] Separate map registry / indexing / allocation concerns from string, memcpy, and memset utility helpers -- [x] Preserve `banzai`, cross-map writes, and the typed scalar helper boundary -- [x] Reassess which helpers belong in `Maps` versus `Mem64` -- Boundary decision: keep cross-map orchestration in `Maps` (map lookup, cross-boundary writes/reads, search/inspection helpers) and keep single-region primitives in `Mem64` (contiguous scalar/string read-write implementation). - -## 13. `emu/loaders.rs` - -- [x] Separate PE32, PE64, ELF64, and Mach-O loader flows from generic `load_code` orchestration -- [x] Extract per-format base-selection and mapping helpers into format-oriented modules -- [x] Preserve current loader behavior, entry-point setup, and library mapping semantics -- Integrated validation: `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passes on the combined Sections 9-13 tree. - -## Remaining-wave subagent instructions - -Use these rules for every remaining numbered section below. - -- Give one subagent one numbered section end-to-end. Do not split one section across multiple workers unless we intentionally break that section apart first. -- The section owner updates only its own checkbox list and notes in this file. -- Stay inside the declared file set for the section unless a tiny integration touch is required elsewhere. -- Prefer structural splits, thinner root files, and clearer module boundaries over clever abstraction. -- Keep ABI adaptation explicit. Share semantic logic only where behavior is truly the same. -- Use `nix develop`. -- On Apple Silicon, validate with `--target x86_64-apple-darwin`. -- Preferred worker validation: `cargo check -p libmwemu --target x86_64-apple-darwin`. -- Preferred integrator validation before calling a wave done: `cargo test --target x86_64-apple-darwin`. -- Do not run `cargo fmt --all`. -- Progress visibility rule: boxes flip only after a worker returns and I review/integrate the result; active work is tracked with `In-progress note` lines under each section. - -## 14. Linux syscall logging and tracing normalization - -This is the one explicitly open item from the current syscall wave. - -- [x] Introduce one per-ABI trace/log helper shape for the remaining legacy fallback paths so `syscall32` and `syscall64` each have a consistent internal format without pretending their calling conventions are identical -- [x] Replace the large remaining ad-hoc `log::trace!` arms in `syscall32/misc.rs` with helper-driven formatting so legacy fallback entries use the same prefix, syscall-name style, spacing, and argument-label style as implemented handlers -- [x] Do the same cleanup in `syscall64/misc.rs`, keeping argument extraction ABI-correct while making the visible trace format match the 32-bit side at the presentation level -- [x] Normalize name/style drift such as `fork` vs `fork()`, empty trailing placeholders, and inconsistent `fd/buf/sz` label wording without changing syscall behavior -- [x] Keep behavior-changing handlers behavior-only: if a branch currently stops the emulator, sets a return value, or touches memory, the cleanup here should only reroute logging/trace formatting around that logic -- [x] Keep 32-bit and 64-bit parameter formatting ABI-correct rather than forcing a misleading shared register-format helper -- [x] Preserve the current family-oriented module layout and thin gateway shape; this section is about consistency, not another structural rewrite -- [x] Avoid changing syscall semantics while normalizing traces -- Worker ownership: `crates/libmwemu/src/syscall/linux/syscall32.rs`, `crates/libmwemu/src/syscall/linux/syscall32/`, `crates/libmwemu/src/syscall/linux/syscall64.rs`, `crates/libmwemu/src/syscall/linux/syscall64/` -- Worker result: completed; Section 14 now uses per-ABI helper-driven syscall trace formatting in `syscall32/misc.rs` and `syscall64/misc.rs`, normalizes leftover naming/style drift in the legacy fallback paths, and leaves only auxiliary status/error logs as direct `log::trace!` calls. `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 15. Linux syscall root files: final thin-gateway pass - -- [x] Move any remaining obvious concrete handler bodies out of top-level `syscall32.rs` and `syscall64.rs` into family modules where the concern boundary is clear -- [x] Leave the root files as gateway entrypoints, shared macros/helpers, and minimal legacy dispatch glue only -- [x] Keep 32-bit and 64-bit organization mirrored even when the actual handler bodies differ -- [x] Do not force cross-ABI sharing just to reduce line count -- Worker ownership: `crates/libmwemu/src/syscall/linux/syscall32.rs`, `crates/libmwemu/src/syscall/linux/syscall32/`, `crates/libmwemu/src/syscall/linux/syscall64.rs`, `crates/libmwemu/src/syscall/linux/syscall64/` -- Worker result: completed; root syscall files are now thin gateways and `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 16. WinAPI `kernel32` pair: final root-file thin-down (`#128`) - -- [x] Reduce `winapi32/kernel32/mod.rs` and `winapi64/kernel32/mod.rs` toward module registry plus gateway responsibilities only -- [x] Move any remaining resolver, loader, IAT, or name-lookup helpers out of the root files into focused modules -- [x] Keep 32-bit and 64-bit ABI adaptation explicit -- [x] If more shared logic is clearly safe, prefer small helpers under `api/windows/common/kernel32.rs` or pair-local helpers, not a new generic dumping ground -- [x] Replace the still-massive flat `mod.rs` layout with a folder-backed structure so the root `kernel32` files stop being giant registries of hundreds of sibling modules -- [x] Group the extracted modules by concern in a way that makes navigation obvious, for example loader/resolver, process/thread, file/path, memory, registry, locale/string, and synchronization buckets -- [x] Leave the root `winapi32/kernel32/mod.rs` and `winapi64/kernel32/mod.rs` files as short hubs: module declarations, gateway dispatch, and only tiny glue/helpers that genuinely belong at the root -- [x] Mirror the concern layout across 32-bit and 64-bit sides so issue `#128` stays visible as “thin ABI wrappers around parallel semantic buckets,” not two unrelated trees -- [x] Do not satisfy this by stuffing more into `common/kernel32.rs`; the remaining work here is primarily structural organization of the pair-local trees -- Worker ownership: `crates/libmwemu/src/api/windows/common/kernel32.rs`, `crates/libmwemu/src/api/windows/winapi32/kernel32/`, `crates/libmwemu/src/api/windows/winapi64/kernel32/` -- Worker result: completed; mirrored folder-backed concern buckets landed under both `winapi32/kernel32/` and `winapi64/kernel32/`, the root `mod.rs` files are now hub-plus-gateway only, and `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 17. WinAPI `ntdll` pair: final root-file thin-down (`#128`) - -- [x] Move any remaining obvious concrete handlers out of the root `winapi32/ntdll.rs` and `winapi64/ntdll.rs` files into the existing domain modules -- [x] Keep `api/windows/common/ntdll.rs` intentionally small; only obviously shared semantics belong there -- [x] Preserve the current domain split (`heap`, `file`, `memory`, `loader`, `string`, `sync`, `misc`) and keep ABI wrappers explicit -- [x] If the root files remain large after handler moves, prefer a cleaner `ntdll/mod.rs` hub shape over adding more logic to the root files -- Worker ownership: `crates/libmwemu/src/api/windows/common/ntdll.rs`, `crates/libmwemu/src/api/windows/winapi32/ntdll.rs`, `crates/libmwemu/src/api/windows/winapi32/ntdll/`, `crates/libmwemu/src/api/windows/winapi64/ntdll.rs`, `crates/libmwemu/src/api/windows/winapi64/ntdll/` -- Worker result: completed; `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 18. PE loader structural split / folderization pass - -- [x] Move `pe32.rs` and `pe64.rs` toward a clearer folder-backed layout if that gives us better concern boundaries -- [x] Move the large PE32 structure/type definitions out of `pe32.rs` into dedicated submodules so the root file no longer mixes type declarations with parser/load orchestration -- [x] Do the same for PE64 where the root file still mixes width-specific structures with loader/parser logic -- [x] Split parser/load orchestration from data-model definitions so `pe32.rs` and `pe64.rs` become small hub files plus high-level entry types, not giant mixed “everything PE” roots -- [x] Keep `binding`, `resource`, and `relocation` helpers in their own modules and continue the split with parser-oriented modules rather than letting new parsing helpers accumulate back into the roots -- [x] Reassess which PE helpers or structures can truly be shared between 32-bit and 64-bit after the structural split; do not merge layouts that differ by field width or representation -- [x] Keep parser behavior stable; do not mix a structural split with a broad semantic rewrite in the same pass -- [x] Share 32-bit and 64-bit code only where the representation and behavior are genuinely the same -- Worker ownership: `crates/libmwemu/src/loaders/pe/pe32.rs`, `crates/libmwemu/src/loaders/pe/pe64.rs`, plus any new `crates/libmwemu/src/loaders/pe/*` structural files needed for the split -- Worker result: completed; common identical-layout PE model types moved to `loaders/pe/shared.rs`, width-specific PE32/PE64 headers moved into `pe32/types.rs` and `pe64/types.rs`, and parser/load orchestration moved into `pe32/parser.rs` and `pe64/parser.rs` so the root files are now small hubs plus exported entry types. `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 19. `windows/peb/peb64.rs` structural split - -- [x] Separate bootstrap and init helpers from dynamic loader-list maintenance and rebuild helpers -- [x] Keep PEB/TEB creation behavior stable -- [x] Keep dynamic module link/unlink, hash-table rebuild, and loader-global maintenance behavior stable -- [x] Prefer folder-backed organization if that gives clearer boundaries than another very long flat file -- Worker ownership: `crates/libmwemu/src/windows/peb/peb64.rs` and any new `crates/libmwemu/src/windows/peb/*` structural files created by the split -- Worker result: completed; folder-backed `peb64/` layout landed and `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 20. `debug/gdb/target.rs` arch separation pass - -- [x] Split the x86_64, x86, and aarch64 GDB target implementations into separate files under a folder-backed layout -- [x] Keep shared XML generation and library-list helpers in a small shared helper module -- [x] Avoid behavior changes to register access, resume, step, or memory read/write semantics in the same pass -- [x] Prefer structural clarity over aggressive trait abstraction unless the shared surface becomes truly obvious -- Worker ownership: `crates/libmwemu/src/debug/gdb/target.rs` and any new `crates/libmwemu/src/debug/gdb/target/*` files created by the split -- Worker result: completed; folder-backed `debug/gdb/target/` layout landed and `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 21. `winapi32/wininet.rs` folderization pass - -- [x] Move the file toward a folder-backed layout with concern-oriented modules -- [x] Group helpers by concern such as session open/connect, request creation, send/query, URL parsing, and handle teardown -- [x] Preserve current handle semantics and tracing behavior -- [x] Keep this pass structural first; avoid mixing in new wininet behavior unless a bug is directly uncovered -- Worker ownership: `crates/libmwemu/src/api/windows/winapi32/wininet.rs` and any new `crates/libmwemu/src/api/windows/winapi32/wininet/*` files created by the split -- Worker result: completed; folder-backed `wininet/` layout landed and `nix develop` + `cargo check -p libmwemu --target x86_64-apple-darwin` passed. - -## 22. Explicitly leave alone for now - -Do not assign subagents here unless feature work or new evidence changes the decision. - -- [x] `crates/libmwemu/src/arch/x86/regs.rs` is large but coherent enough after the recent cleanup -- [x] `crates/libmwemu/src/arch/x86/flags.rs` is high-risk and low-payoff for more structure work right now -- [x] `crates/libmwemu/src/windows/constants.rs` is mostly declarative data and does not need a restructure pass for this issue -- [x] `crates/libmwemu/src/maps/mem64.rs` should remain the single-region primitive owner for now -- [x] `crates/libmwemu/src/emu/operands.rs` is dense but focused and does not need a restructure pass right now -- [x] `crates/libmwemu/src/emu/execution/mod.rs` is already the intended execution hub after the earlier split -- [x] `crates/libmwemu/src/debug/console.rs` stays as-is unless command families start expanding again -- [x] `crates/libmwemu/src/debug/script.rs` stays as-is unless the script language surface grows enough to justify command modules -- [x] `crates/libmwemu/src/emu/object_handle/hive_parser.rs` stays as a cohesive parser/cache/test unit -- [x] `crates/pymwemu/src/lib.rs` stays as-is unless we later change how bindings are generated or organized - -## 23. Issue #165 close-out checklist - -- [x] Finish the formerly open concrete work in Sections 14, 16, and 18; no narrower follow-up issue was needed for this pass -- [x] Rerun the largest non-test `.rs` file report and confirm the remaining top files are either consciously deferred (`regs.rs`, `flags.rs`, `constants.rs`, `console.rs`, `script.rs`, `mem64.rs`) or now acceptable family/root files after this restructure wave (`syscall32/misc.rs`, `syscall64/misc.rs`, `winapi32/kernel32/mod.rs`) -- [x] Rerun `nix develop` + `cargo test --target x86_64-apple-darwin` on the combined tree -- [x] Post a final issue comment summarizing what was completed here versus what was intentionally deferred (`issuecomment-4201878954`) -- [ ] Close Issue #165 if the remaining work has either landed or been split into narrower follow-up issues diff --git a/PARITY_DEBT.md b/PARITY_DEBT.md deleted file mode 100644 index 3b93a901..00000000 --- a/PARITY_DEBT.md +++ /dev/null @@ -1,65 +0,0 @@ -# x86/AArch64 Parity Debt - -Remaining x86-only code that is either deferred or architecturally -x86-specific by design. - ---- - -## Deferred - -### 1. Serialization (`serialization/emu.rs`) — Low Priority - -The entire `SerializableEmu` struct and its `From<&Emu>` impl are x86-only. -Calling `dump_to_file()` or deserializing on aarch64 will panic. - -- `emu.x86_instruction()` — panics -- `emu.regs().clone()` — panics -- `emu.pre_op_regs()` / `emu.post_op_regs()` — panics -- `emu.flags()` — panics -- `emu.fpu().clone()` — panics - -**Fix:** Add `ArchSerializableState` enum with x86 and aarch64 variants. -Serialize aarch64 registers (x0-x30, sp, pc, NZCV) and current instruction. - -### 2. GDB server (`debug/gdb/`) — Deferrable - -Entirely x86: `target.rs`, `registers.rs`, `mod.rs` all use `regs()`, -`flags()`, `fpu()` without guards. ~12 unguarded call sites. - -**Fix:** Add aarch64 register set support in GDB protocol (x0-x30, sp, pc, -CPSR/NZCV). This is Step 13 in the plan. - ---- - -## Architecturally x86-specific (not bugs) - -These are x86-only by design and not reachable during aarch64 emulation. - -| File | Reason | -|------|--------| -| `emu/operands.rs` | x86 instruction operand decoding; aarch64 handlers don't use it | -| `emu/display.rs` `featured_regs32/64` | x86 display methods; `featured_regs_aarch64()` exists, callers dispatch | -| `emu/execution.rs` `step_single_threaded` | Deprecated, x86-only by design | -| `emu/stack.rs` `push32/pop32` | 32-bit x86 stack ops; aarch64 uses `push64/pop64` (already fixed) | -| `emu/winapi.rs`, `emu/tls.rs`, `emu/fls.rs` | Windows API emulation, x86/x64-only | -| `emu/call_stack.rs` | Architecture-neutral, no `regs()` calls | -| `emu/memory.rs` `memory_operand_to_address` | x86 operand syntax parser; guarded with early panic on aarch64 | - ---- - -## Previously fixed (this refactor) - -| Item | Fix | -|------|-----| -| `emu/stack.rs` push64/pop64 | Now uses `sp()`/`set_sp()`/`pc()` — works on both arches | -| `emu/exception_handlers.rs` | Uses `pc()`, returns early on aarch64 | -| `emu/memory.rs` trace logging | All `regs().rip` replaced with `pc()` | -| `emu/memory.rs` operand parsing | Guarded with arch check | -| `emu/trace.rs` capture_pre_op/post_op | aarch64 register snapshots implemented | -| `emu/trace.rs` write_to_trace_file | aarch64 reg diff via `RegsAarch64::diff()` | -| `debug/console.rs` | Full aarch64 support: registers, flags, stack, radare2 | -| `debug/script.rs` | All commands arch-dispatched | -| `debug/definitions.rs` | Uses `pc()`, aarch64 register lookup | -| `debug/tracing.rs` | `TraceRecord::capture()` dispatches to aarch64 | -| `threading/scheduler.rs` | Threading enabled for aarch64 | -| `pymwemu` | `get_reg`/`set_reg` arch-dispatched, added `get_pc`/`set_pc`/`get_sp`/`set_sp` | diff --git a/crates/libmwemu/src/tests/fixtures/hello_linux_arm64 b/crates/libmwemu/src/tests/fixtures/hello_linux_arm64 new file mode 100755 index 00000000..cf82a0a2 Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_linux_arm64 differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_linux_x64 b/crates/libmwemu/src/tests/fixtures/hello_linux_x64 new file mode 100755 index 00000000..5c98f7c3 Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_linux_x64 differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_linux_x86 b/crates/libmwemu/src/tests/fixtures/hello_linux_x86 new file mode 100755 index 00000000..8dcbeee1 Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_linux_x86 differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_mac_arm64 b/crates/libmwemu/src/tests/fixtures/hello_mac_arm64 new file mode 100755 index 00000000..2810f8d8 Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_mac_arm64 differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_mac_x64 b/crates/libmwemu/src/tests/fixtures/hello_mac_x64 new file mode 100755 index 00000000..5b9303c5 Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_mac_x64 differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_win_arm64.exe b/crates/libmwemu/src/tests/fixtures/hello_win_arm64.exe new file mode 100755 index 00000000..331e95db Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_win_arm64.exe differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_win_x64.exe b/crates/libmwemu/src/tests/fixtures/hello_win_x64.exe new file mode 100755 index 00000000..17d89951 Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_win_x64.exe differ diff --git a/crates/libmwemu/src/tests/fixtures/hello_win_x86.exe b/crates/libmwemu/src/tests/fixtures/hello_win_x86.exe new file mode 100755 index 00000000..ab3bb1fe Binary files /dev/null and b/crates/libmwemu/src/tests/fixtures/hello_win_x86.exe differ diff --git a/crates/libmwemu/src/tests/aarch64_basic.rs b/crates/libmwemu/src/tests/isa/aarch64/aarch64_basic.rs similarity index 100% rename from crates/libmwemu/src/tests/aarch64_basic.rs rename to crates/libmwemu/src/tests/isa/aarch64/aarch64_basic.rs diff --git a/crates/libmwemu/src/tests/isa/aarch64/mod.rs b/crates/libmwemu/src/tests/isa/aarch64/mod.rs new file mode 100644 index 00000000..0191dc1a --- /dev/null +++ b/crates/libmwemu/src/tests/isa/aarch64/mod.rs @@ -0,0 +1 @@ +mod aarch64_basic; diff --git a/crates/libmwemu/src/tests/isa/mod.rs b/crates/libmwemu/src/tests/isa/mod.rs new file mode 100644 index 00000000..4be603bf --- /dev/null +++ b/crates/libmwemu/src/tests/isa/mod.rs @@ -0,0 +1,3 @@ +mod aarch64; +mod x64; +mod x86; diff --git a/crates/libmwemu/src/tests/allocator64_test.rs b/crates/libmwemu/src/tests/isa/x64/allocator64_test.rs similarity index 100% rename from crates/libmwemu/src/tests/allocator64_test.rs rename to crates/libmwemu/src/tests/isa/x64/allocator64_test.rs diff --git a/crates/libmwemu/src/tests/call64.rs b/crates/libmwemu/src/tests/isa/x64/call64.rs similarity index 100% rename from crates/libmwemu/src/tests/call64.rs rename to crates/libmwemu/src/tests/isa/x64/call64.rs diff --git a/crates/libmwemu/src/tests/exception_handler64.rs b/crates/libmwemu/src/tests/isa/x64/exception_handler64.rs similarity index 100% rename from crates/libmwemu/src/tests/exception_handler64.rs rename to crates/libmwemu/src/tests/isa/x64/exception_handler64.rs diff --git a/crates/libmwemu/src/tests/linux_call64.rs b/crates/libmwemu/src/tests/isa/x64/linux_call64.rs similarity index 100% rename from crates/libmwemu/src/tests/linux_call64.rs rename to crates/libmwemu/src/tests/isa/x64/linux_call64.rs diff --git a/crates/libmwemu/src/tests/mem64_test.rs b/crates/libmwemu/src/tests/isa/x64/mem64_test.rs similarity index 100% rename from crates/libmwemu/src/tests/mem64_test.rs rename to crates/libmwemu/src/tests/isa/x64/mem64_test.rs diff --git a/crates/libmwemu/src/tests/memmove_test.rs b/crates/libmwemu/src/tests/isa/x64/memmove_test.rs similarity index 100% rename from crates/libmwemu/src/tests/memmove_test.rs rename to crates/libmwemu/src/tests/isa/x64/memmove_test.rs diff --git a/crates/libmwemu/src/tests/isa/x64/mod.rs b/crates/libmwemu/src/tests/isa/x64/mod.rs new file mode 100644 index 00000000..a97454b8 --- /dev/null +++ b/crates/libmwemu/src/tests/isa/x64/mod.rs @@ -0,0 +1,7 @@ +mod allocator64_test; +mod call64; +mod exception_handler64; +mod linux_call64; +mod mem64_test; +mod memmove_test; +mod stack64_test; diff --git a/crates/libmwemu/src/tests/stack64_test.rs b/crates/libmwemu/src/tests/isa/x64/stack64_test.rs similarity index 100% rename from crates/libmwemu/src/tests/stack64_test.rs rename to crates/libmwemu/src/tests/isa/x64/stack64_test.rs diff --git a/crates/libmwemu/src/tests/allocator32_test.rs b/crates/libmwemu/src/tests/isa/x86/allocator32_test.rs similarity index 100% rename from crates/libmwemu/src/tests/allocator32_test.rs rename to crates/libmwemu/src/tests/isa/x86/allocator32_test.rs diff --git a/crates/libmwemu/src/tests/basic_test_code_bytes_shld_shrd.rs b/crates/libmwemu/src/tests/isa/x86/basic_test_code_bytes_shld_shrd.rs similarity index 100% rename from crates/libmwemu/src/tests/basic_test_code_bytes_shld_shrd.rs rename to crates/libmwemu/src/tests/isa/x86/basic_test_code_bytes_shld_shrd.rs diff --git a/crates/libmwemu/src/tests/bit_manipulation_tests.rs b/crates/libmwemu/src/tests/isa/x86/bit_manipulation_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/bit_manipulation_tests.rs rename to crates/libmwemu/src/tests/isa/x86/bit_manipulation_tests.rs diff --git a/crates/libmwemu/src/tests/call32.rs b/crates/libmwemu/src/tests/isa/x86/call32.rs similarity index 100% rename from crates/libmwemu/src/tests/call32.rs rename to crates/libmwemu/src/tests/isa/x86/call32.rs diff --git a/crates/libmwemu/src/tests/cmpxchg_tests.rs b/crates/libmwemu/src/tests/isa/x86/cmpxchg_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/cmpxchg_tests.rs rename to crates/libmwemu/src/tests/isa/x86/cmpxchg_tests.rs diff --git a/crates/libmwemu/src/tests/exception_handler32.rs b/crates/libmwemu/src/tests/isa/x86/exception_handler32.rs similarity index 100% rename from crates/libmwemu/src/tests/exception_handler32.rs rename to crates/libmwemu/src/tests/isa/x86/exception_handler32.rs diff --git a/crates/libmwemu/src/tests/flag_calculations.rs b/crates/libmwemu/src/tests/isa/x86/flag_calculations.rs similarity index 100% rename from crates/libmwemu/src/tests/flag_calculations.rs rename to crates/libmwemu/src/tests/isa/x86/flag_calculations.rs diff --git a/crates/libmwemu/src/tests/fpu_conversions.rs b/crates/libmwemu/src/tests/isa/x86/fpu_conversions.rs similarity index 100% rename from crates/libmwemu/src/tests/fpu_conversions.rs rename to crates/libmwemu/src/tests/isa/x86/fpu_conversions.rs diff --git a/crates/libmwemu/src/tests/fpu_f80_emulation.rs b/crates/libmwemu/src/tests/isa/x86/fpu_f80_emulation.rs similarity index 100% rename from crates/libmwemu/src/tests/fpu_f80_emulation.rs rename to crates/libmwemu/src/tests/isa/x86/fpu_f80_emulation.rs diff --git a/crates/libmwemu/src/tests/fpu_stack_operations.rs b/crates/libmwemu/src/tests/isa/x86/fpu_stack_operations.rs similarity index 100% rename from crates/libmwemu/src/tests/fpu_stack_operations.rs rename to crates/libmwemu/src/tests/isa/x86/fpu_stack_operations.rs diff --git a/crates/libmwemu/src/tests/logic_test.rs b/crates/libmwemu/src/tests/isa/x86/logic_test.rs similarity index 100% rename from crates/libmwemu/src/tests/logic_test.rs rename to crates/libmwemu/src/tests/isa/x86/logic_test.rs diff --git a/crates/libmwemu/src/tests/isa/x86/mod.rs b/crates/libmwemu/src/tests/isa/x86/mod.rs new file mode 100644 index 00000000..0e35c438 --- /dev/null +++ b/crates/libmwemu/src/tests/isa/x86/mod.rs @@ -0,0 +1,22 @@ +mod allocator32_test; +mod basic_test_code_bytes_shld_shrd; +mod bit_manipulation_tests; +mod call32; +mod cmpxchg_tests; +mod exception_handler32; +mod flag_calculations; +mod fpu_conversions; +mod fpu_f80_emulation; +mod fpu_stack_operations; +mod logic_test; +mod rax_x86_tests; +mod shl2p8_bug_trigger; +mod shl2p8_edge_cases_should_not_panic; +mod sse_avx_tests; +mod stack32_test; +mod stress_sar2p_all; +mod stress_shl1p_all; +mod stress_shl2p_all; +mod stress_shl2p_trigger; +mod stress_shr2p_all; +mod string_ops_tests; diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/aaa_aas.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/aaa_aas.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/aaa_aas.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/aaa_aas.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/aam_aad.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/aam_aad.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/aam_aad.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/aam_aad.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/adc_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/adc_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/adc_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/adc_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/adcx_adox.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/adcx_adox.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/adcx_adox.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/adcx_adox.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/add_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/add_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/add_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/add_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aaa.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aaa.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aaa.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aaa.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aad.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aad.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aad.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aad.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aam.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aam.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aam.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aam.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aas.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aas.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/aas.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/aas.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/daa.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/daa.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/daa.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/daa.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/das.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/das.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/das.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/das.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/bcd/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/bcd/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/cmp_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/cmp_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/cmp_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/cmp_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/comparison/cmp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/comparison/cmp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/comparison/cmp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/comparison/cmp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/comprehensive_arithmetic.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/comprehensive_arithmetic.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/comprehensive_arithmetic.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/comprehensive_arithmetic.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/daa_das.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/daa_das.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/daa_das.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/daa_das.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/div.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/div.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/div.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/div.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/idiv.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/idiv.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/idiv.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/idiv.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/imul.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/imul.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/imul.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/imul.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/inc_dec.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/inc_dec.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/inc_dec.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/inc_dec.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_addition_carry/adc.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_addition_carry/adc.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_addition_carry/adc.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_addition_carry/adc.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_addition_carry/add.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_addition_carry/add.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_addition_carry/add.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_addition_carry/add.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_division/div.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_division/div.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_division/div.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_division/div.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_division/idiv.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_division/idiv.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_division/idiv.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_division/idiv.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_multiplication/imul.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_multiplication/imul.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_multiplication/imul.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_multiplication/imul.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_multiplication/mul.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_multiplication/mul.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_multiplication/mul.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_multiplication/mul.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/dec.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/dec.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/dec.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/dec.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/inc.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/inc.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/inc.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/inc.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/neg.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/neg.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/neg.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/neg.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/sbb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/sbb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction/sbb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction/sbb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction_base/sub.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction_base/sub.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/integer_subtraction_base/sub.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/integer_subtraction_base/sub.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/mul.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/mul.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/mul.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/mul.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/neg.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/neg.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/neg.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/neg.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/sbb_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/sbb_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/sbb_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/sbb_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/arithmetic/sub_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/sub_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/arithmetic/sub_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/arithmetic/sub_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/check.py b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/check.py similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/check.py rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/check.py diff --git a/crates/libmwemu/src/tests/rax_x86_tests/clean.py b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/clean.py similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/clean.py rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/clean.py diff --git a/crates/libmwemu/src/tests/rax_x86_tests/clean2.py b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/clean2.py similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/clean2.py rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/clean2.py diff --git a/crates/libmwemu/src/tests/rax_x86_tests/common/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/common/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/common/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/common/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fixer.py b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fixer.py similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fixer.py rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fixer.py diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/arithmetic_variants.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/arithmetic_variants.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/arithmetic_variants.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/arithmetic_variants.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/comparison_control.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/comparison_control.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/comparison_control.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/comparison_control.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/f2xm1.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/f2xm1.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/f2xm1.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/f2xm1.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fabs.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fabs.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fabs.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fabs.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fadd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fadd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fadd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fadd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/faddp_fsubp_fmulp_fdivp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/faddp_fsubp_fmulp_fdivp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/faddp_fsubp_fmulp_fdivp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/faddp_fsubp_fmulp_fdivp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fbld_fbstp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fbld_fbstp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fbld_fbstp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fbld_fbstp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fchs.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fchs.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fchs.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fchs.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fclex_fnclex.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fclex_fnclex.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fclex_fnclex.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fclex_fnclex.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fcmovcc.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcmovcc.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fcmovcc.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcmovcc.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fcom.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcom.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fcom.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcom.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fcomi_fcomip.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcomi_fcomip.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fcomi_fcomip.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcomi_fcomip.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fcompp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcompp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fcompp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcompp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fcos.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcos.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fcos.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fcos.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fdiv.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fdiv.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fdiv.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fdiv.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/ffree.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/ffree.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/ffree.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/ffree.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fiadd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fiadd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fiadd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fiadd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/ficom_ficomp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/ficom_ficomp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/ficom_ficomp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/ficom_ficomp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fidiv.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fidiv.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fidiv.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fidiv.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fidivr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fidivr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fidivr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fidivr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fild.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fild.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fild.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fild.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fimul.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fimul.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fimul.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fimul.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fincstp_fdecstp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fincstp_fdecstp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fincstp_fdecstp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fincstp_fdecstp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/finit_fninit.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/finit_fninit.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/finit_fninit.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/finit_fninit.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fist_fistp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fist_fistp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fist_fistp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fist_fistp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fisttp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fisttp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fisttp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fisttp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fisub.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fisub.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fisub.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fisub.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fisubr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fisubr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fisubr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fisubr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fld_constants.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fld_constants.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fld_constants.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fld_constants.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fldcw_fstcw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fldcw_fstcw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fldcw_fstcw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fldcw_fstcw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fldenv_fstenv.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fldenv_fstenv.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fldenv_fstenv.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fldenv_fstenv.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fmul.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fmul.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fmul.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fmul.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fninit_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fninit_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fninit_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fninit_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fnop.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fnop.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fnop.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fnop.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fnsave_fnop.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fnsave_fnop.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fnsave_fnop.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fnsave_fnop.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fpatan.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fpatan.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fpatan.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fpatan.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fprem.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fprem.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fprem.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fprem.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fprem1.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fprem1.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fprem1.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fprem1.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fptan.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fptan.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fptan.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fptan.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/frndint.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/frndint.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/frndint.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/frndint.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/frndint_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/frndint_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/frndint_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/frndint_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fsave_frstor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsave_frstor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fsave_frstor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsave_frstor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fscale.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fscale.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fscale.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fscale.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fsin_fcos.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsin_fcos.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fsin_fcos.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsin_fcos.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fsincos.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsincos.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fsincos.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsincos.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fsqrt.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsqrt.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fsqrt.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsqrt.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fst_fstp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fst_fstp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fst_fstp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fst_fstp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fstenv_fnstenv.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fstenv_fnstenv.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fstenv_fnstenv.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fstenv_fnstenv.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fstsw_fnstsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fstsw_fnstsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fstsw_fnstsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fstsw_fnstsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fsub.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsub.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fsub.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fsub.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/ftst.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/ftst.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/ftst.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/ftst.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fucom_fucomp_fucompp.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fucom_fucomp_fucompp.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fucom_fucomp_fucompp.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fucom_fucomp_fucompp.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fucomi_fucomip.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fucomi_fucomip.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fucomi_fucomip.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fucomi_fucomip.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fxam.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxam.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fxam.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxam.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fxch.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxch.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fxch.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxch.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fxsave64_fxrstor64.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxsave64_fxrstor64.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fxsave64_fxrstor64.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxsave64_fxrstor64.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fxsave_fxrstor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxsave_fxrstor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fxsave_fxrstor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxsave_fxrstor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fxtract.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxtract.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fxtract.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fxtract.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fyl2x.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fyl2x.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fyl2x.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fyl2x.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/fyl2xp1.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fyl2xp1.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/fyl2xp1.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/fyl2xp1.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/fpu/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/fpu/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/fpu/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/lapic_integration.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/lapic_integration.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/lapic_integration.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/lapic_integration.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/and.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/and.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/and.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/and.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/not.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/not.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/not.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/not.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/or.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/or.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/or.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/or.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/test.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/test.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic/test.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic/test.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/xor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/xor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/xor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/basic_logic_xor/xor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/bswap.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/bswap.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/bswap.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/bswap.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/lzcnt.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/lzcnt.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/lzcnt.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/lzcnt.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/tzcnt.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/tzcnt.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/tzcnt.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_counting_swap/tzcnt.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsf.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsf.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsf.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsf.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/bsr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_scanning/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bt.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bt.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bt.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bt.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btc.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btc.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btc.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btc.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/btr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bts.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bts.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bts.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/bts.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bit_testing/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bit_testing/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/bextr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/bextr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/bextr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/bextr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsi.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsi.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsi.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsi.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsmsk.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsmsk.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsmsk.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsmsk.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/blsr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi1/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi1/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/bzhi.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/bzhi.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/bzhi.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/bzhi.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/pdep.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/pdep.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/pdep.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/pdep.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/pext.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/pext.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/bmi2/pext.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/bmi2/pext.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/rorx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/rorx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/rorx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_advanced/rorx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcl.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcl.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcl.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcl.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rcr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rol.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rol.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rol.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/rol.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/ror.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/ror.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/ror.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/rotates_basic/ror.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/sar.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/sar.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/sar.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_arithmetic/sar.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shrd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shrd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shrd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_double_precision/shrd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shl.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shl.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shl.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shl.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_logical/shr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/sarx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/sarx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/sarx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/sarx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shlx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shlx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shlx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shlx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shrx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shrx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shrx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logic_and_bit_manipulation/shifts_variable/shrx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/and.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/and.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/and.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/and.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/not.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/not.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/not.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/not.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/or.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/or.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/or.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/or.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/sar.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/sar.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/sar.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/sar.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/shl_sal.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/shl_sal.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/shl_sal.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/shl_sal.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/shr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/shr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/shr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/shr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/test.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/test.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/test.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/test.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/logical/xor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/xor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/logical/xor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/logical/xor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/rcl.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rcl.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/rcl.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rcl.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/rcr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rcr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/rcr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rcr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/rol.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rol.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/rol.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rol.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/rol_ror_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rol_ror_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/rol_ror_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/rol_ror_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/ror.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/ror.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/ror.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/ror.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/shld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/shld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/shld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/shld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/shld_shrd_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/shld_shrd_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/shld_shrd_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/shld_shrd_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/rotate/shrd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/shrd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/rotate/shrd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/rotate/shrd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vaddps_vaddpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vaddps_vaddpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vaddps_vaddpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vaddps_vaddpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vaddss_vaddsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vaddss_vaddsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vaddss_vaddsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vaddss_vaddsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vaddsubps_vaddsubpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vaddsubps_vaddsubpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vaddsubps_vaddsubpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vaddsubps_vaddsubpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vandnps_vandnpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vandnps_vandnpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vandnps_vandnpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vandnps_vandnpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vandps_vandpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vandps_vandpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vandps_vandpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vandps_vandpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vblendps_vblendpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vblendps_vblendpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vblendps_vblendpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vblendps_vblendpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vblendvpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vblendvpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vblendvpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vblendvpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vblendvps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vblendvps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vblendvps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vblendvps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vbroadcastss_vbroadcastsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vbroadcastss_vbroadcastsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vbroadcastss_vbroadcastsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vbroadcastss_vbroadcastsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcmpps_vcmppd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcmpps_vcmppd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcmpps_vcmppd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcmpps_vcmppd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcomisd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcomisd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcomisd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcomisd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcomiss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcomiss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcomiss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcomiss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtdq2pd_vcvtpd2dq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtdq2pd_vcvtpd2dq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtdq2pd_vcvtpd2dq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtdq2pd_vcvtpd2dq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtdq2ps_vcvtps2dq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtdq2ps_vcvtps2dq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtdq2ps_vcvtps2dq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtdq2ps_vcvtps2dq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtps2pd_vcvtpd2ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtps2pd_vcvtpd2ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtps2pd_vcvtpd2ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtps2pd_vcvtpd2ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtsi2ss_vcvtsi2sd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtsi2ss_vcvtsi2sd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtsi2ss_vcvtsi2sd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtsi2ss_vcvtsi2sd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtss2sd_vcvtsd2ss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtss2sd_vcvtsd2ss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtss2sd_vcvtsd2ss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtss2sd_vcvtsd2ss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtss2si_vcvtsd2si.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtss2si_vcvtsd2si.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvtss2si_vcvtsd2si.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvtss2si_vcvtsd2si.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvttps2dq_vcvttpd2dq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvttps2dq_vcvttpd2dq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvttps2dq_vcvttpd2dq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvttps2dq_vcvttpd2dq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvttss2si_vcvttsd2si.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvttss2si_vcvttsd2si.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vcvttss2si_vcvttsd2si.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vcvttss2si_vcvttsd2si.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdivps_vdivpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdivps_vdivpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdivps_vdivpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdivps_vdivpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdivss_vdivsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdivss_vdivsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdivss_vdivsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdivss_vdivsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdppd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdppd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdppd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdppd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdpps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdpps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vdpps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vdpps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vextractf128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vextractf128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vextractf128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vextractf128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vextractf128_vinsertf128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vextractf128_vinsertf128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vextractf128_vinsertf128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vextractf128_vinsertf128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd132pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd132pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd132pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd132pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd132ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd132ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd132ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd132ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd213pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd213pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd213pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd213pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd213ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd213ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd213ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd213ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd231pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd231pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd231pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd231pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd231ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd231ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmadd231ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmadd231ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub132pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub132pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub132pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub132pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub132ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub132ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub132ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub132ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub213pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub213pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub213pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub213pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub213ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub213ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub213ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub213ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub231pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub231pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub231pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub231pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub231ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub231ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfmsub231ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfmsub231ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd132pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd132pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd132pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd132pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd132ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd132ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd132ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd132ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd213pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd213pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd213pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd213pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd213ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd213ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd213ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd213ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd231pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd231pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd231pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd231pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd231ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd231ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmadd231ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmadd231ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub132pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub132pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub132pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub132pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub132ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub132ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub132ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub132ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub213pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub213pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub213pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub213pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub213ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub213ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub213ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub213ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub231pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub231pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub231pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub231pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub231ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub231ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vfnmsub231ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vfnmsub231ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vhaddps_vhaddpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vhaddps_vhaddpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vhaddps_vhaddpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vhaddps_vhaddpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vhsubps_vhsubpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vhsubps_vhsubpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vhsubps_vhsubpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vhsubps_vhsubpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vinsertf128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vinsertf128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vinsertf128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vinsertf128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vldmxcsr_vstmxcsr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vldmxcsr_vstmxcsr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vldmxcsr_vstmxcsr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vldmxcsr_vstmxcsr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmaskmovps_vmaskmovpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmaskmovps_vmaskmovpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmaskmovps_vmaskmovpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmaskmovps_vmaskmovpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmaxps_vmaxpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmaxps_vmaxpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmaxps_vmaxpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmaxps_vmaxpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vminps_vminpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vminps_vminpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vminps_vminpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vminps_vminpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovaps_vmovapd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovaps_vmovapd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovaps_vmovapd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovaps_vmovapd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovddup.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovddup.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovddup.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovddup.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovdqa_vmovdqu.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovdqa_vmovdqu.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovdqa_vmovdqu.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovdqa_vmovdqu.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovhlps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovhlps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovhlps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovhlps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovhpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovhpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovhpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovhpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovhps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovhps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovhps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovhps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovlhps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovlhps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovlhps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovlhps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovlpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovlpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovlpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovlpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovlps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovlps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovlps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovlps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovmskps_vmovmskpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovmskps_vmovmskpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovmskps_vmovmskpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovmskps_vmovmskpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntdqa.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntdqa.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntdqa.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntdqa.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovntps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovntps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovshdup.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovshdup.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovshdup.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovshdup.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovsldup.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovsldup.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovsldup.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovsldup.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovups_vmovupd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovups_vmovupd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmovups_vmovupd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmovups_vmovupd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmulps_vmulpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmulps_vmulpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmulps_vmulpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmulps_vmulpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmulss_vmulsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmulss_vmulsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vmulss_vmulsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vmulss_vmulsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vorps_vorpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vorps_vorpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vorps_vorpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vorps_vorpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vperm2f128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vperm2f128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vperm2f128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vperm2f128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vpermilpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vpermilpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vpermilpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vpermilpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vpermilps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vpermilps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vpermilps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vpermilps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vrcpps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vrcpps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vrcpps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vrcpps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vroundss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vroundss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vrsqrtps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vrsqrtps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vrsqrtps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vrsqrtps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vshufps_vshufpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vshufps_vshufpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vshufps_vshufpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vshufps_vshufpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vsqrtps_vsqrtpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vsqrtps_vsqrtpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vsqrtps_vsqrtpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vsqrtps_vsqrtpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vsubps_vsubpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vsubps_vsubpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vsubps_vsubpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vsubps_vsubpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vsubss_vsubsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vsubss_vsubsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vsubss_vsubsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vsubss_vsubsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vtestps_vtestpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vtestps_vtestpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vtestps_vtestpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vtestps_vtestpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vucomisd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vucomisd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vucomisd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vucomisd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vucomiss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vucomiss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vucomiss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vucomiss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vunpckhps_vunpckhpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vunpckhps_vunpckhpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vunpckhps_vunpckhpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vunpckhps_vunpckhpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vunpcklps_vunpcklpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vunpcklps_vunpcklpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vunpcklps_vunpcklpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vunpcklps_vunpcklpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vxorps_vxorpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vxorps_vxorpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vxorps_vxorpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vxorps_vxorpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vzeroupper_vzeroall.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vzeroupper_vzeroall.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx/vzeroupper_vzeroall.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx/vzeroupper_vzeroall.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vbroadcasti128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vbroadcasti128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vbroadcasti128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vbroadcasti128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vextracti128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vextracti128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vextracti128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vextracti128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vgatherdps_vgatherdpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vgatherdps_vgatherdpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vgatherdps_vgatherdpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vgatherdps_vgatherdpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vgatherqps_vgatherqpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vgatherqps_vgatherqpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vgatherqps_vgatherqpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vgatherqps_vgatherqpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vinserti128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vinserti128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vinserti128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vinserti128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vmpsadbw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vmpsadbw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vmpsadbw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vmpsadbw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpabsb_vpabsw_vpabsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpabsb_vpabsw_vpabsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpabsb_vpabsw_vpabsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpabsb_vpabsw_vpabsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpacksswb_vpackssdw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpacksswb_vpackssdw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpacksswb_vpackssdw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpacksswb_vpackssdw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpackuswb_vpackusdw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpackuswb_vpackusdw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpackuswb_vpackusdw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpackuswb_vpackusdw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddb_vpaddw_vpaddd_vpaddq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddb_vpaddw_vpaddd_vpaddq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddb_vpaddw_vpaddd_vpaddq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddb_vpaddw_vpaddd_vpaddq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddsb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddsb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddsb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddsb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddusb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddusb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddusb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddusb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddusw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddusw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpaddusw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpaddusw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpalignr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpalignr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpalignr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpalignr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpand_vpor_vpxor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpand_vpor_vpxor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpand_vpor_vpxor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpand_vpor_vpxor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpandn.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpandn.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpandn.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpandn.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpavgb_vpavgw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpavgb_vpavgw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpavgb_vpavgw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpavgb_vpavgw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpblendd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpblendd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpblendd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpblendd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpblendvb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpblendvb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpblendvb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpblendvb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpblendw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpblendw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpblendw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpblendw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpbroadcastb_vpbroadcastw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpbroadcastb_vpbroadcastw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpbroadcastb_vpbroadcastw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpbroadcastb_vpbroadcastw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpbroadcastd_vpbroadcastq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpbroadcastd_vpbroadcastq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpbroadcastd_vpbroadcastq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpbroadcastd_vpbroadcastq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpcmpeqb_vpcmpeqw_vpcmpeqd_vpcmpeqq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpcmpeqb_vpcmpeqw_vpcmpeqd_vpcmpeqq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpcmpeqb_vpcmpeqw_vpcmpeqd_vpcmpeqq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpcmpeqb_vpcmpeqw_vpcmpeqd_vpcmpeqq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpcmpgtb_vpcmpgtw_vpcmpgtd_vpcmpgtq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpcmpgtb_vpcmpgtw_vpcmpgtd_vpcmpgtq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpcmpgtb_vpcmpgtw_vpcmpgtd_vpcmpgtq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpcmpgtb_vpcmpgtw_vpcmpgtd_vpcmpgtq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vperm2i128.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vperm2i128.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vperm2i128.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vperm2i128.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpermd_vpermq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpermd_vpermq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpermd_vpermq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpermd_vpermq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpermpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpermpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpermpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpermpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpermps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpermps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpermps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpermps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpgatherdd_vpgatherdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpgatherdd_vpgatherdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpgatherdd_vpgatherdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpgatherdd_vpgatherdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpgatherqd_vpgatherqq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpgatherqd_vpgatherqq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpgatherqd_vpgatherqq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpgatherqd_vpgatherqq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphaddsw_vphsubsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphaddsw_vphsubsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphaddsw_vphsubsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphaddsw_vphsubsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphaddw_vphaddd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphaddw_vphaddd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphaddw_vphaddd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphaddw_vphaddd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphminposuw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphminposuw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphminposuw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphminposuw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphsubw_vphsubd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphsubw_vphsubd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vphsubw_vphsubd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vphsubw_vphsubd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaddubsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaddubsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaddubsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaddubsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaddwd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaddwd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaddwd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaddwd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaskmovd_vpmaskmovq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaskmovd_vpmaskmovq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaskmovd_vpmaskmovq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaskmovd_vpmaskmovq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaxsb_vpmaxsw_vpmaxsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaxsb_vpmaxsw_vpmaxsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaxsb_vpmaxsw_vpmaxsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaxsb_vpmaxsw_vpmaxsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaxub_vpmaxuw_vpmaxud.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaxub_vpmaxuw_vpmaxud.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmaxub_vpmaxuw_vpmaxud.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmaxub_vpmaxuw_vpmaxud.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpminsb_vpminsw_vpminsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpminsb_vpminsw_vpminsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpminsb_vpminsw_vpminsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpminsb_vpminsw_vpminsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpminub_vpminuw_vpminud.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpminub_vpminuw_vpminud.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpminub_vpminuw_vpminud.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpminub_vpminuw_vpminud.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovmskb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovmskb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovmskb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovmskb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovsx_variants.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovsx_variants.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovsx_variants.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovsx_variants.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovsxbw_vpmovsxbd_vpmovsxbq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovsxbw_vpmovsxbd_vpmovsxbq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovsxbw_vpmovsxbd_vpmovsxbq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovsxbw_vpmovsxbd_vpmovsxbq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovzxbw_vpmovzxbd_vpmovzxbq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovzxbw_vpmovzxbd_vpmovzxbq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovzxbw_vpmovzxbd_vpmovzxbq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovzxbw_vpmovzxbd_vpmovzxbq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovzxwd_vpmovzxwq_vpmovzxdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovzxwd_vpmovzxwq_vpmovzxdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmovzxwd_vpmovzxwq_vpmovzxdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmovzxwd_vpmovzxwq_vpmovzxdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmuldq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmuldq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmuldq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmuldq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmulhrsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmulhrsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmulhrsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmulhrsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmulhw_vpmulhuw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmulhw_vpmulhuw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmulhw_vpmulhuw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmulhw_vpmulhuw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmullw_vpmulld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmullw_vpmulld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmullw_vpmulld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmullw_vpmulld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmuludq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmuludq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpmuludq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpmuludq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsadbw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsadbw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsadbw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsadbw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshufb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshufb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshufb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshufb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshufd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshufd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshufd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshufd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshufhw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshufhw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshufhw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshufhw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshuflw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshuflw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpshuflw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpshuflw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsignb_vpsignw_vpsignd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsignb_vpsignw_vpsignd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsignb_vpsignw_vpsignd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsignb_vpsignw_vpsignd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpslldq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpslldq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpslldq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpslldq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsllvd_vpsllvq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsllvd_vpsllvq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsllvd_vpsllvq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsllvd_vpsllvq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsllw_vpslld_vpsllq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsllw_vpslld_vpsllq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsllw_vpslld_vpsllq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsllw_vpslld_vpsllq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsravd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsravd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsravd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsravd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsraw_vpsrad.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsraw_vpsrad.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsraw_vpsrad.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsraw_vpsrad.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsrldq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsrldq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsrldq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsrldq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsrlvd_vpsrlvq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsrlvd_vpsrlvq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsrlvd_vpsrlvq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsrlvd_vpsrlvq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsrlw_vpsrld_vpsrlq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsrlw_vpsrld_vpsrlq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsrlw_vpsrld_vpsrlq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsrlw_vpsrld_vpsrlq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubb_vpsubw_vpsubd_vpsubq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubb_vpsubw_vpsubd_vpsubq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubb_vpsubw_vpsubd_vpsubq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubb_vpsubw_vpsubd_vpsubq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubsb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubsb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubsb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubsb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubusb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubusb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubusb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubusb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubusw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubusw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpsubusw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpsubusw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vptest.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vptest.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vptest.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vptest.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpunpckhbw_vpunpckhwd_vpunpckhdq_vpunpckhqdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpunpckhbw_vpunpckhwd_vpunpckhdq_vpunpckhqdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpunpckhbw_vpunpckhwd_vpunpckhdq_vpunpckhqdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpunpckhbw_vpunpckhwd_vpunpckhdq_vpunpckhqdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpunpcklbw_vpunpcklwd_vpunpckldq_vpunpcklqdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpunpcklbw_vpunpcklwd_vpunpckldq_vpunpcklqdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx2/vpunpcklbw_vpunpcklwd_vpunpckldq_vpunpcklqdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx2/vpunpcklbw_vpunpcklwd_vpunpckldq_vpunpcklqdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kadd_mask.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kadd_mask.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kadd_mask.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kadd_mask.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kand_kor_kxor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kand_kor_kxor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kand_kor_kxor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kand_kor_kxor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kandn_knot_mask.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kandn_knot_mask.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kandn_knot_mask.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kandn_knot_mask.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kmov.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kmov.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/kmov.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/kmov.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/ktest_kunpck_kshift.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/ktest_kunpck_kshift.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/ktest_kunpck_kshift.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/ktest_kunpck_kshift.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vaddph_vsubph_vmulph_vdivph.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vaddph_vsubph_vmulph_vdivph.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vaddph_vsubph_vmulph_vdivph.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vaddph_vsubph_vmulph_vdivph.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vaddps_zmm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vaddps_zmm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vaddps_zmm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vaddps_zmm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/valign_vprol_vpror_vpternlog.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/valign_vprol_vpror_vpternlog.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/valign_vprol_vpror_vpternlog.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/valign_vprol_vpror_vpternlog.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vcompress_vexpand.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vcompress_vexpand.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vcompress_vexpand.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vcompress_vexpand.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vdbpsadbw_vplzcnt_vpshld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vdbpsadbw_vplzcnt_vpshld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vdbpsadbw_vplzcnt_vpshld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vdbpsadbw_vplzcnt_vpshld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vdivps_zmm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vdivps_zmm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vdivps_zmm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vdivps_zmm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vmovaps_zmm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vmovaps_zmm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vmovaps_zmm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vmovaps_zmm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vmovups_zmm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vmovups_zmm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vmovups_zmm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vmovups_zmm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vmulps_zmm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vmulps_zmm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vmulps_zmm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vmulps_zmm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vsubps_zmm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vsubps_zmm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512/vsubps_zmm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512/vsubps_zmm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/avx512_mask_ops.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512_mask_ops.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/avx512_mask_ops.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/avx512_mask_ops.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132pd_vfmadd213pd_vfmadd231pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132pd_vfmadd213pd_vfmadd231pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132pd_vfmadd213pd_vfmadd231pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132pd_vfmadd213pd_vfmadd231pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132ps_vfmadd213ps_vfmadd231ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132ps_vfmadd213ps_vfmadd231ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132ps_vfmadd213ps_vfmadd231ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132ps_vfmadd213ps_vfmadd231ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132sd_vfmadd213sd_vfmadd231sd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132sd_vfmadd213sd_vfmadd231sd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132sd_vfmadd213sd_vfmadd231sd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132sd_vfmadd213sd_vfmadd231sd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132ss_vfmadd213ss_vfmadd231ss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132ss_vfmadd213ss_vfmadd231ss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmadd132ss_vfmadd213ss_vfmadd231ss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmadd132ss_vfmadd213ss_vfmadd231ss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmaddsub_vfmsubadd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmaddsub_vfmsubadd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmaddsub_vfmsubadd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmaddsub_vfmsubadd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmsub_variants.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmsub_variants.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfmsub_variants.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfmsub_variants.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfnmadd_variants.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfnmadd_variants.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfnmadd_variants.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfnmadd_variants.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfnmsub_variants.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfnmsub_variants.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/fma/vfnmsub_variants.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/fma/vfnmsub_variants.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/MMX_TEST_STATUS.md b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/MMX_TEST_STATUS.md similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/MMX_TEST_STATUS.md rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/MMX_TEST_STATUS.md diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/emms.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/emms.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/emms.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/emms.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/movq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/movq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/movq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/movq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/packsswb_packssdw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/packsswb_packssdw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/packsswb_packssdw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/packsswb_packssdw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/packuswb_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/packuswb_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/packuswb_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/packuswb_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/paddb_paddw_paddd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/paddb_paddw_paddd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/paddb_paddw_paddd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/paddb_paddw_paddd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/paddsb_paddsw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/paddsb_paddsw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/paddsb_paddsw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/paddsb_paddsw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/paddusb_paddusw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/paddusb_paddusw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/paddusb_paddusw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/paddusb_paddusw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pand_por_pxor.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pand_por_pxor.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pand_por_pxor.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pand_por_pxor.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pandn_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pandn_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pandn_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pandn_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pavgb_pavgw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pavgb_pavgw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pavgb_pavgw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pavgb_pavgw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pcmpeqb_pcmpeqw_pcmpeqd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pcmpeqb_pcmpeqw_pcmpeqd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pcmpeqb_pcmpeqw_pcmpeqd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pcmpeqb_pcmpeqw_pcmpeqd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pcmpgtb_pcmpgtw_pcmpgtd_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pcmpgtb_pcmpgtw_pcmpgtd_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pcmpgtb_pcmpgtw_pcmpgtd_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pcmpgtb_pcmpgtw_pcmpgtd_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pextrw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pextrw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pextrw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pextrw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pinsrw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pinsrw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pinsrw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pinsrw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmaddwd_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmaddwd_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmaddwd_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmaddwd_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmaxsw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmaxsw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmaxsw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmaxsw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmaxub_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmaxub_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmaxub_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmaxub_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pminsw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pminsw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pminsw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pminsw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pminub_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pminub_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pminub_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pminub_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmulhuw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmulhuw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmulhuw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmulhuw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmulhw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmulhw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmulhw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmulhw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmullw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmullw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pmullw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pmullw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psadbw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psadbw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psadbw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psadbw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pshufw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pshufw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/pshufw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/pshufw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psllw_pslld_psllq_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psllw_pslld_psllq_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psllw_pslld_psllq_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psllw_pslld_psllq_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psraw_psrad_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psraw_psrad_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psraw_psrad_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psraw_psrad_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psrlw_psrld_psrlq_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psrlw_psrld_psrlq_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psrlw_psrld_psrlq_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psrlw_psrld_psrlq_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psubb_psubw_psubd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psubb_psubw_psubd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psubb_psubw_psubd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psubb_psubw_psubd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psubsb_psubsw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psubsb_psubsw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psubsb_psubsw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psubsb_psubsw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psubusb_psubusw_mmx.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psubusb_psubusw_mmx.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/psubusb_psubusw_mmx.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/psubusb_psubusw_mmx.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/punpckhbw_punpckhwd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/punpckhbw_punpckhwd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/punpckhbw_punpckhwd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/punpckhbw_punpckhwd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/punpcklbw_punpcklwd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/punpcklbw_punpcklwd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mmx/punpcklbw_punpcklwd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mmx/punpcklbw_punpcklwd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/packing_ops.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/packing_ops.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/packing_ops.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/packing_ops.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/addps_addpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/addps_addpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/addps_addpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/addps_addpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/addss_addsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/addss_addsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/addss_addsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/addss_addsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/addsubps_addsubpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/addsubps_addsubpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/addsubps_addsubpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/addsubps_addsubpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/aesdec_aesdeclast.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/aesdec_aesdeclast.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/aesdec_aesdeclast.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/aesdec_aesdeclast.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/aesenc_aesenclast.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/aesenc_aesenclast.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/aesenc_aesenclast.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/aesenc_aesenclast.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/aesimc_aeskeygenassist.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/aesimc_aeskeygenassist.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/aesimc_aeskeygenassist.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/aesimc_aeskeygenassist.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/andnps_andnpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/andnps_andnpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/andnps_andnpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/andnps_andnpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/andps_andpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/andps_andpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/andps_andpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/andps_andpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/blendps_blendpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/blendps_blendpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/blendps_blendpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/blendps_blendpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/blendvps_blendvpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/blendvps_blendvpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/blendvps_blendvpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/blendvps_blendvpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/clflushopt.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/clflushopt.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/clflushopt.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/clflushopt.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmppd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmppd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmppd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmppd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmpps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmpps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmpps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmpps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmpsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmpsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmpsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmpsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmpss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmpss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cmpss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cmpss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/comiss_comisd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/comiss_comisd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/comiss_comisd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/comiss_comisd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/crc32.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/crc32.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/crc32.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/crc32.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtdq2pd_cvtpd2dq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtdq2pd_cvtpd2dq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtdq2pd_cvtpd2dq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtdq2pd_cvtpd2dq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtdq2ps_cvtps2dq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtdq2ps_cvtps2dq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtdq2ps_cvtps2dq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtdq2ps_cvtps2dq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtpd2ps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtpd2ps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtpd2ps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtpd2ps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtpi2pd_cvtpd2pi.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtpi2pd_cvtpd2pi.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtpi2pd_cvtpd2pi.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtpi2pd_cvtpd2pi.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtpi2ps_cvtps2pi.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtpi2ps_cvtps2pi.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtpi2ps_cvtps2pi.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtpi2ps_cvtps2pi.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtps2pd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtps2pd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtps2pd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtps2pd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsd2si.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsd2si.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsd2si.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsd2si.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsd2ss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsd2ss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsd2ss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsd2ss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsi2sd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsi2sd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsi2sd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsi2sd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsi2ss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsi2ss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtsi2ss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtsi2ss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtss2sd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtss2sd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtss2sd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtss2sd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtss2si.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtss2si.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvtss2si.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvtss2si.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvttps2dq_cvttpd2dq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvttps2dq_cvttpd2dq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvttps2dq_cvttpd2dq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvttps2dq_cvttpd2dq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvttps2pi_cvttpd2pi.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvttps2pi_cvttpd2pi.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvttps2pi_cvttpd2pi.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvttps2pi_cvttpd2pi.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvttsd2si_cvttss2si.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvttsd2si_cvttss2si.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/cvttsd2si_cvttss2si.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/cvttsd2si_cvttss2si.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/divps_divpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/divps_divpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/divps_divpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/divps_divpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/divss_divsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/divss_divsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/divss_divsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/divss_divsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/dppd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/dppd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/dppd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/dppd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/dpps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/dpps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/dpps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/dpps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/extractps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/extractps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/extractps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/extractps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/fisttp_sse.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/fisttp_sse.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/fisttp_sse.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/fisttp_sse.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/haddps_haddpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/haddps_haddpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/haddps_haddpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/haddps_haddpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/hsubps_hsubpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/hsubps_hsubpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/hsubps_hsubpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/hsubps_hsubpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/insertps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/insertps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/insertps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/insertps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/lddqu.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/lddqu.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/lddqu.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/lddqu.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/ldmxcsr_stmxcsr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/ldmxcsr_stmxcsr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/ldmxcsr_stmxcsr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/ldmxcsr_stmxcsr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/lfence_mfence_sfence.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/lfence_mfence_sfence.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/lfence_mfence_sfence.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/lfence_mfence_sfence.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maskmovdqu.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maskmovdqu.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maskmovdqu.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maskmovdqu.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maskmovq_emms.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maskmovq_emms.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maskmovq_emms.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maskmovq_emms.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maxps_maxpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maxps_maxpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maxps_maxpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maxps_maxpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maxss_maxsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maxss_maxsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/maxss_maxsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/maxss_maxsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/minps_minpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/minps_minpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/minps_minpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/minps_minpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/minss_minsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/minss_minsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/minss_minsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/minss_minsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/monitor_mwait_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/monitor_mwait_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/monitor_mwait_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/monitor_mwait_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movapd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movapd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movapd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movapd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movaps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movaps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movaps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movaps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movd_movq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movd_movq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movd_movq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movd_movq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movddup.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movddup.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movddup.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movddup.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movddup_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movddup_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movddup_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movddup_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movdqa.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movdqa.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movdqa.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movdqa.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movdqu.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movdqu.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movdqu.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movdqu.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movhlps_movlhps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movhlps_movlhps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movhlps_movlhps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movhlps_movlhps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movhps_movlps_movhpd_movlpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movhps_movlps_movhpd_movlpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movhps_movlps_movhpd_movlpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movhps_movlps_movhpd_movlpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movmskps_movmskpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movmskps_movmskpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movmskps_movmskpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movmskps_movmskpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntdqa.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntdqa.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntdqa.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntdqa.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movnti.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movnti.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movnti.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movnti.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntps_movntpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntps_movntpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntps_movntpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntps_movntpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntss_movntsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntss_movntsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movntss_movntsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movntss_movntsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movq_movq2dq_movdq2q.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movq_movq2dq_movdq2q.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movq_movq2dq_movdq2q.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movq_movq2dq_movdq2q.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movshdup_movsldup.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movshdup_movsldup.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movshdup_movsldup.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movshdup_movsldup.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movsldup_movshdup_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movsldup_movshdup_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movsldup_movshdup_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movsldup_movshdup_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movss_movsd_scalar.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movss_movsd_scalar.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movss_movsd_scalar.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movss_movsd_scalar.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movupd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movupd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movupd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movupd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movups.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movups.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/movups.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/movups.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mpsadbw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mpsadbw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mpsadbw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mpsadbw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mpsadbw_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mpsadbw_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mpsadbw_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mpsadbw_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mulps_mulpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mulps_mulpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mulps_mulpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mulps_mulpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mulss_mulsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mulss_mulsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/mulss_mulsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/mulss_mulsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/orps_orpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/orps_orpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/orps_orpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/orps_orpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pabsb_pabsw_pabsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pabsb_pabsw_pabsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pabsb_pabsw_pabsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pabsb_pabsw_pabsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/packsswb_packssdw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/packsswb_packssdw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/packsswb_packssdw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/packsswb_packssdw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/packusdw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/packusdw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/packusdw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/packusdw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/packuswb_packusdw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/packuswb_packusdw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/packuswb_packusdw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/packuswb_packusdw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/paddb_paddw_paddd_paddq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/paddb_paddw_paddd_paddq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/paddb_paddw_paddd_paddq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/paddb_paddw_paddd_paddq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/paddsb_paddsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/paddsb_paddsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/paddsb_paddsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/paddsb_paddsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/paddusb_paddusw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/paddusb_paddusw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/paddusb_paddusw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/paddusb_paddusw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/palignr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/palignr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/palignr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/palignr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pand_por_pxor_pandn.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pand_por_pxor_pandn.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pand_por_pxor_pandn.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pand_por_pxor_pandn.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pause.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pause.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pause.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pause.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pavgb_pavgw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pavgb_pavgw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pavgb_pavgw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pavgb_pavgw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pblendvb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pblendvb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pblendvb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pblendvb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pblendw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pblendw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pblendw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pblendw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pclmulqdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pclmulqdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pclmulqdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pclmulqdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pclmulqdq_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pclmulqdq_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pclmulqdq_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pclmulqdq_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpeqb_pcmpeqw_pcmpeqd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpeqb_pcmpeqw_pcmpeqd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpeqb_pcmpeqw_pcmpeqd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpeqb_pcmpeqw_pcmpeqd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpeqq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpeqq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpeqq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpeqq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpestri.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpestri.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpestri.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpestri.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpestrm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpestrm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpestrm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpestrm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpgtb_pcmpgtw_pcmpgtd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpgtb_pcmpgtw_pcmpgtd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpgtb_pcmpgtw_pcmpgtd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpgtb_pcmpgtw_pcmpgtd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpgtq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpgtq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpgtq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpgtq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpistri.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpistri.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpistri.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpistri.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpistrm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpistrm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pcmpistrm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pcmpistrm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pextrb_pextrd_pextrq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pextrb_pextrd_pextrq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pextrb_pextrd_pextrq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pextrb_pextrd_pextrq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pextrw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pextrw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pextrw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pextrw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phaddsw_phsubsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phaddsw_phsubsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phaddsw_phsubsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phaddsw_phsubsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phaddw_phaddd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phaddw_phaddd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phaddw_phaddd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phaddw_phaddd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phminposuw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phminposuw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phminposuw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phminposuw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phminposuw_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phminposuw_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phminposuw_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phminposuw_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phsubw_phsubd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phsubw_phsubd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/phsubw_phsubd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/phsubw_phsubd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pinsrb_pinsrd_pinsrq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pinsrb_pinsrd_pinsrq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pinsrb_pinsrd_pinsrq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pinsrb_pinsrd_pinsrq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pinsrw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pinsrw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pinsrw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pinsrw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaddubsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaddubsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaddubsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaddubsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaddubsw_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaddubsw_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaddubsw_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaddubsw_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaddwd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaddwd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaddwd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaddwd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxsb_pmaxsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxsb_pmaxsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxsb_pmaxsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxsb_pmaxsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxsb_pmaxsw_pmaxsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxsb_pmaxsw_pmaxsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxsb_pmaxsw_pmaxsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxsb_pmaxsw_pmaxsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxub_pmaxuw_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxub_pmaxuw_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxub_pmaxuw_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxub_pmaxuw_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxub_pmaxuw_pmaxud.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxub_pmaxuw_pmaxud.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxub_pmaxuw_pmaxud.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxub_pmaxuw_pmaxud.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxuw_pmaxud.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxuw_pmaxud.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmaxuw_pmaxud.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmaxuw_pmaxud.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminsb_pminsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminsb_pminsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminsb_pminsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminsb_pminsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminsb_pminsw_pminsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminsb_pminsw_pminsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminsb_pminsw_pminsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminsb_pminsw_pminsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminub_pminuw_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminub_pminuw_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminub_pminuw_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminub_pminuw_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminub_pminuw_pminud.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminub_pminuw_pminud.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminub_pminuw_pminud.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminub_pminuw_pminud.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminuw_pminud.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminuw_pminud.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pminuw_pminud.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pminuw_pminud.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovmskb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovmskb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovmskb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovmskb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovsxbw_pmovsxbd_pmovsxbq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovsxbw_pmovsxbd_pmovsxbq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovsxbw_pmovsxbd_pmovsxbq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovsxbw_pmovsxbd_pmovsxbq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovsxwd_pmovsxwq_pmovsxdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovsxwd_pmovsxwq_pmovsxdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovsxwd_pmovsxwq_pmovsxdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovsxwd_pmovsxwq_pmovsxdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovzxbw_pmovzxbd_pmovzxbq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovzxbw_pmovzxbd_pmovzxbq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovzxbw_pmovzxbd_pmovzxbq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovzxbw_pmovzxbd_pmovzxbq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovzxwd_pmovzxwq_pmovzxdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovzxwd_pmovzxwq_pmovzxdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmovzxwd_pmovzxwq_pmovzxdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmovzxwd_pmovzxwq_pmovzxdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmuldq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmuldq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmuldq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmuldq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulhrsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulhrsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulhrsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulhrsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulhuw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulhuw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulhuw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulhuw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulhw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulhw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulhw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulhw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmulld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmulld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmullq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmullq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmullq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmullq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmullw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmullw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmullw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmullw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmuludq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmuludq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pmuludq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pmuludq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/prefetchnta_prefetcht0_prefetcht1_prefetcht2.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/prefetchnta_prefetcht0_prefetcht1_prefetcht2.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/prefetchnta_prefetcht0_prefetcht1_prefetcht2.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/prefetchnta_prefetcht0_prefetcht1_prefetcht2.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psadbw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psadbw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psadbw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psadbw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufb.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufb.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufb.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufb.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufhw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufhw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufhw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufhw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshuflw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshuflw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshuflw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshuflw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pshufw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pshufw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psignb_psignw_psignd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psignb_psignw_psignd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psignb_psignw_psignd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psignb_psignw_psignd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pslldq_psrldq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pslldq_psrldq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/pslldq_psrldq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/pslldq_psrldq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psllw_pslld_psllq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psllw_pslld_psllq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psllw_pslld_psllq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psllw_pslld_psllq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psraw_psrad.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psraw_psrad.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psraw_psrad.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psraw_psrad.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psrlw_psrld_psrlq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psrlw_psrld_psrlq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psrlw_psrld_psrlq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psrlw_psrld_psrlq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psubb_psubw_psubd_psubq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psubb_psubw_psubd_psubq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psubb_psubw_psubd_psubq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psubb_psubw_psubd_psubq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psubsb_psubsw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psubsb_psubsw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psubsb_psubsw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psubsb_psubsw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psubusb_psubusw.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psubusb_psubusw.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/psubusb_psubusw.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/psubusb_psubusw.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/ptest.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/ptest.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/ptest.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/ptest.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/punpckhbw_punpckhwd_punpckhdq_punpckhqdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/punpckhbw_punpckhwd_punpckhdq_punpckhqdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/punpckhbw_punpckhwd_punpckhdq_punpckhqdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/punpckhbw_punpckhwd_punpckhdq_punpckhqdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/punpcklbw_punpcklwd_punpckldq_punpcklqdq.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/punpcklbw_punpcklwd_punpckldq_punpcklqdq.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/punpcklbw_punpcklwd_punpckldq_punpcklqdq.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/punpcklbw_punpcklwd_punpckldq_punpcklqdq.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rcpps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rcpps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rcpps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rcpps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rcpss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rcpss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rcpss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rcpss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/roundps_roundpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/roundps_roundpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/roundps_roundpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/roundps_roundpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/roundss_roundsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/roundss_roundsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/roundss_roundsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/roundss_roundsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rsqrtps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rsqrtps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rsqrtps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rsqrtps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rsqrtss.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rsqrtss.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/rsqrtss.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/rsqrtss.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/shufpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/shufpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/shufpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/shufpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/shufps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/shufps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/shufps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/shufps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/sqrtps_sqrtpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/sqrtps_sqrtpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/sqrtps_sqrtpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/sqrtps_sqrtpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/sqrtss_sqrtsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/sqrtss_sqrtsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/sqrtss_sqrtsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/sqrtss_sqrtsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/subps_subpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/subps_subpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/subps_subpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/subps_subpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/subss_subsd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/subss_subsd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/subss_subsd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/subss_subsd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/ucomiss_ucomisd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/ucomiss_ucomisd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/ucomiss_ucomisd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/ucomiss_ucomisd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpckhpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpckhpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpckhpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpckhpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpckhps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpckhps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpckhps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpckhps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpcklpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpcklpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpcklpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpcklpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpcklps.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpcklps.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/unpcklps.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/unpcklps.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/simd/sse/xorps_xorpd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/xorps_xorpd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/simd/sse/xorps_xorpd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/simd/sse/xorps_xorpd.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/enter_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/enter_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/enter_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/enter_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/leave_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/leave_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/leave_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/leave_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pop/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pop/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pop/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pop/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pop/pop.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pop/pop.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pop/pop.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pop/pop.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pop_mem.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pop_mem.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pop_mem.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pop_mem.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push/push.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push/push.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push/push.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push/push.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push_imm.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push_imm.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push_imm.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push_imm.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push_mem.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push_mem.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/push_mem.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/push_mem.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pusha_popa.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pusha_popa.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pusha_popa.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pusha_popa.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pushf_popf_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pushf_popf_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/pushf_popf_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/pushf_popf_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/rsp_operations.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/rsp_operations.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/rsp_operations.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/rsp_operations.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/stack_operations/stack_alignment.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/stack_alignment.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/stack_operations/stack_alignment.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/stack_operations/stack_alignment.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/mod.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/mod.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/mod.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/mod.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rcl.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rcl.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rcl.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rcl.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rcr.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rcr.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rcr.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rcr.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rol.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rol.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rol.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rol.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rol_ror_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rol_ror_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/rol_ror_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/rol_ror_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/ror.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/ror.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/ror.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/ror.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/shld.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/shld.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/shld.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/shld.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/shld_shrd_extended.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/shld_shrd_extended.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/shld_shrd_extended.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/shld_shrd_extended.rs diff --git a/crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/shrd.rs b/crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/shrd.rs similarity index 100% rename from crates/libmwemu/src/tests/rax_x86_tests/trash/rotate/shrd.rs rename to crates/libmwemu/src/tests/isa/x86/rax_x86_tests/trash/rotate/shrd.rs diff --git a/crates/libmwemu/src/tests/shl2p8_bug_trigger.rs b/crates/libmwemu/src/tests/isa/x86/shl2p8_bug_trigger.rs similarity index 100% rename from crates/libmwemu/src/tests/shl2p8_bug_trigger.rs rename to crates/libmwemu/src/tests/isa/x86/shl2p8_bug_trigger.rs diff --git a/crates/libmwemu/src/tests/shl2p8_edge_cases_should_not_panic.rs b/crates/libmwemu/src/tests/isa/x86/shl2p8_edge_cases_should_not_panic.rs similarity index 100% rename from crates/libmwemu/src/tests/shl2p8_edge_cases_should_not_panic.rs rename to crates/libmwemu/src/tests/isa/x86/shl2p8_edge_cases_should_not_panic.rs diff --git a/crates/libmwemu/src/tests/sse_avx_tests.rs b/crates/libmwemu/src/tests/isa/x86/sse_avx_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/sse_avx_tests.rs rename to crates/libmwemu/src/tests/isa/x86/sse_avx_tests.rs diff --git a/crates/libmwemu/src/tests/stack32_test.rs b/crates/libmwemu/src/tests/isa/x86/stack32_test.rs similarity index 100% rename from crates/libmwemu/src/tests/stack32_test.rs rename to crates/libmwemu/src/tests/isa/x86/stack32_test.rs diff --git a/crates/libmwemu/src/tests/stress_sar2p_all.rs b/crates/libmwemu/src/tests/isa/x86/stress_sar2p_all.rs similarity index 100% rename from crates/libmwemu/src/tests/stress_sar2p_all.rs rename to crates/libmwemu/src/tests/isa/x86/stress_sar2p_all.rs diff --git a/crates/libmwemu/src/tests/stress_shl1p_all.rs b/crates/libmwemu/src/tests/isa/x86/stress_shl1p_all.rs similarity index 100% rename from crates/libmwemu/src/tests/stress_shl1p_all.rs rename to crates/libmwemu/src/tests/isa/x86/stress_shl1p_all.rs diff --git a/crates/libmwemu/src/tests/stress_shl2p_all.rs b/crates/libmwemu/src/tests/isa/x86/stress_shl2p_all.rs similarity index 100% rename from crates/libmwemu/src/tests/stress_shl2p_all.rs rename to crates/libmwemu/src/tests/isa/x86/stress_shl2p_all.rs diff --git a/crates/libmwemu/src/tests/stress_shl2p_trigger.rs b/crates/libmwemu/src/tests/isa/x86/stress_shl2p_trigger.rs similarity index 100% rename from crates/libmwemu/src/tests/stress_shl2p_trigger.rs rename to crates/libmwemu/src/tests/isa/x86/stress_shl2p_trigger.rs diff --git a/crates/libmwemu/src/tests/stress_shr2p_all.rs b/crates/libmwemu/src/tests/isa/x86/stress_shr2p_all.rs similarity index 100% rename from crates/libmwemu/src/tests/stress_shr2p_all.rs rename to crates/libmwemu/src/tests/isa/x86/stress_shr2p_all.rs diff --git a/crates/libmwemu/src/tests/string_ops_tests.rs b/crates/libmwemu/src/tests/isa/x86/string_ops_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/string_ops_tests.rs rename to crates/libmwemu/src/tests/isa/x86/string_ops_tests.rs diff --git a/crates/libmwemu/src/tests/elf64_aarch64_basic.rs b/crates/libmwemu/src/tests/loaders/elf64/elf64_aarch64_basic.rs similarity index 91% rename from crates/libmwemu/src/tests/elf64_aarch64_basic.rs rename to crates/libmwemu/src/tests/loaders/elf64/elf64_aarch64_basic.rs index d3aa9c94..bfe0746a 100644 --- a/crates/libmwemu/src/tests/elf64_aarch64_basic.rs +++ b/crates/libmwemu/src/tests/loaders/elf64/elf64_aarch64_basic.rs @@ -8,7 +8,7 @@ use crate::*; /// mov x8, #93 /// svc #0 /// Compiled with: zig cc -target aarch64-linux -static -nostdlib -Wl,--strip-all -const ELF64_AARCH64_ADD: &[u8] = include_bytes!("fixtures/elf64_aarch64_add.bin"); +const ELF64_AARCH64_ADD: &[u8] = include_bytes!("../../fixtures/elf64_aarch64_add.bin"); #[test] fn elf64_aarch64_load_and_execute() { diff --git a/crates/libmwemu/src/tests/elf64lin_cpu_arithmetics.rs b/crates/libmwemu/src/tests/loaders/elf64/elf64lin_cpu_arithmetics.rs similarity index 100% rename from crates/libmwemu/src/tests/elf64lin_cpu_arithmetics.rs rename to crates/libmwemu/src/tests/loaders/elf64/elf64lin_cpu_arithmetics.rs diff --git a/crates/libmwemu/src/tests/elf64lin_flags.rs b/crates/libmwemu/src/tests/loaders/elf64/elf64lin_flags.rs similarity index 100% rename from crates/libmwemu/src/tests/elf64lin_flags.rs rename to crates/libmwemu/src/tests/loaders/elf64/elf64lin_flags.rs diff --git a/crates/libmwemu/src/tests/elf64lin_fpu.rs b/crates/libmwemu/src/tests/loaders/elf64/elf64lin_fpu.rs similarity index 100% rename from crates/libmwemu/src/tests/elf64lin_fpu.rs rename to crates/libmwemu/src/tests/loaders/elf64/elf64lin_fpu.rs diff --git a/crates/libmwemu/src/tests/elf64lin_static_helloworld.rs b/crates/libmwemu/src/tests/loaders/elf64/elf64lin_static_helloworld.rs similarity index 100% rename from crates/libmwemu/src/tests/elf64lin_static_helloworld.rs rename to crates/libmwemu/src/tests/loaders/elf64/elf64lin_static_helloworld.rs diff --git a/crates/libmwemu/src/tests/elf64lin_syscall64.rs b/crates/libmwemu/src/tests/loaders/elf64/elf64lin_syscall64.rs similarity index 100% rename from crates/libmwemu/src/tests/elf64lin_syscall64.rs rename to crates/libmwemu/src/tests/loaders/elf64/elf64lin_syscall64.rs diff --git a/crates/libmwemu/src/tests/loaders/elf64/mod.rs b/crates/libmwemu/src/tests/loaders/elf64/mod.rs new file mode 100644 index 00000000..6486157b --- /dev/null +++ b/crates/libmwemu/src/tests/loaders/elf64/mod.rs @@ -0,0 +1,6 @@ +mod elf64_aarch64_basic; +mod elf64lin_cpu_arithmetics; +mod elf64lin_flags; +mod elf64lin_fpu; +mod elf64lin_static_helloworld; +mod elf64lin_syscall64; diff --git a/crates/libmwemu/src/tests/loaders/hello_world.rs b/crates/libmwemu/src/tests/loaders/hello_world.rs new file mode 100644 index 00000000..72f92935 --- /dev/null +++ b/crates/libmwemu/src/tests/loaders/hello_world.rs @@ -0,0 +1,221 @@ +//! Hello-world parity tests across all (os, arch) combos we care about. +//! +//! These exist to sniff out loader / ISA / OS-surface gaps. Each test loads a +//! tiny C `printf("hello world")` binary built by `examples/hello-world/Makefile`, +//! takes a bounded number of steps, and asserts the loader picked the right +//! arch. Tests for combos the emulator does not yet support are `#[ignore]`d +//! with a comment pointing at the gap so future work can flip them on. +//! +//! Source: examples/hello-world/main.c +//! Build: make -C examples/hello-world all (then move into tests/fixtures/) + +use crate::tests::helpers; +use crate::*; + +const HELLO_LINUX_X86: &[u8] = include_bytes!("../fixtures/hello_linux_x86"); +const HELLO_LINUX_X64: &[u8] = include_bytes!("../fixtures/hello_linux_x64"); +const HELLO_LINUX_ARM64: &[u8] = include_bytes!("../fixtures/hello_linux_arm64"); +const HELLO_MAC_ARM64: &[u8] = include_bytes!("../fixtures/hello_mac_arm64"); +const HELLO_MAC_X64: &[u8] = include_bytes!("../fixtures/hello_mac_x64"); +const HELLO_WIN_X86: &[u8] = include_bytes!("../fixtures/hello_win_x86.exe"); +const HELLO_WIN_X64: &[u8] = include_bytes!("../fixtures/hello_win_x64.exe"); +const HELLO_WIN_ARM64: &[u8] = include_bytes!("../fixtures/hello_win_arm64.exe"); + +const MAX_STEPS: usize = 64; + +fn write_tmp(name: &str, bytes: &[u8]) -> std::path::PathBuf { + let p = std::env::temp_dir().join(name); + std::fs::write(&p, bytes).unwrap(); + p +} + +/// PARITY GAP: panics in crates/libmwemu/src/maps/mem64.rs:576 with +/// `FAILED to write without permission: addr: 0x0` early in dynamic +/// ELF32 startup. Un-ignore once ELF32 hello-world steps without +/// dereferencing a null pointer. +#[test] +#[ignore = "parity gap: mem64.rs:576 null write on dynamic ELF32 startup"] +fn hello_linux_x86() { + helpers::setup(); + let path = write_tmp("mwemu_hello_linux_x86", HELLO_LINUX_X86); + + let mut emu = emu32(); + emu.load_code(path.to_str().unwrap()); + + assert!( + matches!(emu.cfg.arch, crate::arch::Arch::X86), + "expected ELF32 x86 dispatch, got {:?}", + emu.cfg.arch + ); + let entry = emu.regs().rip; + assert!(entry != 0, "entry point should be set"); + + for _ in 0..MAX_STEPS { + if !emu.step() { + break; + } + } +} + +/// PARITY GAP: panics in +/// crates/libmwemu/src/engine/instructions/call.rs:41 with +/// `attempt to subtract with overflow` while stepping a glibc-dynamic +/// `printf("hello world")`. Also logs `elf64.strtab overlappss` from +/// the loader. Un-ignore once dynamic ELF64 x86_64 startup runs cleanly. +#[test] +#[ignore = "parity gap: call.rs:41 sub overflow on dynamic ELF64 x86_64"] +fn hello_linux_x64() { + helpers::setup(); + let path = write_tmp("mwemu_hello_linux_x64", HELLO_LINUX_X64); + + let mut emu = emu64(); + emu.load_code(path.to_str().unwrap()); + + assert!(emu.cfg.arch.is_x64(), "expected ELF64 x86_64 dispatch"); + let entry = emu.regs().rip; + assert!(entry != 0, "entry point should be set"); + + for _ in 0..MAX_STEPS { + if !emu.step() { + break; + } + } +} + +/// PARITY GAP: panics in crates/libmwemu/src/maps/mem64.rs:357 with +/// `FAILED to read without permission: addr: 0x555555554700` early in +/// dynamic ELF64 aarch64 startup. Loader also logs `elf64.strtab overlappss`. +/// Un-ignore once aarch64 dynamic-linker startup maps the right ranges. +#[test] +#[ignore = "parity gap: mem64.rs:357 perm denied on dynamic ELF64 aarch64"] +fn hello_linux_arm64() { + helpers::setup(); + let path = write_tmp("mwemu_hello_linux_arm64", HELLO_LINUX_ARM64); + + let mut emu = emu_aarch64(); + emu.load_code(path.to_str().unwrap()); + + assert!(emu.cfg.arch.is_aarch64(), "expected ELF64 aarch64 dispatch"); + let pc = emu.regs_aarch64().pc; + assert!(pc != 0, "pc should be set by loader"); + + for _ in 0..MAX_STEPS { + if !emu.step() { + break; + } + } +} + +#[test] +fn hello_mac_arm64() { + helpers::setup(); + let path = write_tmp("mwemu_hello_mac_arm64", HELLO_MAC_ARM64); + + let mut emu = emu_aarch64(); + emu.load_code(path.to_str().unwrap()); + + assert!(emu.cfg.arch.is_aarch64(), "expected Mach-O aarch64 dispatch"); + let pc = emu.regs_aarch64().pc; + assert!(pc >= 0x100000000, "entry 0x{:x} should be in __TEXT", pc); + + for _ in 0..MAX_STEPS { + if !emu.step() { + break; + } + } +} + +/// PARITY GAP: there is no `Macho64::is_macho64_x64` branch in +/// crates/libmwemu/src/emu/loaders.rs — only the aarch64 path exists. A +/// Mach-O x86_64 binary currently falls through to the shellcode default and +/// gets garbage-decoded. Un-ignore once an x86_64 Mach-O loader path lands. +#[test] +#[ignore = "loader gap: no Mach-O x86_64 dispatch in load_code"] +fn hello_mac_x64() { + helpers::setup(); + let path = write_tmp("mwemu_hello_mac_x64", HELLO_MAC_X64); + + let mut emu = emu64(); + emu.load_code(path.to_str().unwrap()); + + assert!( + emu.cfg.arch.is_x64(), + "expected Mach-O x86_64 dispatch, got {:?}", + emu.cfg.arch + ); +} + +/// PARITY GAP: panics in crates/libmwemu/src/maps/mod.rs:327 +/// `incorrect memory map name` while loading a mingw-clang built PE32. +/// Un-ignore once PE32 hello-world loads without tripping the maps name check. +#[test] +#[ignore = "parity gap: maps/mod.rs:327 incorrect memory map name on PE32 mingw"] +fn hello_win_x86() { + helpers::setup(); + let path = write_tmp("mwemu_hello_win_x86.exe", HELLO_WIN_X86); + + let mut emu = emu32(); + emu.load_code(path.to_str().unwrap()); + + assert!( + matches!(emu.cfg.arch, crate::arch::Arch::X86), + "expected PE32 x86 dispatch, got {:?}", + emu.cfg.arch + ); + let entry = emu.regs().rip; + assert!(entry != 0, "entry point should be set"); + + for _ in 0..MAX_STEPS { + if !emu.step() { + break; + } + } +} + +/// PARITY GAP: panics in +/// crates/libmwemu/src/loaders/pe/pe64/parser.rs:127 with +/// `pe64 binary not found`. The PE64 loader re-opens the file by name +/// (`File::open(filename)`) inside `PE64::load`, which fails for the +/// temp-file path used by this test even though the path was just written. +/// Un-ignore once the loader works from already-read bytes or resolves paths +/// robustly. +#[test] +#[ignore = "parity gap: pe64 parser.rs:127 re-opens file by name and fails"] +fn hello_win_x64() { + helpers::setup(); + let path = write_tmp("mwemu_hello_win_x64.exe", HELLO_WIN_X64); + + let mut emu = emu64(); + emu.load_code(path.to_str().unwrap()); + + assert!(emu.cfg.arch.is_x64(), "expected PE64 x86_64 dispatch"); + let entry = emu.regs().rip; + assert!(entry != 0, "entry point should be set"); + + for _ in 0..MAX_STEPS { + if !emu.step() { + break; + } + } +} + +/// PARITY GAP: `PE64::is_pe64` does not differentiate by machine type, so an +/// ARM64 PE is currently mis-routed into the x86_64 PE loader and decoded as +/// x86_64. There is no aarch64 PE dispatch path in load_code. Un-ignore once +/// the loader recognizes IMAGE_FILE_MACHINE_ARM64 and routes to an aarch64 +/// PE loader. +#[test] +#[ignore = "loader gap: no PE aarch64 dispatch in load_code"] +fn hello_win_arm64() { + helpers::setup(); + let path = write_tmp("mwemu_hello_win_arm64.exe", HELLO_WIN_ARM64); + + let mut emu = emu_aarch64(); + emu.load_code(path.to_str().unwrap()); + + assert!( + emu.cfg.arch.is_aarch64(), + "expected PE aarch64 dispatch, got {:?}", + emu.cfg.arch + ); +} diff --git a/crates/libmwemu/src/tests/macho64_basic.rs b/crates/libmwemu/src/tests/loaders/macho/macho64_basic.rs similarity index 94% rename from crates/libmwemu/src/tests/macho64_basic.rs rename to crates/libmwemu/src/tests/loaders/macho/macho64_basic.rs index fce7a4bb..0963a9a9 100644 --- a/crates/libmwemu/src/tests/macho64_basic.rs +++ b/crates/libmwemu/src/tests/loaders/macho/macho64_basic.rs @@ -3,7 +3,7 @@ use crate::*; /// Full Mach-O binary for: int main() { int a=2; int b=2; return a+b; } /// Compiled with: cc -arch arm64 -nostdlib -static -e _main -o test main.c -const MACHO64_ADD: &[u8] = include_bytes!("fixtures/macho64_aarch64_add.bin"); +const MACHO64_ADD: &[u8] = include_bytes!("../../fixtures/macho64_aarch64_add.bin"); #[test] fn macho64_aarch64_load_and_execute() { diff --git a/crates/libmwemu/src/tests/macho64_hello.rs b/crates/libmwemu/src/tests/loaders/macho/macho64_hello.rs similarity index 93% rename from crates/libmwemu/src/tests/macho64_hello.rs rename to crates/libmwemu/src/tests/loaders/macho/macho64_hello.rs index 8fac06d1..d3eb1607 100644 --- a/crates/libmwemu/src/tests/macho64_hello.rs +++ b/crates/libmwemu/src/tests/loaders/macho/macho64_hello.rs @@ -5,12 +5,12 @@ use crate::*; /// mov x0, #1; adrp x1, msg@PAGE; add x1, x1, msg@PAGEOFF; mov x2, #14; /// mov x16, #4; svc #0x80; mov x0, #0; mov x16, #1; svc #0x80 /// Compiled with: cc -arch arm64 -nostdlib -static -e _start -o test hello_raw.s -const HELLO_RAW: &[u8] = include_bytes!("fixtures/macho64_aarch64_hello_raw.bin"); +const HELLO_RAW: &[u8] = include_bytes!("../../fixtures/macho64_aarch64_hello_raw.bin"); /// Standard hello world using printf and libSystem.B.dylib: /// int main() { printf("Hello, World!\n"); return 0; } /// Compiled with: cc -arch arm64 -o test hello.c -const HELLO_LIBC: &[u8] = include_bytes!("fixtures/macho64_aarch64_hello.bin"); +const HELLO_LIBC: &[u8] = include_bytes!("../../fixtures/macho64_aarch64_hello.bin"); #[test] fn macho64_hello_raw_syscall() { diff --git a/crates/libmwemu/src/tests/loaders/macho/mod.rs b/crates/libmwemu/src/tests/loaders/macho/mod.rs new file mode 100644 index 00000000..bfe28bfe --- /dev/null +++ b/crates/libmwemu/src/tests/loaders/macho/mod.rs @@ -0,0 +1,2 @@ +mod macho64_basic; +mod macho64_hello; diff --git a/crates/libmwemu/src/tests/loaders/mod.rs b/crates/libmwemu/src/tests/loaders/mod.rs new file mode 100644 index 00000000..f7e72b21 --- /dev/null +++ b/crates/libmwemu/src/tests/loaders/mod.rs @@ -0,0 +1,4 @@ +mod elf64; +mod hello_world; +mod macho; +mod pe; diff --git a/crates/libmwemu/src/tests/exe32win_minecraft.rs b/crates/libmwemu/src/tests/loaders/pe/exe32win_minecraft.rs similarity index 100% rename from crates/libmwemu/src/tests/exe32win_minecraft.rs rename to crates/libmwemu/src/tests/loaders/pe/exe32win_minecraft.rs diff --git a/crates/libmwemu/src/tests/exe64win_enigma.rs b/crates/libmwemu/src/tests/loaders/pe/exe64win_enigma.rs similarity index 100% rename from crates/libmwemu/src/tests/exe64win_enigma.rs rename to crates/libmwemu/src/tests/loaders/pe/exe64win_enigma.rs diff --git a/crates/libmwemu/src/tests/exe64win_msgbox.rs b/crates/libmwemu/src/tests/loaders/pe/exe64win_msgbox.rs similarity index 100% rename from crates/libmwemu/src/tests/exe64win_msgbox.rs rename to crates/libmwemu/src/tests/loaders/pe/exe64win_msgbox.rs diff --git a/crates/libmwemu/src/tests/mingw_tests.rs b/crates/libmwemu/src/tests/loaders/pe/mingw_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/mingw_tests.rs rename to crates/libmwemu/src/tests/loaders/pe/mingw_tests.rs diff --git a/crates/libmwemu/src/tests/loaders/pe/mod.rs b/crates/libmwemu/src/tests/loaders/pe/mod.rs new file mode 100644 index 00000000..7c87ac48 --- /dev/null +++ b/crates/libmwemu/src/tests/loaders/pe/mod.rs @@ -0,0 +1,7 @@ +mod exe32win_minecraft; +mod exe64win_enigma; +mod exe64win_msgbox; +mod mingw_tests; +mod pe64_loader_tests; +mod peb_teb_ldr_structures_test; +mod tls_fls_tests; diff --git a/crates/libmwemu/src/tests/pe64_loader_tests.rs b/crates/libmwemu/src/tests/loaders/pe/pe64_loader_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/pe64_loader_tests.rs rename to crates/libmwemu/src/tests/loaders/pe/pe64_loader_tests.rs diff --git a/crates/libmwemu/src/tests/peb_teb_ldr_structures_test.rs b/crates/libmwemu/src/tests/loaders/pe/peb_teb_ldr_structures_test.rs similarity index 100% rename from crates/libmwemu/src/tests/peb_teb_ldr_structures_test.rs rename to crates/libmwemu/src/tests/loaders/pe/peb_teb_ldr_structures_test.rs diff --git a/crates/libmwemu/src/tests/tls_fls_tests.rs b/crates/libmwemu/src/tests/loaders/pe/tls_fls_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/tls_fls_tests.rs rename to crates/libmwemu/src/tests/loaders/pe/tls_fls_tests.rs diff --git a/crates/libmwemu/src/tests/mod.rs b/crates/libmwemu/src/tests/mod.rs index c63788f6..6ea0555c 100644 --- a/crates/libmwemu/src/tests/mod.rs +++ b/crates/libmwemu/src/tests/mod.rs @@ -1,79 +1,7 @@ -mod aarch64_basic; -mod allocator32_test; -mod allocator64_test; -mod banzai_mode_tests; -mod basic_test_code_bytes_shld_shrd; -mod bit_manipulation_tests; -mod breakpoint_functionality; -mod call32; -mod call64; -mod cmpxchg_tests; -mod config_management; -mod config_tests; -mod console_control_tests; -mod emulation_perf; -mod elf64lin_cpu_arithmetics; - -mod elf64_aarch64_basic; -mod elf64lin_flags; -mod elf64lin_fpu; -mod elf64lin_static_helloworld; -mod elf64lin_syscall64; -mod emulator_initialization; -mod error_conditions; -mod exception_handler32; -mod exception_handler64; -mod exe32win_minecraft; -mod exe64win_enigma; -mod exe64win_msgbox; -mod flag_calculations; -mod fpu_conversions; -mod fpu_f80_emulation; -mod fpu_stack_operations; mod helpers; -mod hooks_system; -mod instruction_pointer_tests; -mod linux_call64; -mod logic_test; -mod maps_memory_operations; -mod maps_operations_tests; -mod mem64_test; -mod memmove_test; -mod memory_map_operations; -mod pe64_loader_tests; -mod peb_teb_ldr_structures_test; -mod pure_rust_check; -mod register_state_tests; -mod regsisters_test; -mod sc32lin_rshell; -mod sc32win_donut; -mod sc32win_peb_ldr_rot; -mod sc32win_veryobfus; -mod sc64lin_arith_100iter; -mod sc64win_metasploit; -mod sc64win_strgen; -mod serialization_tests; -mod shl2p8_bug_trigger; -mod shl2p8_edge_cases_should_not_panic; -mod should_serialize; -mod ssdt_win64_tests; -mod sse_avx_tests; -mod stack32_test; -mod stack64_test; -mod stress_sar2p_all; -mod stress_shl1p_all; -mod stress_shl2p_all; -mod stress_shl2p_trigger; -mod stress_shr2p_all; -mod string_ops_tests; -mod syscall64_ssdt_tests; -mod test_unified_step_and_run_methods; -mod threading_operations_tests; -mod tls_fls_tests; -mod utility_functions_tests; -mod winapi32_tests; -mod winapi64_tests; -mod rax_x86_tests; -mod macho64_basic; -mod macho64_hello; -mod mingw_tests; \ No newline at end of file + +mod unit; +mod isa; +mod loaders; +mod os; +mod shellcode; diff --git a/crates/libmwemu/src/tests/os/mod.rs b/crates/libmwemu/src/tests/os/mod.rs new file mode 100644 index 00000000..f053438d --- /dev/null +++ b/crates/libmwemu/src/tests/os/mod.rs @@ -0,0 +1,5 @@ +mod ssdt_win64_tests; +mod syscall64_ssdt_tests; +mod threading_operations_tests; +mod winapi32_tests; +mod winapi64_tests; diff --git a/crates/libmwemu/src/tests/ssdt_win64_tests.rs b/crates/libmwemu/src/tests/os/ssdt_win64_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/ssdt_win64_tests.rs rename to crates/libmwemu/src/tests/os/ssdt_win64_tests.rs diff --git a/crates/libmwemu/src/tests/syscall64_ssdt_tests.rs b/crates/libmwemu/src/tests/os/syscall64_ssdt_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/syscall64_ssdt_tests.rs rename to crates/libmwemu/src/tests/os/syscall64_ssdt_tests.rs diff --git a/crates/libmwemu/src/tests/threading_operations_tests.rs b/crates/libmwemu/src/tests/os/threading_operations_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/threading_operations_tests.rs rename to crates/libmwemu/src/tests/os/threading_operations_tests.rs diff --git a/crates/libmwemu/src/tests/winapi32_tests.rs b/crates/libmwemu/src/tests/os/winapi32_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/winapi32_tests.rs rename to crates/libmwemu/src/tests/os/winapi32_tests.rs diff --git a/crates/libmwemu/src/tests/winapi64_tests.rs b/crates/libmwemu/src/tests/os/winapi64_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/winapi64_tests.rs rename to crates/libmwemu/src/tests/os/winapi64_tests.rs diff --git a/crates/libmwemu/src/tests/shellcode/mod.rs b/crates/libmwemu/src/tests/shellcode/mod.rs new file mode 100644 index 00000000..bf9c3b8c --- /dev/null +++ b/crates/libmwemu/src/tests/shellcode/mod.rs @@ -0,0 +1,7 @@ +mod sc32lin_rshell; +mod sc32win_donut; +mod sc32win_peb_ldr_rot; +mod sc32win_veryobfus; +mod sc64lin_arith_100iter; +mod sc64win_metasploit; +mod sc64win_strgen; diff --git a/crates/libmwemu/src/tests/sc32lin_rshell.rs b/crates/libmwemu/src/tests/shellcode/sc32lin_rshell.rs similarity index 100% rename from crates/libmwemu/src/tests/sc32lin_rshell.rs rename to crates/libmwemu/src/tests/shellcode/sc32lin_rshell.rs diff --git a/crates/libmwemu/src/tests/sc32win_donut.rs b/crates/libmwemu/src/tests/shellcode/sc32win_donut.rs similarity index 100% rename from crates/libmwemu/src/tests/sc32win_donut.rs rename to crates/libmwemu/src/tests/shellcode/sc32win_donut.rs diff --git a/crates/libmwemu/src/tests/sc32win_peb_ldr_rot.rs b/crates/libmwemu/src/tests/shellcode/sc32win_peb_ldr_rot.rs similarity index 100% rename from crates/libmwemu/src/tests/sc32win_peb_ldr_rot.rs rename to crates/libmwemu/src/tests/shellcode/sc32win_peb_ldr_rot.rs diff --git a/crates/libmwemu/src/tests/sc32win_veryobfus.rs b/crates/libmwemu/src/tests/shellcode/sc32win_veryobfus.rs similarity index 100% rename from crates/libmwemu/src/tests/sc32win_veryobfus.rs rename to crates/libmwemu/src/tests/shellcode/sc32win_veryobfus.rs diff --git a/crates/libmwemu/src/tests/sc64lin_arith_100iter.rs b/crates/libmwemu/src/tests/shellcode/sc64lin_arith_100iter.rs similarity index 100% rename from crates/libmwemu/src/tests/sc64lin_arith_100iter.rs rename to crates/libmwemu/src/tests/shellcode/sc64lin_arith_100iter.rs diff --git a/crates/libmwemu/src/tests/sc64win_metasploit.rs b/crates/libmwemu/src/tests/shellcode/sc64win_metasploit.rs similarity index 100% rename from crates/libmwemu/src/tests/sc64win_metasploit.rs rename to crates/libmwemu/src/tests/shellcode/sc64win_metasploit.rs diff --git a/crates/libmwemu/src/tests/sc64win_strgen.rs b/crates/libmwemu/src/tests/shellcode/sc64win_strgen.rs similarity index 100% rename from crates/libmwemu/src/tests/sc64win_strgen.rs rename to crates/libmwemu/src/tests/shellcode/sc64win_strgen.rs diff --git a/crates/libmwemu/src/tests/banzai_mode_tests.rs b/crates/libmwemu/src/tests/unit/banzai_mode_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/banzai_mode_tests.rs rename to crates/libmwemu/src/tests/unit/banzai_mode_tests.rs diff --git a/crates/libmwemu/src/tests/breakpoint_functionality.rs b/crates/libmwemu/src/tests/unit/breakpoint_functionality.rs similarity index 100% rename from crates/libmwemu/src/tests/breakpoint_functionality.rs rename to crates/libmwemu/src/tests/unit/breakpoint_functionality.rs diff --git a/crates/libmwemu/src/tests/config_management.rs b/crates/libmwemu/src/tests/unit/config_management.rs similarity index 100% rename from crates/libmwemu/src/tests/config_management.rs rename to crates/libmwemu/src/tests/unit/config_management.rs diff --git a/crates/libmwemu/src/tests/config_tests.rs b/crates/libmwemu/src/tests/unit/config_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/config_tests.rs rename to crates/libmwemu/src/tests/unit/config_tests.rs diff --git a/crates/libmwemu/src/tests/console_control_tests.rs b/crates/libmwemu/src/tests/unit/console_control_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/console_control_tests.rs rename to crates/libmwemu/src/tests/unit/console_control_tests.rs diff --git a/crates/libmwemu/src/tests/emulation_perf.rs b/crates/libmwemu/src/tests/unit/emulation_perf.rs similarity index 100% rename from crates/libmwemu/src/tests/emulation_perf.rs rename to crates/libmwemu/src/tests/unit/emulation_perf.rs diff --git a/crates/libmwemu/src/tests/emulator_initialization.rs b/crates/libmwemu/src/tests/unit/emulator_initialization.rs similarity index 100% rename from crates/libmwemu/src/tests/emulator_initialization.rs rename to crates/libmwemu/src/tests/unit/emulator_initialization.rs diff --git a/crates/libmwemu/src/tests/error_conditions.rs b/crates/libmwemu/src/tests/unit/error_conditions.rs similarity index 100% rename from crates/libmwemu/src/tests/error_conditions.rs rename to crates/libmwemu/src/tests/unit/error_conditions.rs diff --git a/crates/libmwemu/src/tests/hooks_system.rs b/crates/libmwemu/src/tests/unit/hooks_system.rs similarity index 100% rename from crates/libmwemu/src/tests/hooks_system.rs rename to crates/libmwemu/src/tests/unit/hooks_system.rs diff --git a/crates/libmwemu/src/tests/instruction_pointer_tests.rs b/crates/libmwemu/src/tests/unit/instruction_pointer_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/instruction_pointer_tests.rs rename to crates/libmwemu/src/tests/unit/instruction_pointer_tests.rs diff --git a/crates/libmwemu/src/tests/maps_memory_operations.rs b/crates/libmwemu/src/tests/unit/maps_memory_operations.rs similarity index 100% rename from crates/libmwemu/src/tests/maps_memory_operations.rs rename to crates/libmwemu/src/tests/unit/maps_memory_operations.rs diff --git a/crates/libmwemu/src/tests/maps_operations_tests.rs b/crates/libmwemu/src/tests/unit/maps_operations_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/maps_operations_tests.rs rename to crates/libmwemu/src/tests/unit/maps_operations_tests.rs diff --git a/crates/libmwemu/src/tests/memory_map_operations.rs b/crates/libmwemu/src/tests/unit/memory_map_operations.rs similarity index 100% rename from crates/libmwemu/src/tests/memory_map_operations.rs rename to crates/libmwemu/src/tests/unit/memory_map_operations.rs diff --git a/crates/libmwemu/src/tests/unit/mod.rs b/crates/libmwemu/src/tests/unit/mod.rs new file mode 100644 index 00000000..9c5ad9cb --- /dev/null +++ b/crates/libmwemu/src/tests/unit/mod.rs @@ -0,0 +1,20 @@ +mod banzai_mode_tests; +mod breakpoint_functionality; +mod config_management; +mod config_tests; +mod console_control_tests; +mod emulation_perf; +mod emulator_initialization; +mod error_conditions; +mod hooks_system; +mod instruction_pointer_tests; +mod maps_memory_operations; +mod maps_operations_tests; +mod memory_map_operations; +mod pure_rust_check; +mod register_state_tests; +mod regsisters_test; +mod serialization_tests; +mod should_serialize; +mod test_unified_step_and_run_methods; +mod utility_functions_tests; diff --git a/crates/libmwemu/src/tests/pure_rust_check.rs b/crates/libmwemu/src/tests/unit/pure_rust_check.rs similarity index 100% rename from crates/libmwemu/src/tests/pure_rust_check.rs rename to crates/libmwemu/src/tests/unit/pure_rust_check.rs diff --git a/crates/libmwemu/src/tests/register_state_tests.rs b/crates/libmwemu/src/tests/unit/register_state_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/register_state_tests.rs rename to crates/libmwemu/src/tests/unit/register_state_tests.rs diff --git a/crates/libmwemu/src/tests/regsisters_test.rs b/crates/libmwemu/src/tests/unit/regsisters_test.rs similarity index 100% rename from crates/libmwemu/src/tests/regsisters_test.rs rename to crates/libmwemu/src/tests/unit/regsisters_test.rs diff --git a/crates/libmwemu/src/tests/serialization_tests.rs b/crates/libmwemu/src/tests/unit/serialization_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/serialization_tests.rs rename to crates/libmwemu/src/tests/unit/serialization_tests.rs diff --git a/crates/libmwemu/src/tests/should_serialize.rs b/crates/libmwemu/src/tests/unit/should_serialize.rs similarity index 100% rename from crates/libmwemu/src/tests/should_serialize.rs rename to crates/libmwemu/src/tests/unit/should_serialize.rs diff --git a/crates/libmwemu/src/tests/test_unified_step_and_run_methods.rs b/crates/libmwemu/src/tests/unit/test_unified_step_and_run_methods.rs similarity index 100% rename from crates/libmwemu/src/tests/test_unified_step_and_run_methods.rs rename to crates/libmwemu/src/tests/unit/test_unified_step_and_run_methods.rs diff --git a/crates/libmwemu/src/tests/utility_functions_tests.rs b/crates/libmwemu/src/tests/unit/utility_functions_tests.rs similarity index 100% rename from crates/libmwemu/src/tests/utility_functions_tests.rs rename to crates/libmwemu/src/tests/unit/utility_functions_tests.rs diff --git a/examples/hello-world/Makefile b/examples/hello-world/Makefile new file mode 100644 index 00000000..56c32762 --- /dev/null +++ b/examples/hello-world/Makefile @@ -0,0 +1,52 @@ +CC_MACARM64 = clang -target arm64-apple-darwin +CC_MACX64 = clang -target x86_64-apple-darwin +CC_LINUX86 = i686-unknown-linux-gnu-gcc +CC_LINUX64 = x86_64-unknown-linux-gnu-gcc +CC_LINARM64 = aarch64-unknown-linux-gnu-gcc +CC_WINX86 = i686-w64-mingw32-clang +CC_WINX64 = x86_64-w64-mingw32-clang +CC_WINARM64 = aarch64-w64-mingw32-clang + +SRC = main.c +OUT = ../../crates/libmwemu/src/tests/fixtures + +TARGETS = \ + $(OUT)/hello_mac_arm64 \ + $(OUT)/hello_mac_x64 \ + $(OUT)/hello_linux_x86 \ + $(OUT)/hello_linux_x64 \ + $(OUT)/hello_linux_arm64 \ + $(OUT)/hello_win_x86.exe \ + $(OUT)/hello_win_x64.exe \ + $(OUT)/hello_win_arm64.exe + +all: $(TARGETS) + +$(OUT)/hello_mac_arm64: $(SRC) + $(CC_MACARM64) $(SRC) -o $@ + +$(OUT)/hello_mac_x64: $(SRC) + $(CC_MACX64) $(SRC) -o $@ + +$(OUT)/hello_linux_x86: $(SRC) + $(CC_LINUX86) $(SRC) -o $@ + +$(OUT)/hello_linux_x64: $(SRC) + $(CC_LINUX64) $(SRC) -o $@ + +$(OUT)/hello_linux_arm64: $(SRC) + $(CC_LINARM64) $(SRC) -o $@ + +$(OUT)/hello_win_x86.exe: $(SRC) + $(CC_WINX86) $(SRC) -o $@ + +$(OUT)/hello_win_x64.exe: $(SRC) + $(CC_WINX64) $(SRC) -o $@ + +$(OUT)/hello_win_arm64.exe: $(SRC) + $(CC_WINARM64) $(SRC) -o $@ + +clean: + rm -f $(TARGETS) + +.PHONY: all clean diff --git a/examples/hello-world/main.c b/examples/hello-world/main.c new file mode 100644 index 00000000..3f67e00f --- /dev/null +++ b/examples/hello-world/main.c @@ -0,0 +1,6 @@ +#include + +int main(void) { + printf("Hello, world!\n"); + return 0; +} diff --git a/flake.nix b/flake.nix index 9604a061..ffba8882 100644 --- a/flake.nix +++ b/flake.nix @@ -7,24 +7,89 @@ outputs = { nixpkgs, rust-overlay, ... }: let - targets = { - "x86_64-linux" = [ "x86_64-unknown-linux-gnu" ]; - "aarch64-darwin" = [ "aarch64-apple-darwin" "x86_64-apple-darwin" ]; + system = "aarch64-darwin"; + pkgs = import nixpkgs { + inherit system; + overlays = [ rust-overlay.overlays.default ]; }; - mkShell = system: - let - pkgs = import nixpkgs { inherit system; overlays = [ rust-overlay.overlays.default ]; }; - toolchain = pkgs.rust-bin.stable.latest.default.override { - extensions = [ "rust-src" "rust-analyzer" "clippy" ]; - targets = targets.${system}; - }; - in - pkgs.mkShell { - nativeBuildInputs = [ toolchain pkgs.pkg-config ]; - buildInputs = [ pkgs.openssl ]; + + # Rust toolchain with all cross-compilation targets + toolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ "rust-src" "rust-analyzer" "clippy" ]; + targets = [ + # mac + "aarch64-apple-darwin" + # linux + "x86_64-unknown-linux-gnu" + "aarch64-unknown-linux-gnu" + # windows + "aarch64-pc-windows-gnullvm" + "x86_64-pc-windows-gnullvm" + ]; + }; + + # Pre-built LLVM/Clang toolchain for Windows cross-compilation. + # Provides {x86_64,aarch64}-w64-mingw32-clang. + # https://github.com/mstorsjo/llvm-mingw + llvm-mingw = pkgs.stdenv.mkDerivation { + pname = "llvm-mingw"; + version = "20260407"; + src = pkgs.fetchurl { + url = "https://github.com/mstorsjo/llvm-mingw/releases/download/20260407/llvm-mingw-20260407-ucrt-macos-universal.tar.xz"; + hash = "sha256:801b49549ae39043d7195062eede67916b5ab46318a89e3b8209dc8f49441abb"; }; - in { - devShells.x86_64-linux.default = mkShell "x86_64-linux"; - devShells.aarch64-darwin.default = mkShell "aarch64-darwin"; + sourceRoot = "."; + phases = [ "unpackPhase" "installPhase" ]; + installPhase = '' + mkdir -p $out + cp -r llvm-mingw-*/* $out/ + ''; + }; + + in + { + devShells.${system}.default = pkgs.mkShell { + nativeBuildInputs = [ + toolchain + pkgs.pkg-config + llvm-mingw + # GCC cross-compilers for Linux targets + pkgs.pkgsCross.gnu32.stdenv.cc + pkgs.pkgsCross.gnu64.stdenv.cc + pkgs.pkgsCross.aarch64-multiplatform.stdenv.cc + ]; + + buildInputs = [ pkgs.openssl ]; + + # Cargo linkers for cross targets + CARGO_TARGET_AARCH64_PC_WINDOWS_GNULLVM_LINKER = "aarch64-w64-mingw32-clang"; + CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER = "x86_64-w64-mingw32-clang"; + CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER = "i686-unknown-linux-gnu-gcc"; + CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER = "x86_64-unknown-linux-gnu-gcc"; + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER = "aarch64-unknown-linux-gnu-gcc"; + + # cc-rs per-target compilers. Build scripts (zstd-sys, bzip2-sys, ...) + # use cc-rs which respects CC_. Set these explicitly because + # the shellHook below clears the global CC the cross stdenvs would + # otherwise leak. + CC_i686_unknown_linux_gnu = "i686-unknown-linux-gnu-gcc"; + CXX_i686_unknown_linux_gnu = "i686-unknown-linux-gnu-g++"; + CC_x86_64_unknown_linux_gnu = "x86_64-unknown-linux-gnu-gcc"; + CXX_x86_64_unknown_linux_gnu = "x86_64-unknown-linux-gnu-g++"; + CC_aarch64_unknown_linux_gnu = "aarch64-unknown-linux-gnu-gcc"; + CXX_aarch64_unknown_linux_gnu = "aarch64-unknown-linux-gnu-g++"; + CC_x86_64_pc_windows_gnullvm = "x86_64-w64-mingw32-clang"; + CXX_x86_64_pc_windows_gnullvm = "x86_64-w64-mingw32-clang++"; + CC_aarch64_pc_windows_gnullvm = "aarch64-w64-mingw32-clang"; + CXX_aarch64_pc_windows_gnullvm = "aarch64-w64-mingw32-clang++"; + + # Both pkgsCross.*.stdenv.cc derivations export CC/CXX via their nix + # setup hooks; whichever runs last wins, leaking a cross gcc into host + # builds (cc-rs respects CC unconditionally). Clear them so host + # builds fall back to clang and per-target builds use CC_. + shellHook = '' + unset CC CXX + ''; + }; }; -} +} \ No newline at end of file