aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MC/MCDwarf.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-11-24 04:33:48 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-11-24 04:33:48 +0000
commitff233c9e5c3e439fd1eed84b9a9e88a5370572db (patch)
treebbe6f884b53a5b9b646008789a2706560822eeec /lib/MC/MCDwarf.cpp
parent7f74d2c2c197eec76ae2b41fed9c227c0dcc04cb (diff)
downloadexternal_llvm-ff233c9e5c3e439fd1eed84b9a9e88a5370572db.zip
external_llvm-ff233c9e5c3e439fd1eed84b9a9e88a5370572db.tar.gz
external_llvm-ff233c9e5c3e439fd1eed84b9a9e88a5370572db.tar.bz2
Change the representation of MCCFIInstruction.
We now store the Register and Offset directly. MachineLocation is gone (from this file)! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168536 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCDwarf.cpp')
-rw-r--r--lib/MC/MCDwarf.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index 46d00dc..4a07537 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -939,7 +939,7 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
switch (Instr.getOperation()) {
case MCCFIInstruction::OpUndefined: {
- unsigned Reg = Instr.getDestination().getReg();
+ unsigned Reg = Instr.getRegister();
if (VerboseAsm) {
Streamer.AddComment("DW_CFA_undefined");
Streamer.AddComment(Twine("Reg ") + Twine(Reg));
@@ -950,7 +950,6 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
}
case MCCFIInstruction::OpAdjustCfaOffset:
case MCCFIInstruction::OpDefCfaOffset: {
- const MachineLocation &Src = Instr.getSource();
const bool IsRelative =
Instr.getOperation() == MCCFIInstruction::OpAdjustCfaOffset;
@@ -959,9 +958,9 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
Streamer.EmitIntValue(dwarf::DW_CFA_def_cfa_offset, 1);
if (IsRelative)
- CFAOffset += Src.getOffset();
+ CFAOffset += Instr.getOffset();
else
- CFAOffset = -Src.getOffset();
+ CFAOffset = -Instr.getOffset();
if (VerboseAsm)
Streamer.AddComment(Twine("Offset " + Twine(CFAOffset)));
@@ -970,17 +969,15 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
return;
}
case MCCFIInstruction::OpDefCfa: {
- const MachineLocation &Src = Instr.getSource();
-
if (VerboseAsm)
Streamer.AddComment("DW_CFA_def_cfa");
Streamer.EmitIntValue(dwarf::DW_CFA_def_cfa, 1);
if (VerboseAsm)
- Streamer.AddComment(Twine("Reg ") + Twine(Src.getReg()));
- Streamer.EmitULEB128IntValue(Src.getReg());
+ Streamer.AddComment(Twine("Reg ") + Twine(Instr.getRegister()));
+ Streamer.EmitULEB128IntValue(Instr.getRegister());
- CFAOffset = -Src.getOffset();
+ CFAOffset = -Instr.getOffset();
if (VerboseAsm)
Streamer.AddComment(Twine("Offset " + Twine(CFAOffset)));
@@ -990,29 +987,24 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
}
case MCCFIInstruction::OpDefCfaRegister: {
- const MachineLocation &Dst = Instr.getDestination();
-
- assert(Dst.isReg() && "Machine move not supported yet.");
if (VerboseAsm)
Streamer.AddComment("DW_CFA_def_cfa_register");
Streamer.EmitIntValue(dwarf::DW_CFA_def_cfa_register, 1);
if (VerboseAsm)
- Streamer.AddComment(Twine("Reg ") + Twine(Dst.getReg()));
- Streamer.EmitULEB128IntValue(Dst.getReg());
+ Streamer.AddComment(Twine("Reg ") + Twine(Instr.getRegister()));
+ Streamer.EmitULEB128IntValue(Instr.getRegister());
return;
}
case MCCFIInstruction::OpOffset:
case MCCFIInstruction::OpRelOffset: {
- const MachineLocation &Dst = Instr.getDestination();
- const MachineLocation &Src = Instr.getSource();
const bool IsRelative =
Instr.getOperation() == MCCFIInstruction::OpRelOffset;
- unsigned Reg = Src.getReg();
- int Offset = Dst.getOffset();
+ unsigned Reg = Instr.getRegister();
+ int Offset = Instr.getOffset();
if (IsRelative)
Offset -= CFAOffset;
Offset = Offset / dataAlignmentFactor;
@@ -1049,7 +1041,7 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
Streamer.EmitIntValue(dwarf::DW_CFA_restore_state, 1);
return;
case MCCFIInstruction::OpSameValue: {
- unsigned Reg = Instr.getDestination().getReg();
+ unsigned Reg = Instr.getRegister();
if (VerboseAsm) Streamer.AddComment("DW_CFA_same_value");
Streamer.EmitIntValue(dwarf::DW_CFA_same_value, 1);
if (VerboseAsm) Streamer.AddComment(Twine("Reg ") + Twine(Reg));
@@ -1057,7 +1049,7 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer,
return;
}
case MCCFIInstruction::OpRestore: {
- unsigned Reg = Instr.getDestination().getReg();
+ unsigned Reg = Instr.getRegister();
if (VerboseAsm) {
Streamer.AddComment("DW_CFA_restore");
Streamer.AddComment(Twine("Reg ") + Twine(Reg));