amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

[Login] [Registrieren] [Passwort vergessen?]

< Nächste MeldungVorige Meldung >
16.Okt.2024



Entwicklerwerkzeug: vasm 2.0
Frank Wille hat nach elf Monaten Entwicklungszeit das Update auf die Version 2.0 für den modularen Assembler vasm veröffentlicht. Auf Nachfrage hat er für uns einige Kernpunkte der neuen Version benannt:
  • Die Version 2.0 von vasm bringt einige größere interne Änderungen mit sich. Die wichtigste ist die Unterstützung von Architekturen mit mehr als 8 Bits per Byte, während sichergestellt wurde, daß diese Flexibilität nicht die Performance von vorhandenen Backends verringert.
  • Zwei neue Backends nutzen dieses Feature bereits: das HANS-FPGA Projekt implementiert eine CPU mit 32-bit Bytes, und der unSP (Micro-nSP) Core von SunPlus mit 16-bit Bytes ist eine real existierende CPU, die u.a. in der VTech V.Smile Konsole eingesetzt wurde.
  • Das ermöglicht für die Zukunft einige interessante Backends, wie z.B. Mainframes aus den 50er und 60er Jahren mit 36-bit Bytes, oder aktuelle MCUs von Microchip mit 12, 14 oder 24-Bit Instruktionen.
  • Die interne Repräsentation von Relocations wurde überarbeitet. Einerseits, um beliebige Bits per Byte zu unterstützen und andererseits kann jetzt zwischen Signed und Unsigned Reloc-Typen unterschieden werden, sowie eine Schnittstelle, damit Backends eigene Reloc-Typen definieren können.
  • Als neue Output-Module gibt es das MOS Paper-Tape Format sowie das proprietäre Format des HANS-Projekts. Vorhandene Output-Formate wurden erweitert. Z.B. XFile für X68000 (Startadresse und laden in High Memory), ZFile wird neu über das TOS-Modul realisiert. Foenix PGX und PGZ Support verbessert. Viele neue Optionen für Debugging Output im Amiga Hunk-Format.
  • Bei den CPUs hat das m68k-Backend wie üblich viele neue Features und Bug Fixes. Das Apollo-Team hat den 68080 Support auf den neuesten Stand gebracht.
  • Aber auch das 6502-Backend wurde komplett überarbeitet, um es kompatibler zur offiziellen WDC-Syntax zu machen und die Unterstüzung für die 8/16-Bit 65816 CPU zu verbessern. Momentan ist ein 65816-Backend für vbcc in der Entwicklung.
