# HG changeset patch # User Pascal Bellard # Date 1546513463 -3600 # Node ID d3d2a15d3d0d0fc58742c0e6cd8eca585a7379c5 # Parent a60e1abe34967ef32517aa5fe3a8209b3f87b674 Up firefox-official (64.0), again diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-de/receipt --- a/firefox-official-de/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-de/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-de" lang="de" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (German language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-es/receipt --- a/firefox-official-es/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-es/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-es" lang="es-ES" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (Spanish language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-fr/receipt --- a/firefox-official-fr/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-fr/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-fr" lang="fr" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (French language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-it/receipt --- a/firefox-official-it/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-it/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-it" lang="it" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (Italian language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-pt-BR/receipt --- a/firefox-official-pt-BR/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-pt-BR/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-pt-BR" lang="pt-BR" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (Portuguese (Brazil) language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-ru/receipt --- a/firefox-official-ru/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-ru/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-ru" lang="ru" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (Russian language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d firefox-official-uk/receipt --- a/firefox-official-uk/receipt Wed Jan 02 19:57:20 2019 -0500 +++ b/firefox-official-uk/receipt Thu Jan 03 12:04:23 2019 +0100 @@ -2,7 +2,7 @@ PACKAGE="firefox-official-uk" lang="uk" -VERSION="62.0.3" +VERSION="64.0" CATEGORY="network" SHORT_DESC="Official Firefox build by the Mozilla foundation (Ukrainian language)" MAINTAINER="al.bobylev@gmail.com" diff -r a60e1abe3496 -r d3d2a15d3d0d linld/stuff/src/!COMPILE.BAT --- a/linld/stuff/src/!COMPILE.BAT Wed Jan 02 19:57:20 2019 -0500 +++ b/linld/stuff/src/!COMPILE.BAT Thu Jan 03 12:04:23 2019 +0100 @@ -10,5 +10,5 @@ mawk -f pipehole.awk LINLD.ASO > LINLD.ASM mawk -f pipehole.awk LOAD.ASO > LOAD.ASM mawk -f pipehole.awk HIMEM.ASO > HIMEM.ASM -tasm /la /m /dLARGE_IMAGES *.asm > asm.log +tasm /la /m /dLARGE_IMAGES /dLONG_FILENAME *.asm > asm.log tlink /m /s /t @link.cmd > lnk.log diff -r a60e1abe3496 -r d3d2a15d3d0d linld/stuff/src/!COMPILEX.BAT --- a/linld/stuff/src/!COMPILEX.BAT Wed Jan 02 19:57:20 2019 -0500 +++ b/linld/stuff/src/!COMPILEX.BAT Thu Jan 03 12:04:23 2019 +0100 @@ -9,5 +9,5 @@ mawk -f pipehole.awk LOAD.ASO > LOAD.ASM mawk -f pipehole.awk HIMEM.ASO > HIMEM.ASM mawk -f pipehole.awk ISO9660.ASO > ISO9660.ASM -tasm /la /m /dEXTRA /dNO386 /dLARGE_IMAGES *.asm > asm.log +tasm /la /m /dEXTRA /dNO386 /dLARGE_IMAGES /dLONG_FILENAME *.asm > asm.log tlink /m /s /t @linkx.cmd > lnk.log diff -r a60e1abe3496 -r d3d2a15d3d0d linld/stuff/src/CRTL.ASM --- a/linld/stuff/src/CRTL.ASM Wed Jan 02 19:57:20 2019 -0500 +++ b/linld/stuff/src/CRTL.ASM Thu Jan 03 12:04:23 2019 +0100 @@ -48,9 +48,9 @@ segment _TEXT byte public use16 'CODE' ;*************************************************************** -;_fastcall void strcpy(const char* a, const char* b); -;_fastcall void strcat(const char* a, const char* b); -;_fastcall void strcatb(const char* a, const char* b); +;_fastcall void strcpy(bx:const char* a, ax:const char* b); +;_fastcall void strcat(bx:const char* a, ax:const char* b); +;_fastcall void strcatb(bx:const char* a, ax:const char* b); ;*************************************************************** global @strcatb$qpxzct1:near proc @strcatb$qpxzct1 near @@ -67,19 +67,19 @@ xor cx,cx endif push si - mov si,bx ; a - xchg ax,dx ; b + xchg ax,bx ; b + xchg ax,si ; a ifdef EXTRA jcxz @@nocat endif @@catlp: - lodsb + lodsb ; a=si or al,al jne @@catlp dec si ifdef EXTRA - cmp dx,si - adc al,cl ; set S when dx != si or cl = 80 + cmp bx,si + adc al,cl ; set S when bx != si or cl = 80 mov al,20h jns @@cpyhead endif @@ -104,7 +104,7 @@ ifdef EXTRA p8086 ;*************************************************************** -;_fastcall char strstr(const char* a,const char* b); +;_fastcall char strstr(bx:const char* a, ax:const char* b); ;*************************************************************** global @strstr$qpxzct1:near proc @strstr$qpxzct1 near @@ -132,7 +132,7 @@ ;*************************************************************** -;_fastcall int strcmp(const char* a,const char* b); +;_fastcall int strcmp(bx:const char* a, ax:const char* b); ;*************************************************************** global @strcmp$qpxzct1:near proc @strcmp$qpxzct1 near @@ -145,7 +145,7 @@ lodsb sub al,[bx] jnz @@out - or al,al + or al,[bx] jnz @@lp @@out: cbw @@ -157,7 +157,7 @@ ;*************************************************************** -;_fastcall void puts(const char* s): +;_fastcall void puts(bx:const char* s): ;*************************************************************** global @puts$qpxzc:near proc @puts$qpxzc near @@ -181,7 +181,7 @@ ;*************************************************************** -;_fastcall int fileattr(const char* name); +;_fastcall int fileattr(bx:const char* name); ;*************************************************************** global @fileattr$qpxzc:near proc @fileattr$qpxzc near @@ -195,7 +195,7 @@ ;*************************************************************** -;_fastcall int open(const char* name, int flags=O_RDONLY); +;_fastcall int open(bx:const char* name, int flags=O_RDONLY); ;*************************************************************** global openargs:near ; openargs(bx) openargs: @@ -209,6 +209,18 @@ global open:near ; open(bx) open: + ifdef LONG_FILENAME + mov ax,716Ch + push bx si di + mov di,di ; alias hint + mov si,bx + xor bx,bx ; R/O + xor cx,cx ; attributes + cwd ; action = open + int 21h + pop di si bx + jnc doret + endif mov ax,3d00h ; read-only+compatibility ;mov cl,0 ; attribute mask dos_filename: @@ -232,7 +244,7 @@ ;*************************************************************** -;_fastcall int close(int fd); +;_fastcall int close(ax:int fd); ;*************************************************************** global @close$qi:near proc @close$qi near @@ -249,8 +261,8 @@ ;*************************************************************** -;_fastcall int read(int fd, void* data, int sz); -;_fastcall int write(int fd, const void* data, int sz); +;_fastcall int read(ax:int fd, bx:void* data, dx:int sz); +;_fastcall int write(ax:int fd, bx:const void* data, dx:int sz); ;*************************************************************** global @read$qipvi:near proc @read$qipvi near @@ -279,8 +291,8 @@ endp @read$qipvi ;*************************************************************** -;_fastcall long lseekset(int fd, unsigned whence); -;_fastcall long lseekcur(int fd, int whence); +;_fastcall long lseekset(ax:int fd, dx:unsigned whence); +;_fastcall long lseekcur(ax:int fd, dx:int whence); ;*************************************************************** global @lseekcur$qii:near ; fd=ax whence=dx @@ -333,7 +345,7 @@ buffer db 2560 dup(?) ;28 char buffer[2048+512]; ends ; } isostate; ;*************************************************************** -;_fastcall long isolseek(const unsigned long *offset); +;_fastcall long isolseek(bx:const unsigned long *offset); ;*************************************************************** global @isolseek$qpxul:near proc @isolseek$qpxul near @@ -348,7 +360,7 @@ endp @isolseek$qpxul ;*************************************************************** -;_fastcall int isoreadsector(const unsigned long *offset); +;_fastcall int isoreadsector(bx:const unsigned long *offset); ;*************************************************************** global @isoreadsector$qpxul:near proc @isoreadsector$qpxul near @@ -372,7 +384,7 @@ ;*************************************************************** -;_fastcall int strhead(const char* a,const char* b); +;_fastcall int strhead(bx:const char* a, ax:const char* b); ;*************************************************************** global @strhead$qpxzct1:near proc @strhead$qpxzct1 near @@ -394,7 +406,7 @@ ;*************************************************************** -;_fastcall char* malloc_or_die(unsigned size); +;_fastcall char* malloc_or_die(ax:unsigned size); ;*************************************************************** global @malloc_or_die$qui:near proc @malloc_or_die$qui near @@ -416,7 +428,7 @@ ;*************************************************************** -;_fastcall int die(const char* msg); +;_fastcall int die(bx:const char* msg); ;int exit(); ;int abort(); ;*************************************************************** @@ -461,7 +473,7 @@ ends ;}; ;*************************************************************** -;long next_chunk(struct image_himem *di); +;static long next_chunk(struct image_himem *di); ;*************************************************************** proc next_chunk near @@ -537,7 +549,7 @@ endif ;*************************************************************** -;_fastcall u32* malloc_bufv_or_die(struct image_himem *m); +;_fastcall u32* malloc_bufv_or_die(bx:struct image_himem *m); ;*************************************************************** global @malloc_bufv_or_die$qp11image_himem:near proc @malloc_bufv_or_die$qp11image_himem near @@ -657,7 +669,7 @@ ;*************************************************************** -;_fastcall void memcpy_image(struct image_himem *m); +;_fastcall void memcpy_image(bx:struct image_himem *m); ;*************************************************************** global @memcpy_image$qp11image_himem:near proc @memcpy_image$qp11image_himem near @@ -718,7 +730,7 @@ endp @memcpy_image$qp11image_himem ;*************************************************************** -;_fastcall void storepage(u32 *dst); +;_fastcall void storepage(bx:u32 *dst); ;*************************************************************** global @storepage$qpul:near proc @storepage$qpul near @@ -753,7 +765,7 @@ ifdef LARGE_IMAGES p386 ;*************************************************************** -;_fastcall void reset_bufv(u32 *p); +;_fastcall void reset_bufv(bx:u32 *p); ;*************************************************************** global @reset_bufv$qpul:near proc @reset_bufv$qpul near @@ -827,7 +839,7 @@ endif ;*************************************************************** -;_fastcall void open_image(const char *name, struct image_himem *m); +;_fastcall void open_image(bx:const char *name, ax:struct image_himem *m); ;*************************************************************** global @open_image$qpxzcp11image_himem:near proc @open_image$qpxzcp11image_himem near @@ -871,7 +883,7 @@ ;*************************************************************** -;_fastcall int read_image(struct image_himem *m); +;_fastcall int read_image(bx:struct image_himem *m); ;*************************************************************** global @read_image$qp11image_himem:near proc @read_image$qp11image_himem near @@ -1220,7 +1232,7 @@ ;*************************************************************** -;_fastcall void chdirname(char *path) +;_fastcall void chdirname(bx:char *path) ;*************************************************************** global @chdirname$qpzc:near proc @chdirname$qpzc near @@ -1250,11 +1262,13 @@ mov bx,dx push [word bx] mov [bx],al + ifdef LONG_FILENAME stc mov ax,713Bh ; chdir long filename (ds:dx) int 21h + jnc @@chdirdone + endif mov ah,3Bh ; chdir(ds:dx) - jnc @@chdirdone int 21h @@chdirdone: pop [word bx] @@ -1265,7 +1279,7 @@ ;*************************************************************** -;_fastcall char *ultoa(unsigned long n); +;_fastcall char *ultoa(axdx:unsigned long n); ;*************************************************************** global @ultoa$qul:near proc @ultoa$qul near @@ -1296,7 +1310,7 @@ ;*************************************************************** -;_fastcall unsigned long kver2ul(char *kernel_version); +;_fastcall unsigned long kver2ul(bx:char *kernel_version); ;*************************************************************** global @kver2ul$qpzc:near proc @kver2ul$qpzc near @@ -1331,7 +1345,6 @@ ;*************************************************************** ;void try_default_args(); -;_fastcall void set_cmdline(const char *filename); ;*************************************************************** ifdef EXTRA diff -r a60e1abe3496 -r d3d2a15d3d0d linld/stuff/src/pipehole.awk --- a/linld/stuff/src/pipehole.awk Wed Jan 02 19:57:20 2019 -0500 +++ b/linld/stuff/src/pipehole.awk Thu Jan 03 12:04:23 2019 +0100 @@ -21,7 +21,11 @@ hold=5; next } } - if (/^ mov cl,4$/) { hold=8; next } + if (/^ mov ax,cs$/) { hold=6; kept=0; next } + if (/^ mov cl,4$/) { hold=7; next } + if (/^ cmp word ptr DGROUP:.*,0$/) { + hold=8; split($2,regs,","); next + } } else if (hold == 1) { if (/^ ;/) { line[kept++]=$0; next } @@ -30,9 +34,9 @@ if ($1 == "sub") op="-" if (op != "" && regs[1] == args[1]) { if (isnum(args[2])) { - print "\tlea\t" regs[1] ",[" regs[2] op args[2] "]" - for (i = 0; i < kept; i++) print line[i]; kept=0 - next + for (i = kept++; i > 0; i--) line[i] = line[i-1] + line[0] = "\tlea\t" regs[1] ",[" regs[2] op args[2] "]" + hold=10; next } line[kept++]=$0 hold=1 @@ -74,7 +78,21 @@ } print s } - else if (hold == 8) { + else if (hold == 6) { + if (($1 == "and" || $1 == "add") && $2 ~ /^ax,/) { + line[kept++]=$0 + next + } + p=$0 + if (/^ movzx eax,ax$/) { + s=" mov eax,cs"; p="" + } + print s + for (i = 0; i < kept; i++) print line[i]; kept=0 + if (p != "") print p + hold=0; next + } + else if (hold == 7) { hold=0 if (/^ call near ptr N_LXURSH@$/) { print " extrn N_LXURSH@4:near" @@ -88,6 +106,29 @@ } print s } + else if (hold == 8) { + if ($1 == "je" || $1 == "jne") { p=$0; hold=9; next } + hold=0 + print s + } + else if (hold == 9) { + hold=0; split($2,args,",") + if (/^ mov ax,/ && args[2] == regs[1]) { + print; print " or ax,ax"; print p; next + } + print s; print p; + } + else if (hold == 10) { + hold=0 + if (/^ mov [sd]i,ax$/) { + split($2,args,",") + for (i = 0; i < kept; i++) { + sub(/ax/,args[1],line[i]); print line[i] + } + next + } + for (i = 0; i < kept; i++) print line[i] + } s=$0 # These optimisation may break ZF or CF if (/^ sub sp,2$/) { print " push ax"; next }