v2.14
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.