mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 12:34:35 +03:00
Fixed #106
This commit is contained in:
@@ -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 , "");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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() +
|
||||
|
||||
Reference in New Issue
Block a user