Skip to content

v2.14

Compare
Choose a tag to compare
@Baron-von-Riedesel Baron-von-Riedesel released this 20 Dec 09:09
· 100 commits to master since this release

20.12.2020, v2.14:

Bugfixes:

  • regression in v2.13: if a not yet defined segment was added to a group,
    it got the current offset size, which caused an error if this wasn't the
    offset size when the segment was created; see group5.asm.
  • there was still the possibility that segments with different offset
    sizes were added to the same group; see group6.asm.
  • string operation MOVSx with operands: if destination got an override
    (ES:), a source without override was rejected; see string4.asm.
  • string operation MOVSx with operands: destination with override
    != ES wasn't rejected; see string5.asm.
  • string operations with symbolic memory operands did ignore assumes, thus
    no segment prefix was created; see string8.asm.
  • comment behind MACRO directive was appended to all lines inside the
    macro; see lst2.asm.
  • jwasmr.exe: memory corruption may have caused a system crash if pass one
    ended with an error.
  • some errors occured in LP64 systems (linux, unix) because LONG_MAX and
    LONG_MIN were used inadequately.
  • INVLPG with direct address >= 0x10000 in 16-bit code was rejected, even
    if preceded by 'assume ds:flat'; see invlpg2.asm.
  • using direct addresses without symbol ( i.e. flat:[1234h] ) may have
    caused a GPF if used in math opcodes ( CMP, OR, ...); see flatgrp2.asm.
  • option -bin: using direct addressing without symbol ( _DATA:1234h )
    didn't store the offset in the binary; see data1.asm.

Other changes:

  • jfc.asm translated to jfc.c so it can be used in both 32- and 64-bit
    unix systems.
  • added runtest.sh, clrdir.sh and compress.sh to allow regression test in
    unix systems. A few tests are skipped, since jwasmr.exe and MS link.exe
    won't run in those systems.
  • DJGPP: djgpp apparently doesn't know "_stat", needs "stat" instead; see
    omf.c
  • error "ADDR32 fixup to at location ..." emitted if 64-bit PE is
    created and 32-bit fixup target address is >= 0x80000000; see pe7.asm.
  • warning "64-bit label referenced with 32-bit fixup" ( warning level 3 )
    emitted if 32-bit address used for 64-bit target.
  • translation for 8/16/32-bit register arguments for INVOKE in 64-bit if
    they are to be pushed; see invok64d.asm.