3 #include "BranchARMThumb.h"
5 UInt32
ARMThumb_Convert(Byte
*data
, UInt32 size
, UInt32 nowPos
, int encoding
)
8 for (i
= 0; i
+ 4 <= size
; i
+= 2)
10 if ((data
[i
+ 1] & 0xF8) == 0xF0 &&
11 (data
[i
+ 3] & 0xF8) == 0xF8)
14 ((data
[i
+ 1] & 0x7) << 19) |
16 ((data
[i
+ 3] & 0x7) << 8) |
22 dest
= nowPos
+ i
+ 4 + src
;
24 dest
= src
- (nowPos
+ i
+ 4);
27 data
[i
+ 1] = 0xF0 | ((dest
>> 19) & 0x7);
28 data
[i
+ 0] = (dest
>> 11);
29 data
[i
+ 3] = 0xF8 | ((dest
>> 8) & 0x7);