Update of /cvsroot/sbcl/sbcl/src/compiler/x86-64
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19319/src/compiler/x86-64
18.104.22.168: improved TIME output
* Print measured times using fixed-width decimal output with the
measured precision, instead of converting to floats for printing.
* Report processor cycle counts on x86 and x86-64.
** Since Intel doesn't seem to consider it necessary to issue a
CPUID both before and after RDTSC, maybe we don't need to do
** New feature, :CYCLE-COUNTER, for platforms that implement
* Instead of reporting %EVAL calls, report "interpreted forms", which means
both %EVAL and SIMPLE-EVAL-IN-LEXENV.
* Report "lambdas converted" for the compiler, not counting TL-XEPs.
* Report CPU percentage (computed from real and run time.)
* Report total run time separately. Condence run time output slightly
by reporting total, user, and system on the same line.
* Report non-GC time as well.
* Condence output by omitting page faults, converted lambdas, and
interpreted forms when they are zero.
RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86-64/system.lisp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- system.lisp 14 Mar 2008 20:10:18 -0000 1.9
+++ system.lisp 17 May 2008 11:02:29 -0000 1.10
@@ -336,14 +336,12 @@
(:result-types unsigned-num unsigned-num)
+ ;; Intel docs seem quite consistent on only using CPUID before RDTSC,
+ ;; not both before and after. Go figure.
- (inst push edx)
- (inst push eax)
- (zeroize eax)
- (inst cpuid)
- (inst pop lo)
- (inst pop hi)))
+ (move lo eax)
+ (move hi edx)))
(defmacro with-cycle-counter (&body body)
"Returns the primary value of BODY as the primary value, and the