Message-ID: From: "Andris Pavenis" To: djgpp-workers AT delorie DOT com Date: Mon, 25 Jan 1999 19:19:05 +0200 MIME-Version: 1.0 Content-type: Multipart/Mixed; boundary=Message-Boundary-26288 Subject: Some inline assembler related patches to djdev202 and djlsr202 CC: dj AT delorie DOT com X-mailer: Pegasus Mail for Win32 (v3.01d) Reply-To: djgpp-workers AT delorie DOT com --Message-Boundary-26288 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body Hi! I tried to build latest weekly binutils snapshot (990120) for DJGPP with configure option --enable-bfd-assembler (binutils-2.9.1 is broken if built with this option). As result some things in djdev202 and djlsr202 appeared: - length suffix were wrong in some places (eg. in include/sys/segments.h); - latest snapshots of AS no more recognizes argument length suffix for floating point opcerations that doesn't have memory operand (eg. fld1). I think such suffix is useless there anyway. I tested that these changes doers not break building djlsr202 also with binutils-2.8.1. Andris --Message-Boundary-26288 Content-type: text/plain; charset=US-ASCII Content-disposition: inline Content-description: Attachment information. The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: djgpp202-upd-990125.diff Date: 25 Jan 1999, 18:41 Size: 3489 bytes. Type: Text --Message-Boundary-26288 Content-type: Application/Octet-stream; name="djgpp202-upd-990125.diff"; type=Text Content-disposition: attachment; filename="djgpp202-upd-990125.diff" *** src/libc/ansi/math/exp.S~1 Wed Nov 23 05:18:22 1994 --- src/libc/ansi/math/exp.S Mon Jan 25 17:58:40 1999 *************** *** 20,26 **** andw $0xf3ff,LCW2 orw $0x0400,LCW2 fldcww LCW2 ! fldl %st(0) frndint fldcww LCW1 fxch %st(1) --- 20,26 ---- andw $0xf3ff,LCW2 orw $0x0400,LCW2 fldcww LCW2 ! fld %st(0) frndint fldcww LCW1 fxch %st(1) *** src/libc/ansi/math/fmod.S~1 Wed Nov 23 05:08:34 1994 --- src/libc/ansi/math/fmod.S Mon Jan 25 18:02:10 1999 *************** *** 15,28 **** fxch %st(1) sahf jnz next ! fstpl %st(0) jmp out next: ! fpreml fnstsw %ax sahf jpe next ! fstpl %st(1) out: ret --- 15,28 ---- fxch %st(1) sahf jnz next ! fstp %st(0) jmp out next: ! fprem fnstsw %ax sahf jpe next ! fstp %st(1) out: ret *** src/libc/ansi/math/pow2.S~1 Sun Oct 1 16:19:24 1995 --- src/libc/ansi/math/pow2.S Mon Jan 25 18:04:52 1999 *************** *** 18,24 **** andw $0xf3ff,LCW2 orw $0x0400,LCW2 fldcww LCW2 ! fldl %st(0) frndint fldcww LCW1 fxch %st(1) --- 18,24 ---- andw $0xf3ff,LCW2 orw $0x0400,LCW2 fldcww LCW2 ! fld %st(0) frndint fldcww LCW1 fxch %st(1) *** src/libc/ansi/math/pow.S~1 Wed Nov 23 05:17:44 1994 --- src/libc/ansi/math/pow.S Mon Jan 25 18:04:10 1999 *************** *** 18,24 **** andw $0xf3ff,LCW2 orw $0x0400,LCW2 fldcww LCW2 ! fldl %st(0) frndint fldcww LCW1 fxch %st(1) --- 18,24 ---- andw $0xf3ff,LCW2 orw $0x0400,LCW2 fldcww LCW2 ! fld %st(0) frndint fldcww LCW1 fxch %st(1) *************** *** 52,65 **** ja ygtz jb error fstp %st(0) ! fld1l fchs error: fsqrt ret ygtz: fstp %st(0) ! fldzl ret xltz: fabs --- 52,65 ---- ja ygtz jb error fstp %st(0) ! fld1 fchs error: fsqrt ret ygtz: fstp %st(0) ! fldz ret xltz: fabs *** src/libc/emu387/fpu.S~1 Sat Apr 22 01:48:32 1995 --- src/libc/emu387/fpu.S Mon Jan 25 18:22:02 1999 *************** *** 37,43 **** wait andw $0x0fffa,(%esi) /* enable invalid operation exception */ fldcw (%esi) ! movw $1,%eax jmp Lexit Lno_387: xorl %eax,%eax --- 37,43 ---- wait andw $0x0fffa,(%esi) /* enable invalid operation exception */ fldcw (%esi) ! movl $1,%eax jmp Lexit Lno_387: xorl %eax,%eax *** include/sys/segments.h~1 Sun Jun 28 22:13:52 1998 --- include/sys/segments.h Mon Jan 25 18:38:48 1999 *************** *** 17,23 **** _my_cs(void) { unsigned short result; ! __asm__("movl %%cs,%0" : "=r" (result)); return result; } --- 17,23 ---- _my_cs(void) { unsigned short result; ! __asm__("movw %%cs,%0" : "=r" (result)); return result; } *************** *** 25,31 **** _my_ds(void) { unsigned short result; ! __asm__("movl %%ds,%0" : "=r" (result)); return result; } --- 25,31 ---- _my_ds(void) { unsigned short result; ! __asm__("movw %%ds,%0" : "=r" (result)); return result; } *************** *** 33,39 **** _my_ss(void) { unsigned short result; ! __asm__("movl %%ss,%0" : "=r" (result)); return result; } --- 33,39 ---- _my_ss(void) { unsigned short result; ! __asm__("movw %%ss,%0" : "=r" (result)); return result; } --Message-Boundary-26288--