URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Show entire file |
Details |
Blame |
View Log
Rev 18 |
Rev 163 |
Line 3138... |
Line 3138... |
break;
|
break;
|
|
|
case 'o':
|
case 'o':
|
if ((given & 0x02000000) != 0)
|
if ((given & 0x02000000) != 0)
|
{
|
{
|
int rotate = (given & 0xf00) >> 7;
|
unsigned int rotate = (given & 0xf00) >> 7;
|
int immed = (given & 0xff);
|
unsigned int immed = (given & 0xff);
|
|
unsigned int a, i;
|
|
|
immed = (((immed << (32 - rotate))
|
a = (((immed << (32 - rotate))
|
| (immed >> rotate)) & 0xffffffff);
|
| (immed >> rotate)) & 0xffffffff);
|
func (stream, "#%d", immed);
|
/* If there is another encoding with smaller rotate,
|
value_in_comment = immed;
|
the rotate should be specified directly. */
|
|
for (i = 0; i < 32; i += 2)
|
|
if ((a << i | a >> (32 - i)) <= 0xff)
|
|
break;
|
|
|
|
if (i != rotate)
|
|
func (stream, "#%d, %d", immed, rotate);
|
|
else
|
|
func (stream, "#%d", a);
|
|
value_in_comment = a;
|
}
|
}
|
else
|
else
|
arm_decode_shift (given, func, stream, TRUE);
|
arm_decode_shift (given, func, stream, TRUE);
|
break;
|
break;
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.