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:
parent
17b609c3fc
commit
a7da346e5c
2 changed files with 9 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue