Date: Sat, 23 Dec 1995 23:43:35 -0500 (EST) From: "Jonathan M. Bresler" <jmb@freebsd.org> To: Torbjorn Granlund <tege@matematik.su.se> Cc: michael butler <imb@scgt.oz.au>, Torbjorn Granlund <tege@matematik.su.se>, freebsd-hackers@freebsd.org Subject: Re: Pentium bcopy 486DX-66 results Message-ID: <Pine.BSF.3.91.951223233447.23830A-100000@Aspen.Woc.Atinc.COM> In-Reply-To: <199512240224.DAA26871@insanus.matematik.su.se>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 24 Dec 1995, Torbjorn Granlund wrote: > > I don't have any 486 systems, so I cannot tell for sure. Here is a simple > test program that you can use for timing tests: here are results using 2.1.0-RELEASE, a 486dx-66 with an asus sp3g motherboard and write-back cache discipline. Aspen:[45] ./a.out copy 8259 memcpy 8582 the results vary with the number of times in succession that i run the program ;) Once Twice Thrice 4th 5th 6th 7th copy 8259 6730 6709 6708 6706 6736 6695 memcpy 8582 7363 7605 7491 6667 6863 7819 i had to change the comment sytle on several lines to satisfy gas "GNU assembler version 1.92.3, FreeBSD $Revision: 1.4 $" the original produced: copy.s.orig: Assembler messages: copy.s.orig:13: Warning: Missing operand value assumed absolute 0. copy.s.orig:13: Error: Relocation error. Absolute 0 assumed. copy.s.orig:13: Error: Ignoring junk 'zero' after expression copy.s.orig:13: Error: Unimplemented segment type 0 in parse_operand copy.s.orig:17: Warning: Missing operand value assumed absolute 0. copy.s.orig:17: Error: Relocation error. Absolute 0 assumed. copy.s.orig:17: Error: Bad Absolute Expression, absolute 0 assumed. copy.s.orig:17: Error: Rest of line ignored. First ignored character is `0'. copy.s.orig:19: Error: Rest of line ignored. First ignored character is `*'. copy.s.orig:20: Error: no such opcode prefix ('nop') copy.s.orig:24: Warning: Missing operand value assumed absolute 0. copy.s.orig:24: Error: Relocation error. Absolute 0 assumed. copy.s.orig:24: Error: Ignoring junk 'words pairwise*/' after expression copy.s.orig:24: Error: Unimplemented segment type 131080 in parse_operand here is the diff -c2 (just changed '/*' to '#' on lines 13, 17, 24) *** copy.s.orig Sat Dec 23 23:25:25 1995 --- copy.s Sat Dec 23 23:33:59 1995 *************** *** 11,26 **** shrl $3,%ecx /* count for unrolled loop */ ! jz Lend /* if zero, skip unrolled loop */ movl (%edi),%eax /* Fetch destination cache line */ ! .align 2,0x90 /* supply 0x90 for broken assemblers */ ! Loop: movl 28(%edi),%eax /* allocate cache line for destination ! */ ! nop /* we want these two insn to pair! */ movl (%esi),%eax /* read words pairwise */ movl 4(%esi),%edx ! movl %eax,(%edi) /* store words pairwise */ movl %edx,4(%edi) --- 11,25 ---- shrl $3,%ecx /* count for unrolled loop */ ! jz Lend # if zero, skip unrolled loop */ movl (%edi),%eax /* Fetch destination cache line */ ! .align 2,0x90 # supply 0x90 for broken assemblers */ ! Loop: movl 28(%edi),%eax /* allocate cache line for destination */ ! nop # we want these two insn to pair! */ movl (%esi),%eax /* read words pairwise */ movl 4(%esi),%edx ! movl %eax,(%edi) # store words pairwise */ movl %edx,4(%edi) Jonathan M. Bresler FreeBSD Postmaster jmb@FreeBSD.ORG play go. ride bike. hack FreeBSD.--ah the good life i am moving to a new job. PLEASE USE: jmb@FreeBSD.ORG
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.951223233447.23830A-100000>