[BACK]Return to alpha.asm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / tune

Diff for /OpenXM_contrib/gmp/tune/Attic/alpha.asm between version 1.1 and 1.1.1.2

version 1.1, 2000/09/09 14:13:19 version 1.1.1.2, 2003/08/25 16:06:38
Line 1 
Line 1 
 dnl  Alpha time stamp counter access routine.  dnl  Alpha time stamp counter access routine.
   
 dnl  Copyright (C) 2000 Free Software Foundation, Inc.  dnl  Copyright 2000 Free Software Foundation, Inc.
 dnl  dnl
 dnl  This file is part of the GNU MP Library.  dnl  This file is part of the GNU MP Library.
 dnl  dnl
Line 24  include(`../config.m4')
Line 24  include(`../config.m4')
   
 C void speed_cyclecounter (unsigned int p[2]);  C void speed_cyclecounter (unsigned int p[2]);
 C  C
   
   C The rpcc instruction returns a 64-bit value split into two 32-bit fields.
   C The lower 32 bits are set by the hardware, and the upper 32 bits are set
   C by the operating system.  The real per-process cycle count is the sum of
   C these halves.
   
   C Unfortunately, some operating systems don't get this right.  NetBSD 1.3 is
   C known to sometimes put garbage in the upper half.  Whether newer NetBSD
   C versions get it right, is unknown to us.
   
 C rpcc measures cycles elapsed in the user program and hence should be very  C rpcc measures cycles elapsed in the user program and hence should be very
 C accurate even on a busy system.  Losing cache contents due to task  C accurate even on a busy system.  Losing cache contents due to task
 C switching may have an effect though.  C switching may have an effect though.
Line 31  C switching may have an effect though.
Line 41  C switching may have an effect though.
 ASM_START()  ASM_START()
 PROLOGUE(speed_cyclecounter)  PROLOGUE(speed_cyclecounter)
         rpcc    r0          rpcc    r0
           srl     r0,32,r1
           addq    r1,r0,r0
         stl     r0,0(r16)          stl     r0,0(r16)
         srl     r0,32,r0          stl     r31,4(r16)              C zero upper return word
         stl     r0,4(r16)  
         ret     r31,(r26),1          ret     r31,(r26),1
 EPILOGUE(speed_cyclecounter)  EPILOGUE(speed_cyclecounter)
 ASM_END()  ASM_END()

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>