From 82d3cde958d45290d22b75ac7d1cb8ffa90ecc0d Mon Sep 17 00:00:00 2001 From: Tomasz Grysztar Date: Wed, 12 Jul 2023 12:04:37 +0200 Subject: [PATCH] release 1.73.31 --- FASM.TXT | 12 ++++++------ LICENSE.TXT | 2 +- SOURCE/EXPRCALC.INC | 2 +- SOURCE/EXPRPARS.INC | 27 ++++++++++++--------------- SOURCE/FORMATS.INC | 1 + SOURCE/VERSION.INC | 4 ++-- WHATSNEW.TXT | 9 +++++++++ 7 files changed, 32 insertions(+), 25 deletions(-) diff --git a/FASM.TXT b/FASM.TXT index e1085a4..c8423eb 100644 --- a/FASM.TXT +++ b/FASM.TXT @@ -4930,11 +4930,11 @@ the brand of the target operating system (for example value 3 would mark the executable for Linux system). With this format selected it is allowed to use "entry" directive followed by the value to set as entry point of program. On the other hand it makes "extrn" and "public" directives unavailable, -and instead of "section" there should be the "segment" directive used, -followed by one or more segment permission flags and optionally a marker of -special ELF executable segment, which can be "interpreter", "dynamic", "note", -"gnuehframe", "gnustack" or "gnurelro". Available permission flags are: "readable", -"writeable" and "executable". The origin of a non-special segment is aligned -to page (4096 bytes). +and instead of "section" it expects the "segment" directive followed by one or more +segment permission flags and optionally a marker of special ELF executable segment, +which can be "interpreter", "dynamic", "note", "gnuehframe", "gnustack" +or "gnurelro". Available permission flags are: "readable", "writeable" +and "executable". The origin of a non-special segment is aligned to page +(4096 bytes). EOF diff --git a/LICENSE.TXT b/LICENSE.TXT index dc0764d..9f4dfbb 100644 --- a/LICENSE.TXT +++ b/LICENSE.TXT @@ -1,6 +1,6 @@ flat assembler version 1.73 -Copyright (c) 1999-2022, Tomasz Grysztar. +Copyright (c) 1999-2023, Tomasz Grysztar. All rights reserved. This program is free for commercial and non-commercial use as long as diff --git a/SOURCE/EXPRCALC.INC b/SOURCE/EXPRCALC.INC index ff52c27..2bb5b82 100644 --- a/SOURCE/EXPRCALC.INC +++ b/SOURCE/EXPRCALC.INC @@ -1327,7 +1327,7 @@ get_dword_value: cmp edx,[edi+4] jne range_exceeded mov ecx,edx - shr ecx,31 + sar ecx,31 cmp cl,[value_sign] jne range_exceeded ret diff --git a/SOURCE/EXPRPARS.INC b/SOURCE/EXPRPARS.INC index d2ecbb4..2863946 100644 --- a/SOURCE/EXPRPARS.INC +++ b/SOURCE/EXPRPARS.INC @@ -519,18 +519,14 @@ get_number: get_fp_value: push edi esi - lods byte [esi] - cmp al,1Ah - je fp_value_start - cmp al,'-' - je fp_sign_ok - cmp al,'+' - jne not_fp_value - fp_sign_ok: - lods byte [esi] - cmp al,1Ah - jne not_fp_value fp_value_start: + lods byte [esi] + cmp al,'-' + je fp_value_start + cmp al,'+' + je fp_value_start + cmp al,1Ah + jne not_fp_value lods byte [esi] movzx ecx,al cmp cl,1 @@ -598,14 +594,15 @@ get_fp_value: or ah,ah jz not_fp_value pop esi - lods byte [esi] mov [fp_sign],0 + fp_get_sign: + lods byte [esi] cmp al,1Ah je fp_get - inc esi cmp al,'+' - je fp_get - mov [fp_sign],1 + je fp_get_sign + xor [fp_sign],1 + jmp fp_get_sign fp_get: lods byte [esi] movzx ecx,al diff --git a/SOURCE/FORMATS.INC b/SOURCE/FORMATS.INC index dd7a4af..821175f 100644 --- a/SOURCE/FORMATS.INC +++ b/SOURCE/FORMATS.INC @@ -739,6 +739,7 @@ make_stub: call lseek movzx ecx,word [esi+4] dec ecx + js out_of_memory shl ecx,9 movzx edx,word [esi+2] test edx,edx diff --git a/SOURCE/VERSION.INC b/SOURCE/VERSION.INC index 7472b76..6ec11dd 100644 --- a/SOURCE/VERSION.INC +++ b/SOURCE/VERSION.INC @@ -1,6 +1,6 @@ ; flat assembler version 1.73 -; Copyright (c) 1999-2022, Tomasz Grysztar. +; Copyright (c) 1999-2023, Tomasz Grysztar. ; All rights reserved. ; ; This programs is free for commercial and non-commercial use as long as @@ -33,7 +33,7 @@ ; cannot simply be copied and put under another distribution licence ; (including the GNU Public Licence). -VERSION_STRING equ "1.73.30" +VERSION_STRING equ "1.73.31" VERSION_MAJOR = 1 VERSION_MINOR = 73 diff --git a/WHATSNEW.TXT b/WHATSNEW.TXT index 57ceb4b..c371754 100644 --- a/WHATSNEW.TXT +++ b/WHATSNEW.TXT @@ -2,6 +2,15 @@ Visit http://flatassembler.net/ for more information. +version 1.73.31 (Jul 12, 2023) + +[+] Handling multiple sign characters before a floating-point value. + +[-] Corrected an issue with negative offsets for some relocatable addresses. + +[-] Fixed a potential crash in external stub processor for PE. + + version 1.73.30 (Feb 21, 2022) [-] No longer signal an error when there is no line to concatenate with "\".