Eliminate style-warning about undefined type GLOBAL-VAR
[sbcl.git] / src / compiler / x86 / show.lisp
blob04b63e183d3e6bcc8c131a822d573e570594b7d0
1 ;;;; VOPs which are useful for following the progress of the system
2 ;;;; early in boot
4 ;;;; This software is part of the SBCL system. See the README file for
5 ;;;; more information.
6 ;;;;
7 ;;;; This software is derived from the CMU CL system, which was
8 ;;;; written at Carnegie Mellon University and released into the
9 ;;;; public domain. The software is in the public domain and is
10 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
11 ;;;; files for more information.
13 (in-package "SB!VM")
15 ;;; FIXME: should probably become conditional on #!+SB-SHOW
16 ;;; FIXME: should be called DEBUG-PRINT or COLD-PRINT
17 (define-vop (print)
18 (:args (object :scs (descriptor-reg any-reg)))
19 (:temporary (:sc unsigned-reg
20 :offset eax-offset
21 :target result
22 :from :eval
23 :to (:result 0))
24 eax)
25 #!+darwin
26 (:temporary (:sc unsigned-reg
27 :offset esi-offset)
28 prev-stack-pointer)
29 (:results (result :scs (descriptor-reg)))
30 (:save-p t)
31 (:generator 100
32 #!-darwin
33 (inst push object)
34 #!+darwin
35 (progn
36 ;; the stack should be 16-byte aligned on Darwin
37 (inst mov prev-stack-pointer esp-tn)
38 (inst sub esp-tn n-word-bytes)
39 (align-stack-pointer esp-tn)
40 (storew object esp-tn))
41 (inst lea eax (make-fixup "debug_print" :foreign))
42 (inst call (make-fixup "call_into_c" :foreign))
43 #!-darwin
44 (inst add esp-tn n-word-bytes)
45 #!+darwin
46 (inst mov esp-tn prev-stack-pointer)
47 (move result eax)))