[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target-s390x: fix CONVERT TO BINARY (CVD, CVDY)
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH] target-s390x: fix CONVERT TO BINARY (CVD, CVDY) |
Date: |
Mon, 29 Jun 2015 22:24:01 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On 2015-06-29 10:28, Richard Henderson wrote:
> On 06/25/2015 08:16 PM, Aurelien Jarno wrote:
> > for (shift = 4; (shift < 64) && bin; shift += 4) {
> >- int current_number = bin % 10;
> >-
> >- dec |= (current_number) << shift;
> >+ dec |= (bin % 10) << shift;
> > bin /= 10;
> > }
>
> You've changed from 32-bit division to 64-bit division just to solve a
> problem with the shift. Better to just change the type of current_number
> there.
Changing the type of current_number instead of bin would indeed solve
the shift issue, but not the -2^31 case. As we take the absolute value,
we need a 64-bit variable to hold the corresponding 2^31 value.
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
address@hidden http://www.aurel32.net