Skip to content

v2.21

Latest

Choose a tag to compare

@Baron-von-Riedesel Baron-von-Riedesel released this 08 Nov 03:00

Bugfixes:

  • bin format, absolute segments: if segment wasn't referenced directly,
    but by the SEG operator, invalid code was generated; see absseg4.asm.
  • macro arguments: curly braces now handled Masm-compatible; see
    macro25.asm.
  • operator MOD returned wrong results for negative operands; see mod1.asm,
    mod2.asm.
  • operator '/': 64-bit division generally assumed signed operands, hence
    results were wrong if dividend was unsigned with bit 63 set.
  • elf format: in symbol table, size wasn't set for data publics.
  • error "initializer magnitude too large" occured if the negative offset
    of a struct member was referenced as 8-bit value; see struct44.asm &
    struct45.asm.
  • option -elf64: addends calculation wrong if explicitely defined; see
    elf2.asm.
  • model TINY, predefined symbol @code: changed from _TEXT to DGROUP; see
    tinycode.asm.
  • TYPE operator: returned values != 0 for certain constants defined with
    EQU; see types18.asm.
  • ALIAS directive: alias name wasn't decorated reliably; see alias3.asm.
  • non-OMF formats: code buffer was allocated in each pass, causing memory
    leaks.
  • fixed GPF in jwasm: assembling MOV instruction with destination of type
    prototype, but without pointer type definition; see pproc.asm.
  • fixed buffer overflow in listing if EQU defined an alias in 32/64-bit.

Other changes:

  • format elf: cmdline option -Zd (dwarf line numbers) supported (limited
    to one file).
  • format elf: added cmdline option -pic{0|1|2}; position-independent code
    generation (-pic1) is now the default for elf.
  • format elf: EXTERNDEF accepts optional EXPORT qualifier; this qualifier
    modifies visibility for -pic2.
  • format elf32: qualifier SECTIONREL redefined for this format; will
    return offset relative to GOT.
  • format elf32: special handling of symbol GLOBAL_OFFSET_TABLE.
  • option -pe: .stack directive will set reserved stack space in PE header.
  • option -?: exit with errorcode 0 instead of 1.
  • format coff: in listing, COMDAT attr. (segments and symbols) is rendered.
  • listing: don't print language for non-public items in symbol table.
  • extension ASSUME USExx added to (temporarily) switch bitness inside a
    segment; see assumex1.asm.