>>>>> "Christophe" == Christophe Rhodes <csr21@...> writes:
Christophe> Raymond Toy <rtoy@...> writes:
>> Also, I note that it would be nice if (ldb (byte 32 0) x) could be
>> converted to at most a register move from a signed-reg to an
>> unsigned-reg. Right now, even with the vops, cmucl does a load of a
>> 32-bit constant (not good) and an and instruction.
Christophe> This is probably relatively easy to achieve if you are willing to
Christophe> accept the register move; simply specialize the implementation of
Christophe> logand-c; something like
Christophe> (define-vop (fast-logand-c/unsigned=>unsigned fast-unsigned-binop-c)
Christophe> (:translate logand)
Christophe> (:generator ,untagged-penalty
Christophe> (if (= y #xffffffff)
Christophe> (inst move r x)
Christophe> (inst and r x y))))
Christophe> would work. The downsides: this has to be done per-backend, and the
Yes, this does work, after fixing a few minor things specific to the
Ericsson may automatically add a disclaimer. Sorry, it's beyond my
This communication is confidential and intended solely for the addressee(s). Any unauthorized review, use, disclosure or distribution is prohibited. If you believe this message has been sent to you in error, please notify the sender by replying to this transmission and delete the message without disclosing it. Thank you.
E-mail including attachments is susceptible to data corruption, interruption, unauthorized amendment, tampering and viruses, and we only send and receive e-mails on the basis that we are not liable for any such corruption, interception, amendment, tampering or viruses or any consequences thereof.