Clarify the doxygen comment for AsmPrinter::EmitDwarfRegOpPiece and add
authorAdrian Prantl <aprantl@apple.com>
Sun, 27 Apr 2014 18:50:45 +0000 (18:50 +0000)
committerAdrian Prantl <aprantl@apple.com>
Sun, 27 Apr 2014 18:50:45 +0000 (18:50 +0000)
default arguments to the function.

No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207372 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/AsmPrinter.h
lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp

index f40f3337c7bdf0a5f3efebce7127676cc417b732..51eeb0fb77cfd2bc179b74e4d3374914e66866bf 100644 (file)
@@ -430,14 +430,21 @@ namespace llvm {
     /// encoding specified.
     virtual unsigned getISAEncoding() { return 0; }
 
-    /// \brief Emit a partial dwarf register operation.
+    /// \brief Emit a partial DWARF register operation.
     /// \param MLoc             the register
     /// \param PieceSizeInBits  size and
     /// \param PieceOffsetBits  offset of the piece in bits, if this is one
     ///                         piece of an aggregate value.
+    ///
+    /// If size and offset is zero an operation for the entire
+    /// register is emitted: Some targets do not provide a DWARF
+    /// register number for every register.  If this is the case, this
+    /// function will attempt to emit a DWARF register by emitting a
+    /// piece of a super-register or by piecing together multiple
+    /// subregisters that alias the register.
     void EmitDwarfRegOpPiece(ByteStreamer &BS, const MachineLocation &MLoc,
-                             unsigned PieceSize,
-                             unsigned PieceOffset) const;
+                             unsigned PieceSize = 0,
+                             unsigned PieceOffset = 0) const;
 
     /// EmitDwarfRegOp - Emit dwarf register operation.
     /// \param Indirect   whether this is a register-indirect address
index 66606caa73dd174577220ccfc4c480c288e53b53..02cd12be045334797db16b053723b2bcf3d6b0ce 100644 (file)
@@ -240,15 +240,15 @@ static void emitDwarfOpShr(ByteStreamer &Streamer,
   Streamer.EmitInt8(dwarf::DW_OP_shr, "DW_OP_shr");
 }
 
-/// Some targets do not provide a DWARF register number for every
-/// register.  This function attempts to emit a DWARF register by
-/// emitting a piece of a super-register or by piecing together
-/// multiple subregisters that alias the register.
+// Some targets do not provide a DWARF register number for every
+// register.  This function attempts to emit a DWARF register by
+// emitting a piece of a super-register or by piecing together
+// multiple subregisters that alias the register.
 void AsmPrinter::EmitDwarfRegOpPiece(ByteStreamer &Streamer,
                                      const MachineLocation &MLoc,
                                      unsigned PieceSizeInBits,
                                      unsigned PieceOffsetInBits) const {
-  assert(!MLoc.isIndirect());
+  assert(MLoc.isReg() && "MLoc must be a register");
   const TargetRegisterInfo *TRI = TM.getRegisterInfo();
   int Reg = TRI->getDwarfRegNum(MLoc.getReg(), false);
 
@@ -346,7 +346,7 @@ void AsmPrinter::EmitDwarfRegOp(ByteStreamer &Streamer,
     }
 
     // Attempt to find a valid super- or sub-register.
-    return EmitDwarfRegOpPiece(Streamer, MLoc, 0, 0);
+    return EmitDwarfRegOpPiece(Streamer, MLoc);
   }
 
   if (MLoc.isIndirect())