projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git: New file doc/internals/.gitignore.
[sbcl.git]
/
src
/
compiler
/
x86-64
/
macros.lisp
diff --git
a/src/compiler/x86-64/macros.lisp
b/src/compiler/x86-64/macros.lisp
index
e77d9c1
..
2883d28
100644
(file)
--- a/
src/compiler/x86-64/macros.lisp
+++ b/
src/compiler/x86-64/macros.lisp
@@
-28,6
+28,14
@@
((double-reg complex-double-reg)
(aver (xmm-register-p src))
(inst movapd dst src))
((double-reg complex-double-reg)
(aver (xmm-register-p src))
(inst movapd dst src))
+ #!+sb-simd-pack
+ ((int-sse-reg sse-reg)
+ (aver (xmm-register-p src))
+ (inst movdqa dst src))
+ #!+sb-simd-pack
+ ((single-sse-reg double-sse-reg)
+ (aver (xmm-register-p src))
+ (inst movaps dst src))
(t
(inst mov dst src)))))
(t
(inst mov dst src)))))
@@
-53,6
+61,14
@@
(defmacro popw (ptr &optional (slot 0) (lowtag 0))
`(inst pop (make-ea-for-object-slot ,ptr ,slot ,lowtag)))
(defmacro popw (ptr &optional (slot 0) (lowtag 0))
`(inst pop (make-ea-for-object-slot ,ptr ,slot ,lowtag)))
+
+(defun call-indirect (offset)
+ (typecase offset
+ ((signed-byte 32)
+ (inst call (make-ea :qword :disp offset)))
+ (t
+ (inst mov temp-reg-tn offset)
+ (inst call (make-ea :qword :base temp-reg-tn)))))
\f
;;;; macros to generate useful values
\f
;;;; macros to generate useful values