mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
Fix argument type in MachineInstr::hasPropertyInBundle
The MCID::Flag enumeration now has more than 32 items, this means that the hasPropertyBundle argument 'Mask' can overflow. This patch changes the argument to be 64 bits instead. Patch by Mikael Nilsson. Differential Revision: https://reviews.llvm.org/D51596 llvm-svn: 341536
This commit is contained in:
parent
e8c0bf5c66
commit
0f0a07f963
@ -584,6 +584,8 @@ public:
|
||||
/// The second argument indicates whether the query should look inside
|
||||
/// instruction bundles.
|
||||
bool hasProperty(unsigned MCFlag, QueryType Type = AnyInBundle) const {
|
||||
assert(MCFlag < 64 &&
|
||||
"MCFlag out of range for bit mask in getFlags/hasPropertyInBundle.");
|
||||
// Inline the fast path for unbundled or bundle-internal instructions.
|
||||
if (Type == IgnoreBundle || !isBundled() || isBundledWithPred())
|
||||
return getDesc().getFlags() & (1ULL << MCFlag);
|
||||
@ -1550,7 +1552,7 @@ private:
|
||||
void AddRegOperandsToUseLists(MachineRegisterInfo&);
|
||||
|
||||
/// Slow path for hasProperty when we're dealing with a bundle.
|
||||
bool hasPropertyInBundle(unsigned Mask, QueryType Type) const;
|
||||
bool hasPropertyInBundle(uint64_t Mask, QueryType Type) const;
|
||||
|
||||
/// Implements the logic of getRegClassConstraintEffectForVReg for the
|
||||
/// this MI and the given operand index \p OpIdx.
|
||||
|
@ -517,7 +517,7 @@ uint16_t MachineInstr::mergeFlagsWith(const MachineInstr &Other) const {
|
||||
return getFlags() | Other.getFlags();
|
||||
}
|
||||
|
||||
bool MachineInstr::hasPropertyInBundle(unsigned Mask, QueryType Type) const {
|
||||
bool MachineInstr::hasPropertyInBundle(uint64_t Mask, QueryType Type) const {
|
||||
assert(!isBundledWithPred() && "Must be called on bundle header");
|
||||
for (MachineBasicBlock::const_instr_iterator MII = getIterator();; ++MII) {
|
||||
if (MII->getDesc().getFlags() & Mask) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user