# HG changeset patch # User Pascal Bellard # Date 1608021710 0 # Node ID e07718b42e735966efa247e130f8207cda4ca558 # Parent 34d90fb03f57d1f5946522ae65993c83d5251ab5 linld: no initrd fix diff -r 34d90fb03f57 -r e07718b42e73 linld/stuff/src/LINLD.CPP --- a/linld/stuff/src/LINLD.CPP Sat Dec 12 17:26:44 2020 +0000 +++ b/linld/stuff/src/LINLD.CPP Tue Dec 15 08:41:50 2020 +0000 @@ -60,11 +60,9 @@ // Parse command line #ifdef USE_ARGSTR - if (!argv[1]) syntax(); + if (!*++argv) syntax(); const char **clp = &cmdline; - for (;;) { - argv++; - if (!*argv) break; + do { if ((*(u16 *)*argv|2) == 0x362F) { // -64 /64 if (cpuhaslm() == 0) exit(); continue; @@ -83,7 +81,7 @@ } *clp = (const char *) buf_cmdline + 1; strcatb((const char *) buf_cmdline,*argv); - } + } while (*++argv); puts(*clp); set_cmdline(*clp); load_kernel(); diff -r 34d90fb03f57 -r e07718b42e73 linld/stuff/src/pipehole.awk --- a/linld/stuff/src/pipehole.awk Sat Dec 12 17:26:44 2020 +0000 +++ b/linld/stuff/src/pipehole.awk Tue Dec 15 08:41:50 2020 +0000 @@ -22,6 +22,8 @@ if (/add si,2/) $0=" lodsw ; " $0 if (/add di,2/) $0=" scasw ; " $0 if (/bx,offset DGROUP:s@\+26/) sub(/mov/,";mov") + if (/bx,si/ || /\[bp-2\]/) next + sub(/\[bx\],0/,"[si],0") if (islinld==1) { print "; " $0 if (!/word ptr/) next @@ -228,7 +230,7 @@ } if (/void load_initrd\(\)/) isload=3 if (isload == 3) { # LOAD.LST - if (/short @2@198/) sub(/@2@198/,"load_initrd_ret") + if (/je short @2@.*/) sub(/@2@.*/,"load_initrd_ret") if (/mov ax,word ptr \[si\]/) $0=" lodsw" if( /jmp/) { print "load_initrd_ret:"