Skip site navigation (1)Skip section navigation (2)
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>