mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 22:28:18 +00:00
Rename MachineInstrInfo::getDescriptor to MachineInstrInfo::get
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4387 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -81,7 +81,6 @@ struct MachineInstrDescriptor {
|
|||||||
|
|
||||||
|
|
||||||
class MachineInstrInfo {
|
class MachineInstrInfo {
|
||||||
private:
|
|
||||||
const MachineInstrDescriptor* desc; // raw array to allow static init'n
|
const MachineInstrDescriptor* desc; // raw array to allow static init'n
|
||||||
unsigned descSize; // number of entries in the desc array
|
unsigned descSize; // number of entries in the desc array
|
||||||
unsigned numRealOpCodes; // number of non-dummy op codes
|
unsigned numRealOpCodes; // number of non-dummy op codes
|
||||||
@@ -96,25 +95,28 @@ public:
|
|||||||
unsigned getNumRealOpCodes() const { return numRealOpCodes; }
|
unsigned getNumRealOpCodes() const { return numRealOpCodes; }
|
||||||
unsigned getNumTotalOpCodes() const { return descSize; }
|
unsigned getNumTotalOpCodes() const { return descSize; }
|
||||||
|
|
||||||
const MachineInstrDescriptor& getDescriptor(MachineOpCode opCode) const {
|
/// get - Return the machine instruction descriptor that corresponds to the
|
||||||
|
/// specified instruction opcode.
|
||||||
|
///
|
||||||
|
const MachineInstrDescriptor& get(MachineOpCode opCode) const {
|
||||||
assert(opCode >= 0 && opCode < (int)descSize);
|
assert(opCode >= 0 && opCode < (int)descSize);
|
||||||
return desc[opCode];
|
return desc[opCode];
|
||||||
}
|
}
|
||||||
|
|
||||||
int getNumOperands(MachineOpCode opCode) const {
|
int getNumOperands(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).numOperands;
|
return get(opCode).numOperands;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getResultPos(MachineOpCode opCode) const {
|
int getResultPos(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).resultPos;
|
return get(opCode).resultPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getNumDelaySlots(MachineOpCode opCode) const {
|
unsigned getNumDelaySlots(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).numDelaySlots;
|
return get(opCode).numDelaySlots;
|
||||||
}
|
}
|
||||||
|
|
||||||
InstrSchedClass getSchedClass(MachineOpCode opCode) const {
|
InstrSchedClass getSchedClass(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).schedClass;
|
return get(opCode).schedClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -122,66 +124,66 @@ public:
|
|||||||
// flags listed above.
|
// flags listed above.
|
||||||
//
|
//
|
||||||
unsigned getIClass(MachineOpCode opCode) const {
|
unsigned getIClass(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass;
|
return get(opCode).iclass;
|
||||||
}
|
}
|
||||||
bool isNop(MachineOpCode opCode) const {
|
bool isNop(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_NOP_FLAG;
|
return get(opCode).iclass & M_NOP_FLAG;
|
||||||
}
|
}
|
||||||
bool isBranch(MachineOpCode opCode) const {
|
bool isBranch(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_BRANCH_FLAG;
|
return get(opCode).iclass & M_BRANCH_FLAG;
|
||||||
}
|
}
|
||||||
bool isCall(MachineOpCode opCode) const {
|
bool isCall(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_CALL_FLAG;
|
return get(opCode).iclass & M_CALL_FLAG;
|
||||||
}
|
}
|
||||||
bool isReturn(MachineOpCode opCode) const {
|
bool isReturn(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_RET_FLAG;
|
return get(opCode).iclass & M_RET_FLAG;
|
||||||
}
|
}
|
||||||
bool isControlFlow(MachineOpCode opCode) const {
|
bool isControlFlow(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_BRANCH_FLAG
|
return get(opCode).iclass & M_BRANCH_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_CALL_FLAG
|
|| get(opCode).iclass & M_CALL_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_RET_FLAG;
|
|| get(opCode).iclass & M_RET_FLAG;
|
||||||
}
|
}
|
||||||
bool isArith(MachineOpCode opCode) const {
|
bool isArith(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_ARITH_FLAG;
|
return get(opCode).iclass & M_ARITH_FLAG;
|
||||||
}
|
}
|
||||||
bool isCCInstr(MachineOpCode opCode) const {
|
bool isCCInstr(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_CC_FLAG;
|
return get(opCode).iclass & M_CC_FLAG;
|
||||||
}
|
}
|
||||||
bool isLogical(MachineOpCode opCode) const {
|
bool isLogical(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOGICAL_FLAG;
|
return get(opCode).iclass & M_LOGICAL_FLAG;
|
||||||
}
|
}
|
||||||
bool isIntInstr(MachineOpCode opCode) const {
|
bool isIntInstr(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_INT_FLAG;
|
return get(opCode).iclass & M_INT_FLAG;
|
||||||
}
|
}
|
||||||
bool isFloatInstr(MachineOpCode opCode) const {
|
bool isFloatInstr(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_FLOAT_FLAG;
|
return get(opCode).iclass & M_FLOAT_FLAG;
|
||||||
}
|
}
|
||||||
bool isConditional(MachineOpCode opCode) const {
|
bool isConditional(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_CONDL_FLAG;
|
return get(opCode).iclass & M_CONDL_FLAG;
|
||||||
}
|
}
|
||||||
bool isLoad(MachineOpCode opCode) const {
|
bool isLoad(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOAD_FLAG;
|
return get(opCode).iclass & M_LOAD_FLAG;
|
||||||
}
|
}
|
||||||
bool isPrefetch(MachineOpCode opCode) const {
|
bool isPrefetch(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_PREFETCH_FLAG;
|
return get(opCode).iclass & M_PREFETCH_FLAG;
|
||||||
}
|
}
|
||||||
bool isLoadOrPrefetch(MachineOpCode opCode) const {
|
bool isLoadOrPrefetch(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOAD_FLAG
|
return get(opCode).iclass & M_LOAD_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_PREFETCH_FLAG;
|
|| get(opCode).iclass & M_PREFETCH_FLAG;
|
||||||
}
|
}
|
||||||
bool isStore(MachineOpCode opCode) const {
|
bool isStore(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_STORE_FLAG;
|
return get(opCode).iclass & M_STORE_FLAG;
|
||||||
}
|
}
|
||||||
bool isMemoryAccess(MachineOpCode opCode) const {
|
bool isMemoryAccess(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOAD_FLAG
|
return get(opCode).iclass & M_LOAD_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_PREFETCH_FLAG
|
|| get(opCode).iclass & M_PREFETCH_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_STORE_FLAG;
|
|| get(opCode).iclass & M_STORE_FLAG;
|
||||||
}
|
}
|
||||||
bool isDummyPhiInstr(const MachineOpCode opCode) const {
|
bool isDummyPhiInstr(const MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_DUMMY_PHI_FLAG;
|
return get(opCode).iclass & M_DUMMY_PHI_FLAG;
|
||||||
}
|
}
|
||||||
bool isPseudoInstr(const MachineOpCode opCode) const {
|
bool isPseudoInstr(const MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_PSEUDO_FLAG;
|
return get(opCode).iclass & M_PSEUDO_FLAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if an instruction can be issued before its operands are ready,
|
// Check if an instruction can be issued before its operands are ready,
|
||||||
@@ -201,11 +203,11 @@ public:
|
|||||||
// Latencies for individual instructions and instruction pairs
|
// Latencies for individual instructions and instruction pairs
|
||||||
//
|
//
|
||||||
virtual int minLatency(MachineOpCode opCode) const {
|
virtual int minLatency(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).latency;
|
return get(opCode).latency;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual int maxLatency(MachineOpCode opCode) const {
|
virtual int maxLatency(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).latency;
|
return get(opCode).latency;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -229,8 +231,8 @@ public:
|
|||||||
//
|
//
|
||||||
virtual uint64_t maxImmedConstant(MachineOpCode opCode,
|
virtual uint64_t maxImmedConstant(MachineOpCode opCode,
|
||||||
bool &isSignExtended) const {
|
bool &isSignExtended) const {
|
||||||
isSignExtended = getDescriptor(opCode).immedIsSignExtended;
|
isSignExtended = get(opCode).immedIsSignExtended;
|
||||||
return getDescriptor(opCode).maxImmedConst;
|
return get(opCode).maxImmedConst;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
@@ -81,7 +81,6 @@ struct MachineInstrDescriptor {
|
|||||||
|
|
||||||
|
|
||||||
class MachineInstrInfo {
|
class MachineInstrInfo {
|
||||||
private:
|
|
||||||
const MachineInstrDescriptor* desc; // raw array to allow static init'n
|
const MachineInstrDescriptor* desc; // raw array to allow static init'n
|
||||||
unsigned descSize; // number of entries in the desc array
|
unsigned descSize; // number of entries in the desc array
|
||||||
unsigned numRealOpCodes; // number of non-dummy op codes
|
unsigned numRealOpCodes; // number of non-dummy op codes
|
||||||
@@ -96,25 +95,28 @@ public:
|
|||||||
unsigned getNumRealOpCodes() const { return numRealOpCodes; }
|
unsigned getNumRealOpCodes() const { return numRealOpCodes; }
|
||||||
unsigned getNumTotalOpCodes() const { return descSize; }
|
unsigned getNumTotalOpCodes() const { return descSize; }
|
||||||
|
|
||||||
const MachineInstrDescriptor& getDescriptor(MachineOpCode opCode) const {
|
/// get - Return the machine instruction descriptor that corresponds to the
|
||||||
|
/// specified instruction opcode.
|
||||||
|
///
|
||||||
|
const MachineInstrDescriptor& get(MachineOpCode opCode) const {
|
||||||
assert(opCode >= 0 && opCode < (int)descSize);
|
assert(opCode >= 0 && opCode < (int)descSize);
|
||||||
return desc[opCode];
|
return desc[opCode];
|
||||||
}
|
}
|
||||||
|
|
||||||
int getNumOperands(MachineOpCode opCode) const {
|
int getNumOperands(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).numOperands;
|
return get(opCode).numOperands;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getResultPos(MachineOpCode opCode) const {
|
int getResultPos(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).resultPos;
|
return get(opCode).resultPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getNumDelaySlots(MachineOpCode opCode) const {
|
unsigned getNumDelaySlots(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).numDelaySlots;
|
return get(opCode).numDelaySlots;
|
||||||
}
|
}
|
||||||
|
|
||||||
InstrSchedClass getSchedClass(MachineOpCode opCode) const {
|
InstrSchedClass getSchedClass(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).schedClass;
|
return get(opCode).schedClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -122,66 +124,66 @@ public:
|
|||||||
// flags listed above.
|
// flags listed above.
|
||||||
//
|
//
|
||||||
unsigned getIClass(MachineOpCode opCode) const {
|
unsigned getIClass(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass;
|
return get(opCode).iclass;
|
||||||
}
|
}
|
||||||
bool isNop(MachineOpCode opCode) const {
|
bool isNop(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_NOP_FLAG;
|
return get(opCode).iclass & M_NOP_FLAG;
|
||||||
}
|
}
|
||||||
bool isBranch(MachineOpCode opCode) const {
|
bool isBranch(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_BRANCH_FLAG;
|
return get(opCode).iclass & M_BRANCH_FLAG;
|
||||||
}
|
}
|
||||||
bool isCall(MachineOpCode opCode) const {
|
bool isCall(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_CALL_FLAG;
|
return get(opCode).iclass & M_CALL_FLAG;
|
||||||
}
|
}
|
||||||
bool isReturn(MachineOpCode opCode) const {
|
bool isReturn(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_RET_FLAG;
|
return get(opCode).iclass & M_RET_FLAG;
|
||||||
}
|
}
|
||||||
bool isControlFlow(MachineOpCode opCode) const {
|
bool isControlFlow(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_BRANCH_FLAG
|
return get(opCode).iclass & M_BRANCH_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_CALL_FLAG
|
|| get(opCode).iclass & M_CALL_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_RET_FLAG;
|
|| get(opCode).iclass & M_RET_FLAG;
|
||||||
}
|
}
|
||||||
bool isArith(MachineOpCode opCode) const {
|
bool isArith(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_ARITH_FLAG;
|
return get(opCode).iclass & M_ARITH_FLAG;
|
||||||
}
|
}
|
||||||
bool isCCInstr(MachineOpCode opCode) const {
|
bool isCCInstr(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_CC_FLAG;
|
return get(opCode).iclass & M_CC_FLAG;
|
||||||
}
|
}
|
||||||
bool isLogical(MachineOpCode opCode) const {
|
bool isLogical(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOGICAL_FLAG;
|
return get(opCode).iclass & M_LOGICAL_FLAG;
|
||||||
}
|
}
|
||||||
bool isIntInstr(MachineOpCode opCode) const {
|
bool isIntInstr(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_INT_FLAG;
|
return get(opCode).iclass & M_INT_FLAG;
|
||||||
}
|
}
|
||||||
bool isFloatInstr(MachineOpCode opCode) const {
|
bool isFloatInstr(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_FLOAT_FLAG;
|
return get(opCode).iclass & M_FLOAT_FLAG;
|
||||||
}
|
}
|
||||||
bool isConditional(MachineOpCode opCode) const {
|
bool isConditional(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_CONDL_FLAG;
|
return get(opCode).iclass & M_CONDL_FLAG;
|
||||||
}
|
}
|
||||||
bool isLoad(MachineOpCode opCode) const {
|
bool isLoad(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOAD_FLAG;
|
return get(opCode).iclass & M_LOAD_FLAG;
|
||||||
}
|
}
|
||||||
bool isPrefetch(MachineOpCode opCode) const {
|
bool isPrefetch(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_PREFETCH_FLAG;
|
return get(opCode).iclass & M_PREFETCH_FLAG;
|
||||||
}
|
}
|
||||||
bool isLoadOrPrefetch(MachineOpCode opCode) const {
|
bool isLoadOrPrefetch(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOAD_FLAG
|
return get(opCode).iclass & M_LOAD_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_PREFETCH_FLAG;
|
|| get(opCode).iclass & M_PREFETCH_FLAG;
|
||||||
}
|
}
|
||||||
bool isStore(MachineOpCode opCode) const {
|
bool isStore(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_STORE_FLAG;
|
return get(opCode).iclass & M_STORE_FLAG;
|
||||||
}
|
}
|
||||||
bool isMemoryAccess(MachineOpCode opCode) const {
|
bool isMemoryAccess(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_LOAD_FLAG
|
return get(opCode).iclass & M_LOAD_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_PREFETCH_FLAG
|
|| get(opCode).iclass & M_PREFETCH_FLAG
|
||||||
|| getDescriptor(opCode).iclass & M_STORE_FLAG;
|
|| get(opCode).iclass & M_STORE_FLAG;
|
||||||
}
|
}
|
||||||
bool isDummyPhiInstr(const MachineOpCode opCode) const {
|
bool isDummyPhiInstr(const MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_DUMMY_PHI_FLAG;
|
return get(opCode).iclass & M_DUMMY_PHI_FLAG;
|
||||||
}
|
}
|
||||||
bool isPseudoInstr(const MachineOpCode opCode) const {
|
bool isPseudoInstr(const MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).iclass & M_PSEUDO_FLAG;
|
return get(opCode).iclass & M_PSEUDO_FLAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if an instruction can be issued before its operands are ready,
|
// Check if an instruction can be issued before its operands are ready,
|
||||||
@@ -201,11 +203,11 @@ public:
|
|||||||
// Latencies for individual instructions and instruction pairs
|
// Latencies for individual instructions and instruction pairs
|
||||||
//
|
//
|
||||||
virtual int minLatency(MachineOpCode opCode) const {
|
virtual int minLatency(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).latency;
|
return get(opCode).latency;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual int maxLatency(MachineOpCode opCode) const {
|
virtual int maxLatency(MachineOpCode opCode) const {
|
||||||
return getDescriptor(opCode).latency;
|
return get(opCode).latency;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -229,8 +231,8 @@ public:
|
|||||||
//
|
//
|
||||||
virtual uint64_t maxImmedConstant(MachineOpCode opCode,
|
virtual uint64_t maxImmedConstant(MachineOpCode opCode,
|
||||||
bool &isSignExtended) const {
|
bool &isSignExtended) const {
|
||||||
isSignExtended = getDescriptor(opCode).immedIsSignExtended;
|
isSignExtended = get(opCode).immedIsSignExtended;
|
||||||
return getDescriptor(opCode).maxImmedConst;
|
return get(opCode).maxImmedConst;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user