mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-27 04:18:42 +00:00
Merging r230147:
------------------------------------------------------------------------ r230147 | Matthew.Arsenault | 2015-02-21 16:29:04 -0500 (Sat, 21 Feb 2015) | 2 lines R600/SI: Don't crash when getting immediate operand size ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@236022 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
1 parent
aa32ba6f0d
commit
32c2910a20
1 file changed
+21
-1
@@ -247,7 +247,27 @@ public:
|
||||
/// the register class of its machine operand.
|
||||
/// to infer the correct register class base on the other operands.
|
||||
const TargetRegisterClass *getOpRegClass(const MachineInstr &MI,
|
||||
unsigned OpNo) const;\
|
||||
unsigned OpNo) const;
|
||||
|
||||
/// \brief Return the size in bytes of the operand OpNo on the given
|
||||
// instruction opcode.
|
||||
unsigned getOpSize(uint16_t Opcode, unsigned OpNo) const {
|
||||
const MCOperandInfo &OpInfo = get(Opcode).OpInfo[OpNo];
|
||||
|
||||
if (OpInfo.RegClass == -1) {
|
||||
// If this is an immediate operand, this must be a 32-bit literal.
|
||||
assert(OpInfo.OperandType == MCOI::OPERAND_IMMEDIATE);
|
||||
return 4;
|
||||
}
|
||||
|
||||
return RI.getRegClass(OpInfo.RegClass)->getSize();
|
||||
}
|
||||
|
||||
/// \brief This form should usually be preferred since it handles operands
|
||||
/// with unknown register classes.
|
||||
unsigned getOpSize(const MachineInstr &MI, unsigned OpNo) const {
|
||||
return getOpRegClass(MI, OpNo)->getSize();
|
||||
}
|
||||
|
||||
/// \returns true if it is legal for the operand at index \p OpNo
|
||||
/// to read a VGPR.
|
||||
|
||||
Reference in new issue
Block a user