Die Änderungen der Version 2.0 im Detail:
  • Support for architectures which have bytes with more than 8 bits.
  • Output formats bin, ihex, srec, test and vobj currently support >8-bit bytes.
  • New options -obe and -ole to define the endianess of target-bytes in binary output.
  • New options -ibe and -ile to define the endianess of target-bytes in binary includes (incbin).
  • New option -underscore adds a leading underscore to all imported and exported symbol names.
  • New option -relpath to treat all include paths as relative first, even when starting with '/' or '\'.
  • Reworked relocations and added the option to define their signedness.
  • New CPU backend for unSP (micro-nSP), having 16-bit bytes. Contributed by Adrien Destugues.
  • New CPU backend for the FPGA-CPU HANS, using 32-bit bytes. Contributed by Yannick Stamm.
  • New output module "pap", which outputs MOS Paper Tape files, as documented in the KIM-1 User's Manual. Contributed by Dimitri Theulings.
  • When printing error messages in macros, also print the source text line calling the macro.
  • A macro redefinition prints a warning with the previous definition. The old macro is correctly replaced.
  • Also warn about initialized space atoms (.space, etc.) in BSS sections.
  • Workaround for a Windows bug, when reading a source text from stdin directly via the terminal.
  • Fixed output of 64-bit symbol values in vobjdump.
  • Directives to suppress listing file output (like NOLIST) will no longer appear in the listing file.
  • Fixed string constants (in immediate addressing modes) with non-ASCII characters.
  • Fixed potential buffer overflow when generating a section name for ORG directives (since V1.9f).
  • Output modules now show the source line for unknown relocation errors.
  • m68k: Most out of range errors have now become warnings.
  • m68k: Out of range 8-bit immediate constants write to all 16 bits of the extension word, with a warning (to be able to simulate the behaviour of some old, faulty assemblers).
  • m68k: Improved -opt-size optimization for move.l->moveq/lsl, which now optimizes all values below 0x8000 where the highest and lowest bit set does not span more than 7 bits (suggested by Erik Hemming).
  • m68k: Float-constant optimization (OPT of, enabled by default) now also supports integer constant optimization to 16-bit.
  • m68k: Command line options of the form -opt-
  • m68k: New options -warnabs16 and -warnabs32 to show a warning when accessing absolute 16- oder 32-bit addresses.
  • m68k: Fixed assigning another register list symbol with REG/EQURL, which was broken since V1.9a.
  • m68k: REG/EQURL directives optionally allow to specify register lists as a register mask constant (BAsm compatibility).
  • m68k: Add Apollo E-register banking for negx, swap, movex, sCC, addiw.l, cmpiw.l, rol, ror, roxl, roxr, and perm.
  • m68k: Apollo instructions pabsb, pabsw are gone (opcode space will be reused in future).
  • m68k: Apollo fmove.{b/w/l/s/d} En,Em is replaced by floadi and fstorei to make clear whether the Em target is an integer or floating point register.
  • m68k: New Apollo instructions: fmoverz, fmoveurz, moveiw, mov3q, movs, movz, move2 (updated), clr.q.
  • m68k: Do not allow Bcc.B with branch distance -130 for Apollo, as it would encode as $6xff (opcode for 32-bit branch).
  • x86: Default to 16-bit addressing when -m selects a CPU below 386. Default to 64-bit addressing with -m64.
  • x86: Let the mnemonic's suffix always decide about the operation size, even when the operand is a label (gas seems to do the same).
  • x86: Mask all immediate operand relocations according to their size (to allow something like movb $label,dest or movw $label,dest).
  • x86: Fix macros with size-suffixes (b,w,l,s,q,x). Size qualifiers are no longer allowed in x86-macros.
  • x86: Allow multiple alternating .codeNN directives in the source.
  • x86: Add missing prefix when using 32-bit registers in 16-bit mode.
  • x86: Fixed relative calls with size suffix (callw, calll) in 16/32-bit mode.
  • 6502: Added al/as/xl/xs as aliases for a16/a8/x16/x8 directives. Added longa/longi as WDC-style aliases for theses directives (65816).
  • 6502: Absolute 16-bit addressing modes ignore the bank by default for 65816.
  • 6502: Optionally allow alternative syntax with immediate operands for MVN, MVP and PEA (65816).
  • 6502: Out of range errors turned into warnings.
  • 6502: CPU directive, to define the cpu model.
  • 6502: Byte-selector operators are gone and turned into operand prefixes, according to the official WDC syntax.
  • 6502: New option -am to mask all immediate and data values to their specified size.
  • 6502: Hu6280 uses SETDP $2000 to move the zero page for automatic code optimizations.
  • 6502: New option -dpo to generate offset-relocs for zero- or direct-page accesses.
  • mot-syntax: Fixed non-zero offset in CNOP, which was broken since V1.7c.
  • mot-syntax: TTL sets the listing file page title and not the unit name.
  • oldstyle-syntax: MACRO (written in upper case) didn't work with arguments.
  • oldstyle-syntax: New ifblank and ifnblank directives may be used to check whether a macro argument was given.
  • oldstyle-syntax: New directive exitmacro to exit recursive macro invocations.
  • oldstyle-syntax: New directive da as an alias for addr.
  • oldstyle-syntax: New directive bss to reserve space, like ds or reserve.
  • oldstyle-syntax: New directives blkl and dsl for defining space with a 32-bit pattern.
  • oldstyle-syntax: Section attributes 'f' and 'z' may be used to designate a section for far- or near-addressing (e.g. direct/zero-page).
  • oldstyle-syntax: Fixed FCC for single characters (no expressions allowed).
  • oldstyle-syntax: The closing quote-character (' or ") in single-character expressions is now optional (compatibility with old Motorola sources).
  • oldstyle-syntax: Broken hex-constants with the minus-operator following the '$' are supported for compatibility reasons.
  • oldstyle-syntax: Allow optional colon after a label for macro, equ and set directives.
  • std-syntax: The "true" result of logical operations should be 1 not -1.
  • std-syntax: Allow XY' (alternate) registers with Z80.
  • std-syntax: The .org directive always defines the absolute address for subsequent code, as long as no relocatable section was defined (or -gas).
  • std-syntax: .ifc and .ifnc directives for comparing strings.
  • hunk-output: New option -noabspath to refrain from creating absolute paths for source line debugging (LINE debug format).
  • hunk-output: Automatic source line debugging output (-linedebug) also includes BSS sections now, unless Devpac-compatibility was specified (-devpac).
  • hunk-output: New options -dbg-local and -dbg-globloc to include local labels into the debug symbol hunk (HUNK_SYMBOL).
  • hunk-output: Warn about odd relocation offsets, which might crash the AmigaOS loader on 68000 and 68010 systems (suggested by Erik Hemming).
  • o65-output: Support low-word relocs in 65816 mode.
  • bin-output: Fixed overlapping misdetection with empty org-sections.
  • bin-output: Foenix PGX format supports 65C02 and PGZ format supports 32-bit.
  • bin-output: New option -coalesced to output org-blocks without padding.
  • cdef-output: Do not output internal symbols.
  • elf-output: Fixed advancing by more than 63 lines in the DWARF output (patch by arcanist/EAB).
  • tos-output: Fixed alignment problem with DRI object file relocs.
  • tos-output: New option -zfile to output Sharp X68000 Z-file executables.
  • xfile-output: New option -exec to define the execution label.
  • xfile-output: New option -loadhigh to load the executable into high memory.
(dr)

[Meldung: 16. Okt. 2024, 20:21] [Kommentare: 1 - 16. Okt. 2024, 22:19]
[Per E-Mail versenden]  [Druck-Version]  [ASCII-Version]
< Nächste MeldungVorige Meldung >

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.