Support 32->64 sign extension in msp430's sign_ext

* msp43-sim.c (sign_ext): Change to "long long" to support
sign-extending 32-bit values.
This commit is contained in:
DJ Delorie 2014-05-12 19:05:19 -04:00
parent 17b609c3fc
commit a7da346e5c
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2014-05-12 DJ Delorie <dj@redhat.com>
* msp43-sim.c (sign_ext): Change to "long long" to support
sign-extending 32-bit values.
2014-05-08 Nick Clifton <nickc@redhat.com>
* msp430-sim.c (sim_open): Do not allocate memory over the

View File

@ -337,11 +337,11 @@ zero_ext (unsigned int v, unsigned int bits)
return v;
}
static signed int
sign_ext (signed int v, unsigned int bits)
static signed long long
sign_ext (signed long long v, unsigned int bits)
{
int sb = 1 << (bits-1); /* Sign bit. */
int mb = (1 << (bits-1)) - 1; /* Mantissa bits. */
signed long long sb = 1LL << (bits-1); /* Sign bit. */
signed long long mb = (1LL << (bits-1)) - 1LL; /* Mantissa bits. */
if (v & sb)
v = v | ~mb;