Another try at the COPY-MORE-ARGS microoptimization, which was
in fact reverted inadvertantly by the ppc/gencgc merge.
... this time, schedule the instructions by hand to try to
avoid a stall.
... (whitespace. *sigh*.)
(emit-label loop)
;; *--dst = *--src, --count
- (inst addi src src (- n-word-bytes))
+ (inst lwzu temp src (- n-word-bytes))
(inst addic. count count (- (fixnumize 1)))
- (loadw temp src)
- (inst addi dst dst (- n-word-bytes))
- (storew temp dst)
+ (inst stwu temp dst (- n-word-bytes))
(inst bgt loop)
(emit-label do-regs)
}
}
#if !defined(LISP_FEATURE_X86) && !defined(LISP_FEATURE_X86_64)
- /* This workaround is probably not needed for those ports
- which don't have a partitioned register set (and therefore
- scan the stack conservatively for roots). */
+ /* This workaround is probably not needed for those ports
+ which don't have a partitioned register set (and therefore
+ scan the stack conservatively for roots). */
else if (n_words == 1) {
/* there are some situations where an other-immediate may
end up in a descriptor register. I'm not sure whether
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.10.8"
+"0.9.10.9"