This commit is contained in:
kobalicek
2015-10-13 19:18:54 +02:00
parent 4ad2729632
commit dacd9eb641
4 changed files with 13 additions and 8 deletions

View File

@@ -175,6 +175,13 @@ UNIT(base_intutil) {
"IntUtil::findFirstBit(%X) should return %u.", (1 << i), i);
}
INFO("IntUtil::keepNOnesFromRight().");
EXPECT(IntUtil::keepNOnesFromRight(0xF, 1) == 0x1, "");
EXPECT(IntUtil::keepNOnesFromRight(0xF, 2) == 0x3, "");
EXPECT(IntUtil::keepNOnesFromRight(0xF, 3) == 0x7, "");
EXPECT(IntUtil::keepNOnesFromRight(0x5, 2) == 0x5, "");
EXPECT(IntUtil::keepNOnesFromRight(0xD, 2) == 0x5, "");
INFO("IntUtil::isAligned().");
EXPECT(IntUtil::isAligned<size_t>(0xFFFF, 4) == false, "");
EXPECT(IntUtil::isAligned<size_t>(0xFFF4, 4) == true , "");

View File

@@ -382,7 +382,7 @@ struct IntUtil {
uint32_t m = 0x1;
do {
nBits -= (mask & m) == 0;
nBits -= (mask & m) != 0;
m <<= 1;
if (nBits == 0) {
m -= 1;

View File

@@ -1265,12 +1265,9 @@ struct X86FuncNode : public FuncNode {
_stackFrameRegIndex = kInvalidReg;
_isStackFrameRegPreserved = false;
_stackFrameCopyGpIndex[0] = kInvalidReg;
_stackFrameCopyGpIndex[1] = kInvalidReg;
_stackFrameCopyGpIndex[2] = kInvalidReg;
_stackFrameCopyGpIndex[3] = kInvalidReg;
_stackFrameCopyGpIndex[4] = kInvalidReg;
_stackFrameCopyGpIndex[5] = kInvalidReg;
for (uint32_t i = 0; i < ASMJIT_ARRAY_SIZE(_stackFrameCopyGpIndex); i++)
_stackFrameCopyGpIndex[i] = static_cast<uint8_t>(kInvalidReg);
}
//! Destroy the `X86FuncNode` instance.

View File

@@ -4962,9 +4962,10 @@ static Error X86Context_translatePrologEpilog(X86Context* self, X86FuncNode* fun
X86GpReg r[8];
uint32_t numRegs = 0;
for (i = 0; i < 6; i++)
for (i = 0; i < ASMJIT_ARRAY_SIZE(func->_stackFrameCopyGpIndex); i++)
if (func->_stackFrameCopyGpIndex[i] != kInvalidReg)
r[numRegs++] = gpReg.setIndex(func->_stackFrameCopyGpIndex[i]);
ASMJIT_ASSERT(numRegs > 0);
int32_t dSrc = func->getPushPopStackSize() + regSize;
int32_t dDst = func->getAlignStackSize() +