Emit arange padding with a single directive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198700 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2014-01-07 19:28:14 +00:00
parent 6f9a004738
commit 5f9cb7b569
3 changed files with 6 additions and 17 deletions

View File

@ -2817,9 +2817,8 @@ void DwarfDebug::emitDebugARanges() {
unsigned TupleSize = PtrSize * 2; unsigned TupleSize = PtrSize * 2;
// 7.20 in the Dwarf specs requires the table to be aligned to a tuple. // 7.20 in the Dwarf specs requires the table to be aligned to a tuple.
unsigned Padding = 0; unsigned Padding =
while (((sizeof(int32_t) + ContentSize + Padding) % TupleSize) != 0) OffsetToAlignment(sizeof(int32_t) + ContentSize, TupleSize);
Padding++;
ContentSize += Padding; ContentSize += Padding;
ContentSize += (List.size() + 1) * TupleSize; ContentSize += (List.size() + 1) * TupleSize;
@ -2836,8 +2835,7 @@ void DwarfDebug::emitDebugARanges() {
Asm->OutStreamer.AddComment("Segment Size (in bytes)"); Asm->OutStreamer.AddComment("Segment Size (in bytes)");
Asm->EmitInt8(0); Asm->EmitInt8(0);
for (unsigned n = 0; n < Padding; n++) Asm->OutStreamer.EmitFill(Padding, 0xff);
Asm->EmitInt8(0xff);
for (unsigned n = 0; n < List.size(); n++) { for (unsigned n = 0; n < List.size(); n++) {
const ArangeSpan &Span = List[n]; const ArangeSpan &Span = List[n];

View File

@ -7,10 +7,7 @@
; CHECK-NEXT: .byte 8 # Address Size (in bytes) ; CHECK-NEXT: .byte 8 # Address Size (in bytes)
; CHECK-NEXT: .byte 0 # Segment Size (in bytes) ; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
; -- alignment -- ; -- alignment --
; CHECK-NEXT: .byte ; CHECK-NEXT: .zero 4,255
; CHECK-NEXT: .byte
; CHECK-NEXT: .byte
; CHECK-NEXT: .byte
; <common symbols> - it should have made one span for each symbol. ; <common symbols> - it should have made one span for each symbol.
; CHECK-NEXT: .quad some_bss ; CHECK-NEXT: .quad some_bss

View File

@ -6,10 +6,7 @@
; CHECK-NEXT: .long .L.debug_info_begin0 # Offset Into Debug Info Section ; CHECK-NEXT: .long .L.debug_info_begin0 # Offset Into Debug Info Section
; CHECK-NEXT: .byte 8 # Address Size (in bytes) ; CHECK-NEXT: .byte 8 # Address Size (in bytes)
; CHECK-NEXT: .byte 0 # Segment Size (in bytes) ; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
; CHECK-NEXT: .byte 255 ; CHECK-NEXT: .zero 4,255
; CHECK-NEXT: .byte 255
; CHECK-NEXT: .byte 255
; CHECK-NEXT: .byte 255
; CHECK-NEXT: .quad kittens ; CHECK-NEXT: .quad kittens
; CHECK-NEXT: .Lset0 = rainbows-kittens ; CHECK-NEXT: .Lset0 = rainbows-kittens
; CHECK-NEXT: .quad .Lset0 ; CHECK-NEXT: .quad .Lset0
@ -22,10 +19,7 @@
; CHECK-NEXT: .long .L.debug_info_begin1 # Offset Into Debug Info Section ; CHECK-NEXT: .long .L.debug_info_begin1 # Offset Into Debug Info Section
; CHECK-NEXT: .byte 8 # Address Size (in bytes) ; CHECK-NEXT: .byte 8 # Address Size (in bytes)
; CHECK-NEXT: .byte 0 # Segment Size (in bytes) ; CHECK-NEXT: .byte 0 # Segment Size (in bytes)
; CHECK-NEXT: .byte 255 ; CHECK-NEXT: .zero 4,255
; CHECK-NEXT: .byte 255
; CHECK-NEXT: .byte 255
; CHECK-NEXT: .byte 255
; CHECK-NEXT: .quad rainbows ; CHECK-NEXT: .quad rainbows
; CHECK-NEXT: .Lset1 = .Ldebug_end0-rainbows ; CHECK-NEXT: .Lset1 = .Ldebug_end0-rainbows
; CHECK-NEXT: .quad .Lset1 ; CHECK-NEXT: .quad .Lset1