Skip to content
Snippets Groups Projects
Commit eabd5819 authored by wlott's avatar wlott
Browse files

Added primitive-translator for byte-blt that dispatches on the types of the

arguments and calls the correct copy bit-basher.
parent 51afd588
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman (FAHLMAN@CMUC). ;;; Scott Fahlman (FAHLMAN@CMUC).
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/vm-tran.lisp,v 1.7 1990/04/29 23:53:52 wlott Exp $ ;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/vm-tran.lisp,v 1.8 1990/05/15 01:21:52 wlott Exp $
;;; ;;;
;;; This file contains impelemtentation-dependent transforms. ;;; This file contains impelemtentation-dependent transforms.
;;; ;;;
...@@ -233,3 +233,27 @@ ...@@ -233,3 +233,27 @@
,@(forms) ,@(forms)
res)))) res))))
;;;; Primitive translator for byte-blt
(def-primitive-translator byte-blt (src src-start dst dst-start dst-end)
`(let ((src ,src)
(src-start (* ,src-start vm:byte-bits))
(dst ,dst)
(dst-start (* ,dst-start vm:byte-bits))
(dst-end (* ,dst-end vm:byte-bits)))
(let ((length (- dst-end dst-start)))
(etypecase src
(system-area-pointer
(etypecase dst
(system-area-pointer
(system-area-copy src src-start dst dst-start length))
((simple-unboxed-array (*))
(copy-from-system-area src src-start dst dst-start length))))
((simple-unboxed-array (*))
(etypecase dst
(system-area-pointer
(copy-to-system-area src src-start dst dst-start length))
((simple-unboxed-array (*))
(bit-bash-copy src src-start dst dst-start length))))))))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment