\f
;;;; Frame hackery:
-;;; Return the number of bytes needed for the current non-descriptor stack
-;;; frame. Non-descriptor stack frames must be multiples of 16 bytes under
-;;; the PPC SVr4 ABI (though the EABI may be less restrictive.) Two words
-;;; are reserved for the stack backlink and saved LR (see SB!VM::NUMBER-STACK-
-;;; DISPLACEMENT.)
-;;;
-;;; Duh. PPC Linux (and VxWorks) adhere to the EABI.
-
;;; this is the first function in this file that differs materially from
;;; ../alpha/call.lisp
(defun bytes-needed-for-non-descriptor-stack-frame ()
- (logandc2 (+ 7 number-stack-displacement
- (* (sb-allocated-size 'non-descriptor-stack) sb!vm:n-word-bytes))
- 7))
+ (logandc2 (+ +stack-alignment-bytes+ number-stack-displacement
+ (* (sb-allocated-size 'non-descriptor-stack) n-word-bytes))
+ +stack-alignment-bytes+))
;;; Used for setting up the Old-FP in local call.
(emit-label start-lab)
;; Allocate function header.
(inst simple-fun-header-word)
- (dotimes (i (1- sb!vm:simple-fun-code-offset))
+ (dotimes (i (1- simple-fun-code-offset))
(inst word 0))
(let* ((entry-point (gen-label)))
(emit-label entry-point)
(do-next-filler))
(constant
(loadw lexenv code-tn (tn-offset arg-fun)
- sb!vm:other-pointer-lowtag)
+ other-pointer-lowtag)
(do-next-filler)))
- (loadw function lexenv sb!vm:closure-fun-slot
- sb!vm:fun-pointer-lowtag)
+ (loadw function lexenv closure-fun-slot
+ fun-pointer-lowtag)
(do-next-filler)
(inst addi entry-point function
(- (ash simple-fun-code-offset word-shift)
(emit-label loop)
;; *--dst = *--src, --count
- (inst addi src src (- sb!vm:n-word-bytes))
+ (inst addi src src (- n-word-bytes))
(inst addic. count count (- (fixnumize 1)))
(loadw temp src)
- (inst addi dst dst (- sb!vm:n-word-bytes))
+ (inst addi dst dst (- n-word-bytes))
(storew temp dst)
(inst bgt loop)