aboutsummaryrefslogtreecommitdiff
path: root/test/long_mode
AgeCommit message (Collapse)Author
12 dayseven more EVEX encoding precision, regspec constructors are constiximeow
2026-05-08vex support done, starting on evex..iximeow
2026-05-08working through a bunch of avx512 stuff..iximeow
2026-05-04pextr*/extractpsiximeow
2026-05-03invept precisioniximeow
2026-05-03vblendv{ps,pd} precisioniximeow
2026-05-03more precision for vinsert/vextractiximeow
2026-05-03actually support avx/f16c in per-uarch decodingiximeow
2026-05-03much closer to comprehensively covering vex instructions..iximeow
2026-05-02vmaskmovdqu, vmovq were also incorrect in some ways...iximeow
2026-04-30more general avx improvementsiximeow
2026-04-23warnings, cleanupiximeow
2026-04-23start verifying vex-encoded instruction behavioriximeow
2026-04-23cleanup pass on vex-encoded instructions is going to be excitingiximeow
2026-04-19warnings, crc32 testiximeow
2026-04-19a few more straggler instructionsiximeow
2026-04-19the rest of sse?iximeow
2026-04-19substantially more sse coverageiximeow
2026-04-17TODO: 32/16, maskmov{q,dqu} memory access sizeiximeow
2026-04-17more precise about 0f0d prefetch/nopiximeow
2026-04-12check and support more 0fXX opcodesiximeow
2026-04-12sgdt/lidt/lgdt test fixesiximeow
2026-04-12test table management instructions ({l,s}{g,i,l}dt)iximeow
these instructions, it turns out, have fixed operand size based on CPU execution mode and regardless of prefixes. good to know!
2026-04-12many conditional instructions, jump, call, and start testing 0f opcodesiximeow
2026-03-29rip out the kvm bits into a standalone crateiximeow
2026-03-28full rangeiximeow
2026-03-28last few weird cases unsuitable for generic testingiximeow
2026-03-28handle instructions that read and write different parts of the same instructioniximeow
the motivating case is `xchg ah, al`, where both register writes independently "don't match" the overall register diff of the low 16 bits. the diff-checking code was too narrow: we really have to collect all allowed diffs on a register for an instruction and compare the actual diff to that unification. the implementation goes the other way though: compute the diff, and remove parts of the diff that are unaccounted for. if any diff remains, that is by definition unexpected and an error.
2026-03-28more behavior, the rest of two-byte instructions?iximeow
2026-03-27more accurate mov seg-to-gpr operand sizeiximeow
2026-03-27test infra for segment regs, push/pop small regsiximeow
2026-03-27push/pop for segment registers has implicit memory accessiximeow
2026-03-27div ops, mul ops, some otheriximeow
2026-03-19more instructions, figured out mul/imuliximeow
2026-03-09back at it with more instruction behaviors and carveoutsiximeow
2026-03-09separate: more implicit operand size bitsiximeow
2026-03-09stop relying on mmio for behavior validationiximeow
first, the vcpu is configured with 1G pages, which confound linux's gva->gpa translation done as part of instruction emulation. this means that we get bogus faults in perfectly valid virtual addresses that the hardware can use, but linux cannot. second, relying on mmio means every mmio-trapped instruction is actually testing yaxpeax-x86 semantics against linux x86 emulation. while this is interesting, it is not the goal of the tests. maybe some later day! finally, write_matches_reg() had an inappropriate mask for what bits can be written given a certain register size.
2026-03-02this might actually work omgggggiximeow
2026-03-02cleanup, document, etciximeow
2026-03-02ok, gdt works... (mem16:32 means 32-bit offset THEN 16-bit selector???)iximeow
2026-02-23set up an IDT, and try to use it, but just discover the GDT is actually brokeniximeow
also shrink the GDT to 256 entries because i really won't use 8k of them. this makes the GDT entries only 0x400 bytes but i still skip a page from gdt_addr() to idt_addr().
2026-02-23more expansive access behavior validation, start on implicit op listsiximeow
2026-02-23if tripped over a kvm bug i sweariximeow
2026-02-23cleanupiximeow
2026-02-23more reworking of vm and test harnessiximeow
2026-02-23lmao this rulesiximeow
2026-02-22correct push-immediate memory access sizeHEADno-gods-no-iximeow
2025-09-29annotation description test requires `fmt`iximeow
this was missed in typical testing because either tests run with all features, no features, or fmt. there wasn't a test entry for only std, which was broken.
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