Did shift of 32. Not allowed
This commit is contained in:
parent
2b7aae3b44
commit
24a353f3e1
|
@ -420,7 +420,8 @@ add_field(szp, fd, fdtpp, idf, stp)
|
||||||
Sign extension could occur on some machines when shifting
|
Sign extension could occur on some machines when shifting
|
||||||
the mask to the left.
|
the mask to the left.
|
||||||
*/
|
*/
|
||||||
fd->fd_mask = (1 << fd->fd_width) - 1;
|
if (fd->fd_width >= 8*sizeof(arith)) fd->fd_mask = -1;
|
||||||
|
else fd->fd_mask = (1L << fd->fd_width) - 1;
|
||||||
|
|
||||||
if (options['r']) /* adjust the field at the right */
|
if (options['r']) /* adjust the field at the right */
|
||||||
fd->fd_shift = bits_declared - fd->fd_width;
|
fd->fd_shift = bits_declared - fd->fd_width;
|
||||||
|
|
|
@ -456,7 +456,8 @@ add_field(szp, fd, fdtpp, idf, stp)
|
||||||
Sign extension could occur on some machines when shifting
|
Sign extension could occur on some machines when shifting
|
||||||
the mask to the left.
|
the mask to the left.
|
||||||
*/
|
*/
|
||||||
fd->fd_mask = (1 << fd->fd_width) - 1;
|
if (fd->fd_width >= 8*sizeof(arith)) fd->fd_mask = -1;
|
||||||
|
else fd->fd_mask = (1L << fd->fd_width) - 1;
|
||||||
|
|
||||||
if (options['r']) /* adjust the field at the right */
|
if (options['r']) /* adjust the field at the right */
|
||||||
fd->fd_shift = bits_declared - fd->fd_width;
|
fd->fd_shift = bits_declared - fd->fd_width;
|
||||||
|
|
Loading…
Reference in a new issue