Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Jan 1997 05:47:34 -0800 (PST)
From:      Bruce Evans <bde>
To:        CVS-committers, cvs-all, cvs-sys
Subject:   cvs commit:  src/sys/i386/i386 db_disasm.c
Message-ID:  <199701041347.FAA20470@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
    "<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.
  
  Revision  Changes    Path
  1.17      +147 -128  src/sys/i386/i386/db_disasm.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701041347.FAA20470>