⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 target-insts.lisp

📁 开源跨平台Lisp编译器
💻 LISP
字号:
;;;; target-only stuff from CMU CL's src/compiler/x86/insts.lisp;;;;;;;; i.e. stuff which was in CMU CL's insts.lisp file, but which in;;;; the SBCL build process can't be compiled into code for the;;;; cross-compilation host;;;; This software is part of the SBCL system. See the README file for;;;; more information.;;;;;;;; This software is derived from the CMU CL system, which was;;;; written at Carnegie Mellon University and released into the;;;; public domain. The software is in the public domain and is;;;; provided with absolutely no warranty. See the COPYING and CREDITS;;;; files for more information.(in-package "SB!VM")(defun print-mem-access (value stream print-size-p dstate)  (declare (type list value)           (type stream stream)           (type (member t nil) print-size-p)           (type sb!disassem:disassem-state dstate))  (when print-size-p    (princ (sb!disassem:dstate-get-prop dstate 'width) stream)    (princ '| PTR | stream))  (write-char #\[ stream)  (let ((firstp t))    (macrolet ((pel ((var val) &body body)                 ;; Print an element of the address, maybe with                 ;; a leading separator.                 `(let ((,var ,val))                    (when ,var                      (unless firstp                        (write-char #\+ stream))                      ,@body                      (setq firstp nil)))))      (pel (base-reg (first value))        (print-addr-reg base-reg stream dstate))      (pel (index-reg (third value))        (print-addr-reg index-reg stream dstate)        (let ((index-scale (fourth value)))          (when (and index-scale (not (= index-scale 1)))            (write-char #\* stream)            (princ index-scale stream))))      (let ((offset (second value)))        (when (and offset (or firstp (not (zerop offset))))          (unless (or firstp (minusp offset))            (write-char #\+ stream))          (if firstp            (progn              (sb!disassem:princ16 offset stream)              (or (minusp offset)                  (nth-value 1                    (sb!disassem::note-code-constant-absolute offset dstate))                  (sb!disassem:maybe-note-assembler-routine offset                                                            nil                                                            dstate)))            (princ offset stream))))))  (write-char #\] stream))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -