On 11/05/2015 10:25 AM, Paolo Bonzini wrote:


On 05/11/2015 10:20, Richard Henderson wrote:

     /* Ugly code */
     int64_t scaled = (uint64_t)(int64_t)src << scale;

You mean

   int64_t scaled = (int64_t)((uint64_t)src << scale);

No, that also looks like a typo.

I mean:

- unnecessary cast to int64_t to get the sign extension while avoiding
the impression of a typo

Huh.  This part doesn't seem a typo to me at all.


- cast to uint64_t to avoid overflow

- the shift is done in the uint64_t type

- finally there is an implicit cast to int64_t


r~

Reply via email to