Index: third_party/lzma_sdk/Bra86.c |
diff --git a/third_party/lzma_sdk/Compress/Branch/BranchX86.c b/third_party/lzma_sdk/Bra86.c |
similarity index 75% |
rename from third_party/lzma_sdk/Compress/Branch/BranchX86.c |
rename to third_party/lzma_sdk/Bra86.c |
index fd1d334ecf45ef37c41206729866bb647b761198..1ee0e709b88771b7f00662fa77fad886a1a72343 100644 |
--- a/third_party/lzma_sdk/Compress/Branch/BranchX86.c |
+++ b/third_party/lzma_sdk/Bra86.c |
@@ -1,29 +1,30 @@ |
-/* BranchX86.c */ |
+/* Bra86.c -- Converter for x86 code (BCJ) |
+2008-10-04 : Igor Pavlov : Public domain */ |
-#include "BranchX86.h" |
+#include "Bra.h" |
#define Test86MSByte(b) ((b) == 0 || (b) == 0xFF) |
const Byte kMaskToAllowedStatus[8] = {1, 1, 1, 0, 1, 0, 0, 0}; |
const Byte kMaskToBitNumber[8] = {0, 1, 2, 2, 3, 3, 3, 3}; |
-SizeT x86_Convert(Byte *buffer, SizeT endPos, UInt32 nowPos, UInt32 *prevMaskMix, int encoding) |
+SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state, int encoding) |
{ |
SizeT bufferPos = 0, prevPosT; |
- UInt32 prevMask = *prevMaskMix & 0x7; |
- if (endPos < 5) |
+ UInt32 prevMask = *state & 0x7; |
+ if (size < 5) |
return 0; |
- nowPos += 5; |
+ ip += 5; |
prevPosT = (SizeT)0 - 1; |
- for(;;) |
+ for (;;) |
{ |
- Byte *p = buffer + bufferPos; |
- Byte *limit = buffer + endPos - 4; |
+ Byte *p = data + bufferPos; |
+ Byte *limit = data + size - 4; |
for (; p < limit; p++) |
if ((*p & 0xFE) == 0xE8) |
break; |
- bufferPos = (SizeT)(p - buffer); |
+ bufferPos = (SizeT)(p - data); |
if (p >= limit) |
break; |
prevPosT = bufferPos - prevPosT; |
@@ -55,9 +56,9 @@ SizeT x86_Convert(Byte *buffer, SizeT endPos, UInt32 nowPos, UInt32 *prevMaskMix |
Byte b; |
int index; |
if (encoding) |
- dest = (nowPos + (UInt32)bufferPos) + src; |
+ dest = (ip + (UInt32)bufferPos) + src; |
else |
- dest = src - (nowPos + (UInt32)bufferPos); |
+ dest = src - (ip + (UInt32)bufferPos); |
if (prevMask == 0) |
break; |
index = kMaskToBitNumber[prevMask] * 8; |
@@ -79,6 +80,6 @@ SizeT x86_Convert(Byte *buffer, SizeT endPos, UInt32 nowPos, UInt32 *prevMaskMix |
} |
} |
prevPosT = bufferPos - prevPosT; |
- *prevMaskMix = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7)); |
+ *state = ((prevPosT > 3) ? 0 : ((prevMask << ((int)prevPosT - 1)) & 0x7)); |
return bufferPos; |
} |