mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
McARM: Fill in ASMOperand::dump() for memory operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123745 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2637dc9a25
commit
6ec56204f3
@ -222,6 +222,40 @@ public:
|
|||||||
return Imm.Val;
|
return Imm.Val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @name Memory Operand Accessors
|
||||||
|
/// @{
|
||||||
|
|
||||||
|
unsigned getMemBaseRegNum() const {
|
||||||
|
return Mem.BaseRegNum;
|
||||||
|
}
|
||||||
|
unsigned getMemOffsetRegNum() const {
|
||||||
|
assert(Mem.OffsetIsReg && "Invalid access!");
|
||||||
|
return Mem.Offset.RegNum;
|
||||||
|
}
|
||||||
|
const MCExpr *getMemOffset() const {
|
||||||
|
assert(!Mem.OffsetIsReg && "Invalid access!");
|
||||||
|
return Mem.Offset.Value;
|
||||||
|
}
|
||||||
|
unsigned getMemOffsetRegShifted() const {
|
||||||
|
assert(Mem.OffsetIsReg && "Invalid access!");
|
||||||
|
return Mem.OffsetRegShifted;
|
||||||
|
}
|
||||||
|
const MCExpr *getMemShiftAmount() const {
|
||||||
|
assert(Mem.OffsetIsReg && Mem.OffsetRegShifted && "Invalid access!");
|
||||||
|
return Mem.ShiftAmount;
|
||||||
|
}
|
||||||
|
enum ShiftType getMemShiftType() const {
|
||||||
|
assert(Mem.OffsetIsReg && Mem.OffsetRegShifted && "Invalid access!");
|
||||||
|
return Mem.ShiftType;
|
||||||
|
}
|
||||||
|
bool getMemPreindexed() const { return Mem.Preindexed; }
|
||||||
|
bool getMemPostindexed() const { return Mem.Postindexed; }
|
||||||
|
bool getMemOffsetIsReg() const { return Mem.OffsetIsReg; }
|
||||||
|
bool getMemNegative() const { return Mem.Negative; }
|
||||||
|
bool getMemWriteback() const { return Mem.Writeback; }
|
||||||
|
|
||||||
|
/// @}
|
||||||
|
|
||||||
bool isCondCode() const { return Kind == CondCode; }
|
bool isCondCode() const { return Kind == CondCode; }
|
||||||
bool isCCOut() const { return Kind == CCOut; }
|
bool isCCOut() const { return Kind == CCOut; }
|
||||||
bool isImm() const { return Kind == Immediate; }
|
bool isImm() const { return Kind == Immediate; }
|
||||||
@ -459,7 +493,28 @@ void ARMOperand::dump(raw_ostream &OS) const {
|
|||||||
getImm()->print(OS);
|
getImm()->print(OS);
|
||||||
break;
|
break;
|
||||||
case Memory:
|
case Memory:
|
||||||
OS << "<memory>";
|
OS << "<memory "
|
||||||
|
<< "base:" << getMemBaseRegNum();
|
||||||
|
if (getMemOffsetIsReg()) {
|
||||||
|
OS << " offset:<register " << getMemOffsetRegNum();
|
||||||
|
if (getMemOffsetRegShifted()) {
|
||||||
|
OS << " offset-shift-type:" << getMemShiftType();
|
||||||
|
OS << " offset-shift-amount:" << *getMemShiftAmount();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
OS << " offset:" << *getMemOffset();
|
||||||
|
}
|
||||||
|
if (getMemOffsetIsReg())
|
||||||
|
OS << " (offset-is-reg)";
|
||||||
|
if (getMemPreindexed())
|
||||||
|
OS << " (pre-indexed)";
|
||||||
|
if (getMemPostindexed())
|
||||||
|
OS << " (post-indexed)";
|
||||||
|
if (getMemNegative())
|
||||||
|
OS << " (negative)";
|
||||||
|
if (getMemWriteback())
|
||||||
|
OS << " (writeback)";
|
||||||
|
OS << ">";
|
||||||
break;
|
break;
|
||||||
case Register:
|
case Register:
|
||||||
OS << "<register " << getReg() << ">";
|
OS << "<register " << getReg() << ">";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user