X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fhppa%2Fshow.lisp;h=7e4130fcf64ef0da09c90ab013eb607f41d443a5;hb=63e78fc74df6e60019a9952531c4b7608656f07e;hp=52d800c66bd05efc28e71ff60a22cd95bd98c043;hpb=52cfe54802db8736f1f4e2b67764c43bba9b78b3;p=sbcl.git diff --git a/src/compiler/hppa/show.lisp b/src/compiler/hppa/show.lisp index 52d800c..7e4130f 100644 --- a/src/compiler/hppa/show.lisp +++ b/src/compiler/hppa/show.lisp @@ -1,31 +1,25 @@ (in-package "SB!VM") - (define-vop (print) - (:args (object :scs (descriptor-reg) :target arg)) - (:results (result :scs (descriptor-reg))) + (:args (object :scs (descriptor-reg any-reg) :target nl0)) + (:results) (:save-p t) - (:temporary (:sc non-descriptor-reg :offset cfunc-offset) cfunc) - (:temporary (:sc non-descriptor-reg :offset nl0-offset :from (:argument 0)) - arg) - (:temporary (:sc non-descriptor-reg :offset nl4-offset :to (:result 0)) - res) + (:temporary (:sc any-reg :offset nl0-offset :from (:argument 0)) nl0) + (:temporary (:sc any-reg :offset cfunc-offset) cfunc) (:temporary (:sc control-stack :offset nfp-save-offset) nfp-save) (:temporary (:scs (non-descriptor-reg)) temp) (:vop-var vop) - (:generator 0 + (:generator 100 (let ((cur-nfp (current-nfp-tn vop))) - (move object arg) (when cur-nfp (store-stack-tn nfp-save cur-nfp)) - ;; Allocate 64 bytes, the minimum stack size. - (inst addi 64 nsp-tn nsp-tn) + (move object nl0) (inst li (make-fixup "debug_print" :foreign) cfunc) (let ((fixup (make-fixup "call_into_c" :foreign))) (inst ldil fixup temp) - (inst ble fixup c-text-space temp :nullify t) - (inst nop)) + (inst ble fixup c-text-space temp)) + (inst addi 64 nsp-tn nsp-tn) (inst addi -64 nsp-tn nsp-tn) (when cur-nfp - (load-stack-tn cur-nfp nfp-save)) - (move res result)))) + (load-stack-tn cur-nfp nfp-save))))) +