Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-07-16 | forward changes along to 16-bit decoder... | iximeow | |
2023-07-16 | forward changes along to 32-bit decoder... | iximeow | |
2023-07-08 | annotation ordering changed a bit in refactoring, for the better??? | iximeow | |
2023-07-08 | fix v(p)gather situations, get vex tests passing again | iximeow | |
2023-07-05 | fix operand handling for the psl/psr family of xmm shifts/rotates | iximeow | |
these instructions ignored rex bits even for xmm reigsters, which is incorrect (so says xed) | |||
2023-07-04 | two more test cases | iximeow | |
2023-07-04 | fix some dancing between bank size and RegisterBank enum values | iximeow | |
in the process, fixed a decoding bug dealing with a0/a1/a2/a3 movs (respected rex.b when rex.b should have been ignored) this seems to maybe improve runtime ever so slightly, but this is really meant as a cleanup commit more than anything. | |||
2023-03-05 | add `Opcode::is_jcc`, `Opcode::is_setcc`, and `Opcode::is_cmovcc` helpers | iximeow | |
this request/suggestion comes from [github](https://github.com/iximeow/yaxpeax-x86/issues/29)! thank you! | |||
2022-05-30 | pshufb annotations use incorrect register banks (for now?) | iximeow | |
the correct bank is applied far after register numbers are read. a correct annotation would need to know to defer emission until setting register banks, but also would need to work backwards for the number of bits between the current byte and modrm. not impossible, but substantial refactoring. | |||
2022-05-07 | more annotation fixes? | iximeow | |
2022-05-01 | add testing setup for field descriptions | iximeow | |
2022-04-30 | support 0x9a callf in 16/32-bit modes | iximeow | |
2022-04-24 | fix a few issues preventing no-std builds from ... building | iximeow | |
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-12 | fuzz DisplayStyle::C and fix corresponding issues1.1.4 | iximeow | |
2021-12-19 | fix incorrect memory size for f30f1e-style nop | iximeow | |
not only did the instruction have wrong data, but if displayed, the formatter would panic. | |||
2021-12-19 | test that invalid RegSpec constructions panic as expected | iximeow | |
in the process, fix 64-bit rex-byte limit, 32/16-bit mode mask reg limit | |||
2021-12-17 | do not panic on negative compressed displacements, i mean it!! | iximeow | |
2021-12-16 | displacements are stored as unsigned, but are functionally signed ints | iximeow | |
so multiplying to expand EVEX compressed offsets can overflow, and that needs to be okay. | |||
2021-10-10 | support endbr{32,64} | iximeow | |
2021-08-21 | fix negative relative branches (again!!! +- is bad!!!) | iximeow | |
2021-08-21 | fix incorrect decoding of 0x9*-series instructions with rex.b | iximeow | |
2021-08-21 | clarify inaccurate 32/16-bit `call/jmp [mem]` mem_size | iximeow | |
2021-08-21 | report memory sizes for push, pop, call, ret | iximeow | |
these instructions had memory sizes reported for the operand, if it was a memory operand, but for versions with non-memory operands the decoded `Instruction` would imply that non memory access would happen at all. now, decoded instructions in these cases will report a more useful memory size. | |||
2021-08-14 | relative branches should be shown as $+offset, not just plain offset | iximeow | |
while x86 branches of immediates are all relative to PC, other architectures may have absolute branches to immediate addresses, leaving this syntax ambiguous and potentially confusing. yaxpeax prefers to write relative offsets `$+...` as a rule, so uphold that here. | |||
2021-07-22 | fix incorrect decodes with scas and 67-prefixes1.0.4 | iximeow | |
2021-07-04 | support vpscatter{dd,dq,qd,qq} | iximeow | |
2021-07-04 | support avx512 registers >=16 | iximeow | |
2021-07-04 | handle vzeroupper/vzeroall, reject vzero* with nonzero vvvv | iximeow | |
2021-07-04 | support xacquire/xrelease prefixing | iximeow | |
2021-07-04 | add real-mode decoder | iximeow | |
2021-07-04 | fix several incorrect tests and docs in 64- and 32-bit modes | iximeow | |
2021-07-03 | update protected_mode to match long_mode docs, apis | iximeow | |
2021-07-03 | more carefully test mmx operand sizes | iximeow | |
2021-07-03 | factor out MemoryAccessSize | iximeow | |
2021-07-03 | add tests for MemoryAccessSize, consistentify style on docs | iximeow | |
2021-07-03 | be more strict about denying invalid operands | iximeow | |
2021-07-03 | support AMD `sev_snp` | iximeow | |
2021-07-03 | instructions with evex-coded registers may have registers other than 0 | iximeow | |
2021-07-03 | enforce reserved evex prefix bits | iximeow | |
2021-07-03 | clean up x86_32 and make interfaces match x86_64 | iximeow | |
2021-07-03 | add hreset | iximeow | |
2021-07-03 | support pconfig/tme | iximeow | |
2021-07-01 | [DROP] fix up tests to match newer operand width interfaces | iximeow | |
2021-07-01 | reallocate OperandCode, convert disparate registers to array | iximeow | |
also remove redundant assignments of operand_count and some OperandSpec, bulk-assign all registers and operands on entry to `read_instr`. this all, taken together, shaves off about 7 cycles per decode. | |||
2021-07-01 | complete yaxpeax-arch 0.1.0 adaptation, shore up .mem_size() | iximeow | |
2021-06-28 | round out x86_32 support - avx2, avx, memory sizes | iximeow | |
2021-06-28 | protected mode memory sizes | iximeow | |
also some long-mode cleanup in corresponding areas | |||
2021-06-27 | protected-mode avx512 | iximeow | |
2021-06-27 | add randomized testing against incorrect data in reused instructions | iximeow | |
2021-06-27 | all tests now passing for long mode | iximeow | |