From owner-cvs-sys Sat Jan 4 05:47:36 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id FAA20479 for cvs-sys-outgoing; Sat, 4 Jan 1997 05:47:36 -0800 (PST) Received: (from bde@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id FAA20470; Sat, 4 Jan 1997 05:47:34 -0800 (PST) Date: Sat, 4 Jan 1997 05:47:34 -0800 (PST) From: Bruce Evans Message-Id: <199701041347.FAA20470@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/i386/i386 db_disasm.c Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk bde 97/01/04 05:47:33 Modified: sys/i386/i386 db_disasm.c Log: Fixed botched tables: - 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 "". - 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. Revision Changes Path 1.17 +147 -128 src/sys/i386/i386/db_disasm.c