mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Debug Info: Implement DwarfUnit::addRegisterOffset using DwarfExpression.
No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225707 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -24,6 +24,7 @@ class TargetMachine;
|
||||
/// independently of whether they are emitted into a DIE or into a .debug_loc
|
||||
/// entry.
|
||||
class DwarfExpression {
|
||||
protected:
|
||||
TargetMachine &TM;
|
||||
public:
|
||||
DwarfExpression(TargetMachine &TM) : TM(TM) {}
|
||||
@ -31,6 +32,9 @@ public:
|
||||
virtual void EmitOp(uint8_t Op, const char* Comment = nullptr) = 0;
|
||||
virtual void EmitSigned(int Value) = 0;
|
||||
virtual void EmitUnsigned(unsigned Value) = 0;
|
||||
|
||||
virtual unsigned getFrameRegister() = 0;
|
||||
|
||||
/// Emit a dwarf register operation.
|
||||
void AddReg(int DwarfReg, const char* Comment = nullptr);
|
||||
/// Emit an (double-)indirect dwarf register operation.
|
||||
@ -43,6 +47,10 @@ public:
|
||||
/// Emit a shift-right dwarf expression.
|
||||
void AddShr(unsigned ShiftBy);
|
||||
|
||||
/// Emit an indirect dwarf register operation for the given machine register.
|
||||
/// Returns false if no DWARF register exists for MachineReg.
|
||||
bool AddMachineRegIndirect(unsigned MachineReg, int Offset);
|
||||
|
||||
/// \brief Emit a partial DWARF register operation.
|
||||
/// \param MLoc the register
|
||||
/// \param PieceSize size and
|
||||
|
Reference in New Issue
Block a user