mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-17 12:34:35 +03:00
Fixed some minor issues reported by clang
This commit is contained in:
@@ -40,11 +40,11 @@ enum { kBaseCompilerDefaultLookAhead = 64 };
|
|||||||
|
|
||||||
Compiler::Compiler(Runtime* runtime) :
|
Compiler::Compiler(Runtime* runtime) :
|
||||||
CodeGen(runtime),
|
CodeGen(runtime),
|
||||||
|
_assembler(NULL),
|
||||||
_nodeFlowId(0),
|
_nodeFlowId(0),
|
||||||
_nodeFlags(0),
|
_nodeFlags(0),
|
||||||
_maxLookAhead(kBaseCompilerDefaultLookAhead),
|
_maxLookAhead(kBaseCompilerDefaultLookAhead),
|
||||||
_targetVarMapping(NULL),
|
_targetVarMapping(NULL),
|
||||||
_assembler(NULL),
|
|
||||||
_firstNode(NULL),
|
_firstNode(NULL),
|
||||||
_lastNode(NULL),
|
_lastNode(NULL),
|
||||||
_cursor(NULL),
|
_cursor(NULL),
|
||||||
|
|||||||
@@ -162,19 +162,6 @@ void ConstPool::reset() {
|
|||||||
// [asmjit::ConstPool - Ops]
|
// [asmjit::ConstPool - Ops]
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
static ASMJIT_INLINE size_t ConstPool_getGapIndex(size_t size) {
|
|
||||||
if (size <= 1)
|
|
||||||
return ConstPool::kIndex1;
|
|
||||||
else if (size <= 3)
|
|
||||||
return ConstPool::kIndex2;
|
|
||||||
else if (size <= 7)
|
|
||||||
return ConstPool::kIndex4;
|
|
||||||
else if (size <= 15)
|
|
||||||
return ConstPool::kIndex8;
|
|
||||||
else
|
|
||||||
return ConstPool::kIndex16;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ASMJIT_INLINE ConstPoolGap* ConstPool_allocGap(ConstPool* self) {
|
static ASMJIT_INLINE ConstPoolGap* ConstPool_allocGap(ConstPool* self) {
|
||||||
ConstPoolGap* gap = self->_gapPool;
|
ConstPoolGap* gap = self->_gapPool;
|
||||||
if (gap == NULL)
|
if (gap == NULL)
|
||||||
@@ -481,7 +468,6 @@ UNIT(base_constpool) {
|
|||||||
INFO("Checking pool alignment when combined constants are added.");
|
INFO("Checking pool alignment when combined constants are added.");
|
||||||
{
|
{
|
||||||
uint8_t bytes[32] = { 0 };
|
uint8_t bytes[32] = { 0 };
|
||||||
uint64_t c = 0;
|
|
||||||
size_t offset;
|
size_t offset;
|
||||||
|
|
||||||
pool.add(bytes, 1, offset);
|
pool.add(bytes, 1, offset);
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ Error Context::resolveCellOffsets() {
|
|||||||
// Vars - Allocated according to alignment/width.
|
// Vars - Allocated according to alignment/width.
|
||||||
while (varCell != NULL) {
|
while (varCell != NULL) {
|
||||||
uint32_t size = varCell->getSize();
|
uint32_t size = varCell->getSize();
|
||||||
uint32_t offset;
|
uint32_t offset = 0;
|
||||||
|
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case 1: offset = pos1 ; pos1 += 1 ; break;
|
case 1: offset = pos1 ; pos1 += 1 ; break;
|
||||||
|
|||||||
@@ -968,16 +968,18 @@ static bool X86Assembler_dumpComment(StringBuilder& sb, size_t len, const uint8_
|
|||||||
// [asmjit::X86Assembler - Emit]
|
// [asmjit::X86Assembler - Emit]
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
#define HI_REG(_Index_) ((_kX86RegTypePatchedGpbHi << 8) | _Index_)
|
||||||
//! \internal
|
//! \internal
|
||||||
static const Operand::VRegOp x86PatchedHiRegs[4] = {
|
static const Operand::VRegOp x86PatchedHiRegs[4] = {
|
||||||
// --------------+---+--------------------------------+--------------+------+
|
// --------------+---+--------------+--------------+------------+
|
||||||
// Operand | S | Register Code | OperandId |Unused|
|
// Operand | S | Reg. Code | OperandId | Unused |
|
||||||
// --------------+---+--------------------------------+--------------+------+
|
// --------------+---+--------------+--------------+------------+
|
||||||
{ kOperandTypeReg, 1 , (_kX86RegTypePatchedGpbHi << 8) | 4, kInvalidValue, 0, 0 },
|
{ kOperandTypeReg, 1 , { HI_REG(4) }, kInvalidValue, {{ 0, 0 }} },
|
||||||
{ kOperandTypeReg, 1 , (_kX86RegTypePatchedGpbHi << 8) | 5, kInvalidValue, 0, 0 },
|
{ kOperandTypeReg, 1 , { HI_REG(5) }, kInvalidValue, {{ 0, 0 }} },
|
||||||
{ kOperandTypeReg, 1 , (_kX86RegTypePatchedGpbHi << 8) | 6, kInvalidValue, 0, 0 },
|
{ kOperandTypeReg, 1 , { HI_REG(6) }, kInvalidValue, {{ 0, 0 }} },
|
||||||
{ kOperandTypeReg, 1 , (_kX86RegTypePatchedGpbHi << 8) | 7, kInvalidValue, 0, 0 }
|
{ kOperandTypeReg, 1 , { HI_REG(7) }, kInvalidValue, {{ 0, 0 }} }
|
||||||
};
|
};
|
||||||
|
#undef HI_REG
|
||||||
|
|
||||||
template<int Arch>
|
template<int Arch>
|
||||||
static Error ASMJIT_CDECL X86Assembler_emit(Assembler* self_, uint32_t code, const Operand* o0, const Operand* o1, const Operand* o2, const Operand* o3) {
|
static Error ASMJIT_CDECL X86Assembler_emit(Assembler* self_, uint32_t code, const Operand* o0, const Operand* o1, const Operand* o2, const Operand* o3) {
|
||||||
@@ -4108,7 +4110,6 @@ _EmitJmpOrCallAbs:
|
|||||||
|
|
||||||
if (Arch == kArchX64) {
|
if (Arch == kArchX64) {
|
||||||
Ptr baseAddress = self->getBaseAddress();
|
Ptr baseAddress = self->getBaseAddress();
|
||||||
Ptr diff = rd.data - (baseAddress + rd.from + 4);
|
|
||||||
|
|
||||||
// If the base address of the output is known, it's possible to determine
|
// If the base address of the output is known, it's possible to determine
|
||||||
// the need for a trampoline here. This saves possible REX prefix in
|
// the need for a trampoline here. This saves possible REX prefix in
|
||||||
|
|||||||
@@ -279,8 +279,8 @@ X86Context::~X86Context() {}
|
|||||||
// [asmjit::X86Context - Reset]
|
// [asmjit::X86Context - Reset]
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
void X86Context::reset() {
|
void X86Context::reset(bool releaseMemory) {
|
||||||
Context::reset();
|
Context::reset(releaseMemory);
|
||||||
|
|
||||||
_x86State.reset(0);
|
_x86State.reset(0);
|
||||||
_clobberedRegs.reset();
|
_clobberedRegs.reset();
|
||||||
@@ -2090,7 +2090,6 @@ Error X86Context::fetch() {
|
|||||||
Node* next = NULL;
|
Node* next = NULL;
|
||||||
Node* stop = getStop();
|
Node* stop = getStop();
|
||||||
|
|
||||||
uint32_t groupId = 1;
|
|
||||||
uint32_t flowId = 0;
|
uint32_t flowId = 0;
|
||||||
|
|
||||||
VarAttr vaTmpList[80];
|
VarAttr vaTmpList[80];
|
||||||
@@ -4432,8 +4431,6 @@ ASMJIT_INLINE void X86CallAlloc::ret() {
|
|||||||
//! \internal
|
//! \internal
|
||||||
static Error X86Context_translateOperands(X86Context* self, Operand* opList, uint32_t opCount) {
|
static Error X86Context_translateOperands(X86Context* self, Operand* opList, uint32_t opCount) {
|
||||||
X86Compiler* compiler = self->getCompiler();
|
X86Compiler* compiler = self->getCompiler();
|
||||||
const X86VarInfo* varInfo = _x86VarInfo;
|
|
||||||
|
|
||||||
uint32_t hasGpdBase = compiler->getRegSize() == 4;
|
uint32_t hasGpdBase = compiler->getRegSize() == 4;
|
||||||
|
|
||||||
// Translate variables into registers.
|
// Translate variables into registers.
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ struct X86Context : public Context {
|
|||||||
// [Reset]
|
// [Reset]
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
virtual void reset();
|
virtual void reset(bool releaseMemory = false);
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
// [Arch]
|
// [Arch]
|
||||||
|
|||||||
Reference in New Issue
Block a user