Skip to content

v2.17

Compare
Choose a tag to compare
@Baron-von-Riedesel Baron-von-Riedesel released this 24 Mar 12:40
· 40 commits to master since this release

Bugfixes:

  • option renamekeyword: if the keyword was renamed multiple times it
    did work only if the first occurance of this option was after an
    instruction or directive that triggered "fastpass"; see renkeyw.asm.
  • option renamekeyword: keywords weren't restored to their default at
    end of pass; see renkeyw2.asm.
  • option renamekeyword: renaming an already renamed keyword may have
    caused an infinite loop; see renkeyw3.asm.
  • size operand of DUP operator was checked to be positive, but wasn't
    checked for 32-bit overflow; see constnt3.asm.
  • direct memory access with flat override ( for constant addresses )
    may have generated error "cannot access label through segment registers";
    see flatgrp3.asm.
  • regression in v2.16: invoke may have generated a "PUSHD" in 64-bit code
    if .model wasn't flat; see invoke54.asm.
  • FLAT: override may have suppressed address size prefix; see
    flatgrp4.asm.
  • invoke, 64-bit, non-win64, vararg: 32-bit registers were rejected as
    arguments; see invoke55.asm.
  • display of assembly-time was correct only if CLOCKS_PER_SEC was 1000.
  • listing of embedded structs/unions: the printed start offset was wrong
    if the struct/union wasn't located before any code/data lines; see
    struct42.asm.
  • djgpp output format was broken.
  • COMM directive: if a type was given instead of a size, the type wasn't
    stored in the symbol and hence couldn't be used in expressions; see
    comm7.asm.

Other changes:

  • option stackbase: may be used in conjunction with "assume ss" to
    define a PROC where CS and SS differ in offset magnitude ( 16-bit
    code with 32-bit stack and vice versa ); see stkbase1.asm, stkbase2.asm.
  • format -pe: 64-bit segments defined with USE64 are added to internal
    "flat" group if model is flat. Allows to mix 32- and 64-bit segments in
    .model FLAT; see flatgrp5.asm & flatgrp6.asm.
  • simplified segment directive .code with name argument in tiny model
    always added the segment to dgroup. Now this is done only if segment's
    offset size matches the model's offset size; see tiny2.asm.
  • RETs inside PROCs will now show up in listing file like in Masm; see
    lst3.asm.
  • in listings, offset of 16-bit segments now displayed with width 4.
  • offsets/displacements that are too large will now always cause error
    "constant value too large"; see offset17/18/19.asm.
  • output format -djgpp ( special coff variant ), previously optional only,
    is now activated as default.