Skip to content

Commit

Permalink
v2.14
Browse files Browse the repository at this point in the history
  • Loading branch information
Baron-von-Riedesel committed Dec 20, 2020
1 parent f646bff commit 6292844
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 10 deletions.
6 changes: 3 additions & 3 deletions History.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Changelog

__/__/2020, v2.14:
20.12.2020, v2.14:

Bugfixes:
- regression in v2.13: if a not yet defined segment was added to a group,
Expand All @@ -21,8 +21,6 @@
ended with an error.
- some errors occured in LP64 systems (linux, unix) because LONG_MAX and
LONG_MIN were used inadequately.
- DJGPP: djgpp apparently doesn't know "_stat", needs "stat" instead; see
omf.c
- 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
Expand All @@ -36,6 +34,8 @@
- 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 <xxx> 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 )
Expand Down
2 changes: 1 addition & 1 deletion Html/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
OUTD=Win32
hc_hh = "\HTMLHelp\hhc.exe"

.EXTENSIONS: .chm .chi
#.EXTENSIONS: .chm .chi

$(OUTD)\JWasm.chm $(OUTD)\JWasm.chi : $(OUTD)\Jwasm.hhc $(OUTD)\Jwasm.hhk $(OUTD)\Jwasm.hhp
@cd $(OUTD)
Expand Down
7 changes: 7 additions & 0 deletions Html/Manual.html
Original file line number Diff line number Diff line change
Expand Up @@ -5581,6 +5581,13 @@ <H1 ID="AC"> Appendix C. Errors and Warnings </H1>
The resulting MZ binary won't run without further modification, i.e. adding a DOS-extender stub.</TD>
</TR>

<TR BGCOLOR="#F0F0F0">
<TD><b>x278</b></TD>
<TD>ADDR32 fixup to '&lt;symbol&gt;' at location &lt;segment&gt;.&lt;offset&gt;</TD>
<TD>64-bit PE format only: a 32-bit fixup was detected, but base address is above or equal 0x80000000.
</TD>
</TR>

</TABLE>

<H1 ID="AD"> Appendix D. Differences between Masm 6 and Masm 8 </H1>
Expand Down
4 changes: 2 additions & 2 deletions Html/Readme.html
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,8 @@
OWOS2.mak Open Watcom v1.8-v1.9 OS/2 (32-bit)
OWLinux.mak Open Watcom v1.8-v1.9 Linux
OWWinDll.mak Open Watcom v1.8-v1.9 Win32 (JWasm.dll)
Msvc.mak VC++ TK 2003/VC++ 2008 EE Win32 [, DOS (32-bit)]
Msvc64.mak VC++ 2010 Win64
Msvc.mak VC++ 2003-2019 Win32 [, DOS (32-bit)]
Msvc64.mak VC++ 2019 Win64
MsvcDll.mak VC++ TK 2003 Win32 (JWasm.dll)
GccWin.mak GCC, MinGW/Cygwin Win32
GccWin64.mak GCC, MinGW-w64 Win64
Expand Down
2 changes: 1 addition & 1 deletion src/H/globals.h
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ char *strupr(char *);
/* JWasm version info */
#define _JWASM_VERSION_STR_ "2.14"
#define _JWASM_VERSION_INT_ 214
#define _JWASM_VERSION_SUFFIX_ "pre"
#define _JWASM_VERSION_SUFFIX_ ""
#define _JWASM_VERSION_ _JWASM_VERSION_STR_ _JWASM_VERSION_SUFFIX_

#define NULLC '\0'
Expand Down
2 changes: 1 addition & 1 deletion src/codegen.c
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ static ret_code match_phase_3( struct code_info *CodeInfo, enum operand_type opn
CodeInfo->pinstr++;
} while ( opnd_clstab[CodeInfo->pinstr->opclsidx].opnd_type[OPND1] == determinant && CodeInfo->pinstr->first == FALSE );
CodeInfo->pinstr--; /* pointer will be increased in codegen() */
DebugMsg(("match_phase_3: returns EMPTY\n"));
DebugMsg1(("match_phase_3: returns EMPTY\n"));
return( ERROR );
}

Expand Down
12 changes: 10 additions & 2 deletions src/parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -920,6 +920,10 @@ ret_code idata_fixup( struct code_info *CodeInfo, unsigned CurrOpnd, struct expr

if ( opndx->Ofssize != USE_EMPTY ) {
Ofssize = opndx->Ofssize;
} else if( opndx->sym == NULL ) { /* v2.15: branch added */
SetSegOverride( opndx, NULL );
if ( SegOverride )
Ofssize = GetSymOfssize( SegOverride );
} else if( ( opndx->sym->state == SYM_SEG )
|| ( opndx->sym->state == SYM_GRP )
|| ( opndx->instr == T_SEG ) ) {
Expand Down Expand Up @@ -1071,8 +1075,10 @@ ret_code idata_fixup( struct code_info *CodeInfo, unsigned CurrOpnd, struct expr
/* anything what might look better at first glance */
if( opndx->mem_type != MT_EMPTY )
CodeInfo->mem_type = opndx->mem_type;
/* v2.15: check for sym==NULL */
/* v2.04: assume BYTE size if symbol is undefined */
else if ( opndx->sym->state == SYM_UNDEFINED ) {
//else if ( opndx->sym->state == SYM_UNDEFINED ) {
else if ( opndx->sym && opndx->sym->state == SYM_UNDEFINED ) {
CodeInfo->mem_type = MT_BYTE;
fixup_option = OPTJ_PUSH;
} else
Expand Down Expand Up @@ -1830,7 +1836,9 @@ static ret_code process_address( struct code_info *CodeInfo, unsigned CurrOpnd,
} else if( opndx->instr != EMPTY ) {
/* instr is OFFSET | LROFFSET | SEG | LOW | LOWWORD, ... */
DebugMsg1(("process_address: instr=%s\n", GetResWName( opndx->instr, NULL ) ));
if( opndx->sym == NULL ) { /* better to check opndx->type? */
/* v2.15 create fixup if override is given */
//if( opndx->sym == NULL ) { /* better to check opndx->type? */
if( opndx->sym == NULL && ( opndx->override == NULL || opndx->override->token == T_REG )) {
return( idata_nofixup( CodeInfo, CurrOpnd, opndx ) );
} else {
/* allow "lea <reg>, [offset <sym>]" */
Expand Down

0 comments on commit 6292844

Please sign in to comment.