[Android] Fix bug in CArmOps::ThumbCompressConst and add another case
This commit is contained in:
parent
d08f1df674
commit
10ae0da041
|
@ -1386,12 +1386,20 @@ uint16_t CArmOps::ThumbCompressConst (uint32_t value)
|
|||
return (uint16_t)((value & 0xFF));
|
||||
}
|
||||
|
||||
//'00000000 nnnnnnnn 00000000 nnnnnnnn'
|
||||
if (((value >> 24) & 0xFF) == 0 &&
|
||||
((value >> 16) & 0xFF) == (value & 0xFF) &&
|
||||
((value >> 8) & 0xFF) == 0)
|
||||
{
|
||||
return (uint16_t)(0x100 | (value & 0xFF));
|
||||
}
|
||||
|
||||
//'nnnnnnnn 00000000 nnnnnnnn 00000000'
|
||||
if (((value >> 24) & 0xFF) == ((value >> 8) & 0xFF) &&
|
||||
((value >> 16) & 0xFF) == 0 &&
|
||||
(value & 0xFF) == 0)
|
||||
{
|
||||
return (uint16_t)(0x200 | (value & 0xFF));
|
||||
return (uint16_t)(0x200 | ((value >> 8) & 0xFF));
|
||||
}
|
||||
|
||||
//'nnnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn'
|
||||
|
|
Loading…
Reference in New Issue