aboutsummaryrefslogtreecommitdiff
path: root/test/protected_mode
AgeCommit message (Collapse)Author
23 hoursfix some forms of lss/lfs/lgs having incorrectly-small memory sizesiximeow
23 hoursprotected/real mode lfs/lgs/lssiximeow
23 hourspextr*/pinsr*/insertps/extrps immediate is now u8 instead of i8iximeow
23 hoursfix seam, user-ipi, {rd,wr}{fs,gs}base instructions decoding outside 64b modeiximeow
23 hoursfix vgatherdpd using incorrect simd vector width for gather indicesiximeow
23 hoursfix vpbroadcast* memory size and source register bankiximeow
23 hoursadd MASM-style formatting support in all modesiximeow
this includes a mildly nightmarish bit of test harness to compare against ml.exe/ml64.exe/dumpbin.exe, which in turn chased out a bunch of bugs. yay!
2026-06-21fix several instructions' incorrect memory or op2 sizeiximeow
2026-06-21rename rne-sae to rn-saeiximeow
2026-06-21fix mnemonics for prefetcht*iximeow
2026-06-21feature gate kvm tests to linuxiximeow
2026-06-21useless use of unsafeiximeow
2026-05-25push/pop width in 16/32-bit modes are receptive to operand width prefixiximeow
2026-05-25dont clobber test VM control state in tests..iximeow
2026-05-25j*cxz/pusha/popa alternate size formsiximeow
these all existed since forever but the library did not distinguish them and did not provide prefix information for users to tell which had been decoded.
2026-05-25adapt long-mode behavior support to protected mode and real modeiximeow
along the way, fix an error: maskmov is memory read-write. additionally, operand information about {push,pop}a{,d}.
2026-05-2566-prefixed sha1rnds4 doesnt even realiximeow
2026-05-25pusha/popa/push-imm memory sizesiximeow
2026-05-25working through a bunch of avx512 stuff, regspec constructors are constiximeow
2026-05-25pextr*/extractpsiximeow
2026-05-25invept precisioniximeow
2026-05-25more precision for vinsert/vextract/vblendv{ps,pd}iximeow
2026-05-25actually support avx/f16c in per-uarch decodingiximeow
2026-05-25vmaskmovdqu, vmovq were also incorrect in some ways...iximeow
2026-05-25more general avx improvementsiximeow
2026-05-25cleanup pass on vex-encoded instructions is going to be excitingiximeow
2026-05-25maskmov{q,dqu} memory access sizeiximeow
2026-05-25more precise about 0f0d prefetch/nopiximeow
2026-05-25fix table management instructions' ({l,s}{g,i,l}dt) mem_sizeiximeow
these instructions, it turns out, have fixed operand size based on CPU execution mode and regardless of prefixes. good to know!
2026-05-25more accurate mov seg-to-gpr operand sizeiximeow
2026-05-25push/pop for segment registers has implicit memory accessiximeow
2026-05-25pushf, popf, enter, leave, xlat all have implicit memory accessiximeow
also add "is_masked" to operand spec
2025-06-013dnow was still supported on K8, K10. 32-bit mode should learn about uarch ↵iximeow
tweaks too
2025-06-01expand isa feature selection to more bitsiximeow
this is backed by the new IsaSettings trait. the existing InstDecoders are unchanged, except that they implement this new trait. also add new `DecodeEverything` structs with `IsaSettings` impls that are unconditionally set to permit anything the decoder can be configured to conditionally accept or reject. in the process, add new `_3dnow` flag and stop accepting 3dnow instructions in uarch-specific decoder settings that would not have 3dnow instructions. update AMD microarchitectures and cross-ref chip directory
2024-06-24rename most operand variants, make them structy rather than tupleyiximeow
2024-06-23add additional `call` test casesiximeow
fix 32-bit 66-prefixed ff /2 call not having 16-bit operands fix momentary regression in rendering `call` instructions to string
2023-12-16fix hreset being disassembled as having second operand of "Nothing"iximeow
just report it having one operand...
2023-12-16fix incorrect register selection for `vpbroadcastm{b2q,w2d}` with `rex.b` setiximeow
2023-12-16fix incorrect register selection for `vpmov*2m` with `rex.r` setiximeow
2023-12-16fix incorrect register selection for `vpmovm2*` with `rex.b` setiximeow
2023-12-16abnormal memory sizes for keylocker instructions are not bugsiximeow
new `does_not_decode_invalid_registers` fuzzer found other bugs! the 384-bit accesses for 128b keylocker instructions are an otherwise-unknown size and had a memory size of `BUG`. they are not bugs. give the memory size a real name.
2023-12-15more RegSpec constructor validation, fix bug in x86_64 1b reg specsiximeow
* the first four 1-byte registers, `al`, `cl`, `dl`, `bl`, can be constructed in two ways that produce "identical" `RegSpec` that are.. not. e.g. `RegSpec::al() != Regspec::rb(0)` even though `RegSpec::al().name() == RegSpec::rb(0).name()`. this corrects the `rb` constructor at least, but instructions like `4830c0` and `30c0` still produce incompatible versions of `al`. * also fix register numbering used explicit qword-sized RegSpec constructors, r12 and r13 used to produce r8 and r9
2023-07-24fix handling of lar/lsl source registeriximeow
2023-07-23fix inconsistently-poreted memory access size of vcvt{,t}{sd,si}iximeow
2023-07-16forward changes along to 32-bit decoder...iximeow
2023-03-05add `Opcode::is_jcc`, `Opcode::is_setcc`, and `Opcode::is_cmovcc` helpersiximeow
this request/suggestion comes from [github](https://github.com/iximeow/yaxpeax-x86/issues/29)! thank you!
2022-04-30support 0x9a callf in 16/32-bit modesiximeow
2022-04-24fix a few issues preventing no-std builds from ... buildingiximeow
this includes a `Makefile` that exercises the various crate configs. most annoyingly, several doc comments needed to grow `#[cfg(feature="fmt")]` blocks so docs continue to build with that feature enabled or disabled. carved out a way to run exhaustive tests; they should be written as `#[ignore]`, and then the makefile will run even ignored tests on the expectation that this will run the exhaustive (but slower) suite. exhaustive tests are not yet written. they'll probably involve spanning 4 byte sequences from 0 to 2^32-1.
2022-01-12fuzz DisplayStyle::C and fix corresponding issues1.1.4iximeow
2021-12-19fix incorrect memory size for f30f1e-style nopiximeow
not only did the instruction have wrong data, but if displayed, the formatter would panic.