projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.29.38: better DESCRIBE
[sbcl.git]
/
src
/
compiler
/
x86
/
system.lisp
diff --git
a/src/compiler/x86/system.lisp
b/src/compiler/x86/system.lisp
index
ca691a8
..
c00907e
100644
(file)
--- a/
src/compiler/x86/system.lisp
+++ b/
src/compiler/x86/system.lisp
@@
-267,8
+267,7
@@
(:arg-types unsigned-num)
(:policy :fast-safe)
(:generator 2
(:arg-types unsigned-num)
(:policy :fast-safe)
(:generator 2
- (inst fs-segment-prefix)
- (inst mov sap (make-ea :dword :disp 0 :index n :scale 4))))
+ (inst mov sap (make-ea :dword :disp 0 :index n :scale 4) :fs)))
(define-vop (halt)
(:generator 1
(define-vop (halt)
(:generator 1
@@
-330,14
+329,12
@@
(:result-types unsigned-num unsigned-num)
(:generator 5
(inst xor eax eax)
(:result-types unsigned-num unsigned-num)
(:generator 5
(inst xor eax eax)
+ ;; Intel docs seem quite consistent on only using CPUID before RDTSC,
+ ;; not both before and after. Go figure.
(inst cpuid)
(inst rdtsc)
(inst cpuid)
(inst rdtsc)
- (inst push edx)
- (inst push eax)
- (inst xor eax 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
(defmacro with-cycle-counter (&body body)
"Returns the primary value of BODY as the primary value, and the