stassats wrote:
> +(define-vop (fixnum-len)
[...]
> + (:args (arg :scs (any-reg) :target res))
> + (:arg-types tagged-num)
> + (:results (res :scs (unsigned-reg)))
> + (:result-types unsigned-num)
> + (:generator 25
> + (move res arg)
> + (when (> n-fixnum-tag-bits 1)
> + (inst shr res (1- n-fixnum-tag-bits)))
Shouldn't that be an arithmetic shift?
> + (if (sc-is res unsigned-reg)
> + (inst test res res)
> + (inst cmp res 0))
> + (inst jmp :ge POS)
What's the SC test for?
> + (inst not res)
That's probably more quickly computed as:
mov mask, res
sar mask, (1- n-word-bits)
xor res, mask
Paul Khuong
------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Sbcl-devel mailing list
Sbcl-...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel