aboutsummaryrefslogtreecommitdiffstats
path: root/dos
diff options
context:
space:
mode:
authorhpa <hpa>2004-12-18 22:31:47 +0000
committerhpa <hpa>2004-12-18 22:31:47 +0000
commit5e9b05475246cd32b5c6d4a79b3f1817b92b7bce (patch)
treeeb4a4e5642e4db3381909630e33be7206554fea2 /dos
parent95e8ab8831926b37da94364f1fed78939eb9088a (diff)
downloadsyslinux-devel-5e9b05475246cd32b5c6d4a79b3f1817b92b7bce.tar.gz
syslinux-devel-5e9b05475246cd32b5c6d4a79b3f1817b92b7bce.tar.xz
syslinux-devel-5e9b05475246cd32b5c6d4a79b3f1817b92b7bce.zip
Fix dec/hex bug in crt0.S; do -msoft-float just in case
Diffstat (limited to 'dos')
-rw-r--r--dos/Makefile2
-rw-r--r--dos/crt0.S12
2 files changed, 9 insertions, 5 deletions
diff --git a/dos/Makefile b/dos/Makefile
index 37b6f9b8..5b58af0a 100644
--- a/dos/Makefile
+++ b/dos/Makefile
@@ -3,7 +3,7 @@ LD = ld -m elf_i386
OBJCOPY = objcopy
OPTFLAGS = -g -Os -march=i386 -falign-functions=0 -falign-jumps=0 -falign-loops=0 -fomit-frame-pointer
INCLUDES = -include code16.h -I. -I.. -I../libfat
-CFLAGS = -W -Wall -ffreestanding $(OPTFLAGS) $(INCLUDES)
+CFLAGS = -W -Wall -ffreestanding -msoft-float $(OPTFLAGS) $(INCLUDES)
LDFLAGS = -T com16.ld
AR = ar
RANLIB = ranlib
diff --git a/dos/crt0.S b/dos/crt0.S
index 1052100a..9d0b2f88 100644
--- a/dos/crt0.S
+++ b/dos/crt0.S
@@ -1,5 +1,9 @@
.code16
+#ifndef REGPARM
+# error "This file assumes -mregparm=3 -DREGPARM=3"
+#endif
+
.section ".init","ax"
.globl _start
.type _start,@function
@@ -16,11 +20,11 @@ _start:
shrw $2,%cx
rep ; stosl
- # Compute argc and argv
+ # Compute argc and argv (assumes REGPARM)
xorl %edx,%edx
- movzbw 80,%bx
- movb %dl,81(%bx) # Zero-terminate string
- movb $81,%dl
+ movzbw 0x80,%bx
+ movb %dl,0x81(%bx) # Zero-terminate string
+ movb $0x81,%dl
pushl %eax # Make space for argv
movl %esp,%eax
calll __parse_argv