ab372207b2
- the operands for bt, bts, arpl and `enter' were reversed. - btr was reported as bts (with the correct operand order). - cmpxchg was misplaced. It was misplaced differently in the comments. It is misplaced differently again in the i486 manual. I put it where the i586 manual and gas say it is. - fucompp was misplaced. - the rr table for(s) some versions of fstp, fcom and fcomp was non-null. This caused some invalid opcodes to be reported as "" instead of as "<bad instruction>". - the word and long versions of the fi* instructions were reversed. - aaa and daa were reversed. Fixed bugs involving unusual operand sizes: - 32-bit registers weren't always forced for bswap or for moves to and from special registers. - the operand sizes weren't reported for [l]call or [l]jmp. - displacements weren't truncated mod 2^16 when the operand size was 16-bit. - too-large displacements and offsets were fetched, and too-large offsets were reported, when the operand size was 16-bit. - sign extended immediate bytes were extended too far when the operand size was 16-bit. Fixed bugs involving usual operand sizes: - 8-bit source registers weren't forced for mov[sz]b[wl]. - 16-bit source registers weren't forced for mov[sz]w[wl]. - immediate bytes were sometimes reported as sign extended even for byte operations. Same for immediate words in word operations. - the immediate byte was not reported as sign extended for `push'. Finished Pentium support: - cpuid, cmpxchg8b and rsm were missing. Finished i287 support: - fneni, fndisi and fsetpm were missing. These are harmless nops on later FPUs. Improvements: - report invalid opcodes 0xd6 and 0xf1 using .byte. They are special in not causing invalid operand exceptions when executed. - report the immediate byte for unusual aam and aad instuctions. Immediate bytes other than 0x0a always worked and are documented to work on Pentiums. |
||
---|---|---|
.. | ||
amd64 | ||
conf | ||
include | ||
isa | ||
pci | ||
Makefile |