Fix Borland C++ optimization bug; add test for bad DOS binaries.

This commit is contained in:
H. Peter Anvin 2002-09-12 04:33:58 +00:00
parent a607d27eb9
commit 628168c502
2 changed files with 15 additions and 2 deletions

@ -27,13 +27,14 @@
CC = bcc #compiler
# opimizations
OPTFLAGS = -d -O1 -Ogmpv -k-
OPTFLAGS = -d -O1 -Ogmp -k-
# -d = merge duplicate strings
# -O1 = optimize for size
# -Og = enable global common subexpression elimination
# -Om = enable loop invariant removal
# -Op = enable constant propagation
# -Ov = enable strength-reduction optimization
# ** WARNING: DO NOT ENABLE -Ov (strength reduction) ON BORLAND C++ 3.1 **
# ** NASM IS KNOWN TO MISCOMPILE WITH -Ov **
# -k- = omit stack frames where practical
#output formats
OUTFORMS = -DOF_ONLY -DOF_BIN -DOF_OBJ -DOF_WIN32 -DOF_AS86

12
test/testdos.asm Normal file

@ -0,0 +1,12 @@
;
; This file was known to miscompile with the 16-bit NASM built
; under Borland C++ 3.1, so keep it around for testing...
;
; The proper output looks like:
;
; 00000000 A10300
; 00000003 EA0000FFFF
;
org 0100h
mov ax,[3]
jmp 0FFFFh:0000