(in-package "SB!VM")
-
(define-vop (debug-cur-sp)
- (:translate current-sp)
+ (:translate sb!di::current-sp)
(:policy :fast-safe)
(:results (res :scs (sap-reg)))
(:result-types system-area-pointer)
(move csp-tn res)))
(define-vop (debug-cur-fp)
- (:translate current-fp)
+ (:translate sb!di::current-fp)
(:policy :fast-safe)
(:results (res :scs (sap-reg)))
(:result-types system-area-pointer)
(move cfp-tn res)))
(define-vop (read-control-stack)
- (:translate stack-ref)
+ (:translate sb!kernel:stack-ref)
(:policy :fast-safe)
(:args (object :scs (sap-reg))
- (offset :scs (any-reg)))
+ (offset :scs (any-reg)))
(:arg-types system-area-pointer positive-fixnum)
(:results (result :scs (descriptor-reg)))
(:result-types *)
(:generator 5
(inst ldwx offset object result)))
-
(define-vop (read-control-stack-c)
- (:translate stack-ref)
+ (:translate sb!kernel:stack-ref)
(:policy :fast-safe)
(:args (object :scs (sap-reg)))
(:info offset)
+ ;; make room for multiply by limiting to 12 bits
(:arg-types system-area-pointer (:constant (signed-byte 12)))
(:results (result :scs (descriptor-reg)))
(:result-types *)
(inst ldw (* offset n-word-bytes) object result)))
(define-vop (write-control-stack)
- (:translate %set-stack-ref)
+ (:translate sb!kernel:%set-stack-ref)
(:policy :fast-safe)
(:args (object :scs (sap-reg) :target sap)
- (offset :scs (any-reg))
- (value :scs (descriptor-reg) :target result))
+ (offset :scs (any-reg))
+ (value :scs (descriptor-reg) :target result))
(:arg-types system-area-pointer positive-fixnum *)
(:results (result :scs (descriptor-reg)))
(:result-types *)
(inst add object offset sap)
(inst stw value 0 sap)
(move value result)))
-
(define-vop (write-control-stack-c)
(:translate %set-stack-ref)
(:policy :fast-safe)
(:args (sap :scs (sap-reg))
- (value :scs (descriptor-reg) :target result))
+ (value :scs (descriptor-reg) :target result))
(:info offset)
(:arg-types system-area-pointer (:constant (signed-byte 12)) *)
(:results (result :scs (descriptor-reg)))
(define-vop (code-from-mumble)
(:policy :fast-safe)
- (:args (thing :scs (descriptor-reg) :to :save))
+ (:args (thing :scs (descriptor-reg)))
(:results (code :scs (descriptor-reg)))
(:temporary (:scs (non-descriptor-reg)) temp)
(:variant-vars lowtag)
(:generator 5
- (loadw temp thing 0 lowtag)
- (inst srl temp n-widetag-bits temp)
- (inst comb := zero-tn temp done)
- (move null-tn code)
- (inst sll temp (1- (integer-length n-word-bytes)) temp)
- (unless (= lowtag other-pointer-lowtag)
- (inst addi (- lowtag other-pointer-lowtag) temp temp))
- (inst sub thing temp code)
- DONE))
+ (let ((bogus (gen-label))
+ (done (gen-label)))
+ (loadw temp thing 0 lowtag)
+ (inst srl temp n-widetag-bits temp)
+ (inst comb := zero-tn temp bogus)
+ (inst sll temp (1- (integer-length n-word-bytes)) temp)
+ (unless (= lowtag other-pointer-lowtag)
+ (inst addi (- lowtag other-pointer-lowtag) temp temp))
+ (inst sub thing temp code)
+ (emit-label done)
+ (assemble (*elsewhere*)
+ (emit-label bogus)
+ (inst b done)
+ (move null-tn code t)))))
(define-vop (code-from-lra code-from-mumble)
- (:translate lra-code-header)
+ (:translate sb!di::lra-code-header)
(:variant other-pointer-lowtag))
(define-vop (code-from-fun code-from-mumble)
- (:translate fun-code-header)
+ (:translate sb!di::fun-code-header)
(:variant fun-pointer-lowtag))
-(define-vop (make-lisp-obj)
+(define-vop (%make-lisp-obj)
(:policy :fast-safe)
- (:translate make-lisp-obj)
+ (:translate %make-lisp-obj)
(:args (value :scs (unsigned-reg) :target result))
(:arg-types unsigned-num)
(:results (result :scs (descriptor-reg)))
(define-vop (get-lisp-obj-address)
(:policy :fast-safe)
- (:translate get-lisp-obj-address)
+ (:translate sb!di::get-lisp-obj-address)
(:args (thing :scs (descriptor-reg) :target result))
(:results (result :scs (unsigned-reg)))
(:result-types unsigned-num)
(define-vop (fun-word-offset)
(:policy :fast-safe)
- (:translate fun-word-offset)
+ (:translate sb!di::fun-word-offset)
(:args (fun :scs (descriptor-reg)))
(:results (res :scs (unsigned-reg)))
(:result-types positive-fixnum)