57 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
## Show that the DW_LNE_end_sequence opcode resets the line state
 | 
						|
## properly and the rows are printed correctly.
 | 
						|
 | 
						|
# RUN: llvm-mc -filetype obj -triple x86_64 %s -o %t.o
 | 
						|
# RUN: llvm-dwarfdump --debug-line %t.o | FileCheck %s --check-prefixes=HEADER,ROWS
 | 
						|
# RUN: llvm-dwarfdump --debug-line %t.o --verbose | FileCheck %s --check-prefix=ROWS
 | 
						|
 | 
						|
# HEADER:      Address            Line   Column File   ISA Discriminator Flags
 | 
						|
# HEADER-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
 | 
						|
# ROWS:        0x0000000012345678      1      0      1   0             1  is_stmt basic_block prologue_end epilogue_begin end_sequence
 | 
						|
# ROWS:        0x0000000000000001      2      0      1   0             0  is_stmt
 | 
						|
# ROWS:        0x0000000000000001      2      0      1   0             0  is_stmt end_sequence
 | 
						|
 | 
						|
.section .debug_line,"",@progbits
 | 
						|
.Line_table_start0:
 | 
						|
  .long   .Line_table_end0-.Line_table_start0-4   # Length of Unit
 | 
						|
  .short  5               # DWARF version number
 | 
						|
  .byte   8               # Address Size
 | 
						|
  .byte   0               # Segment Selector Size
 | 
						|
  .long   .Line_table_header_end0-.Line_table_params0     # Length of Prologue
 | 
						|
.Line_table_params0:
 | 
						|
  .byte   1               # Minimum Instruction Length
 | 
						|
  .byte   1               # Maximum Operations per Instruction
 | 
						|
  .byte   1               # Default is_stmt
 | 
						|
  .byte   -5              # Line Base
 | 
						|
  .byte   14              # Line Range
 | 
						|
  .byte   13              # Opcode Base
 | 
						|
  .byte   0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
 | 
						|
  # Directory table format
 | 
						|
  .byte   1               # One element per directory entry
 | 
						|
  .byte   1               # DW_LNCT_path
 | 
						|
  .byte   0x08            # DW_FORM_string
 | 
						|
  # Directory table entries
 | 
						|
  .byte   1               # 1 directory
 | 
						|
  .asciz  "/tmp"
 | 
						|
  # File table format
 | 
						|
  .byte   2               # 2 elements per file entry
 | 
						|
  .byte   1               # DW_LNCT_path
 | 
						|
  .byte   0x08            # DW_FORM_string
 | 
						|
  .byte   2               # DW_LNCT_directory_index
 | 
						|
  .byte   0x0b            # DW_FORM_data1
 | 
						|
  # File table entries
 | 
						|
  .byte   1               # 1 file
 | 
						|
  .asciz  "a.c"
 | 
						|
  .byte   0
 | 
						|
.Line_table_header_end0:
 | 
						|
  .byte   0,9,2           # DW_LNE_set_address
 | 
						|
  .quad   0x12345678
 | 
						|
  .byte   7               # DW_LNS_set_basic_block
 | 
						|
  .byte   10              # DW_LNS_set_prologue_end
 | 
						|
  .byte   11              # DW_LNS_set_epilogue_begin
 | 
						|
  .byte   0,2,4,1         # DW_LNE_set_discriminator 1
 | 
						|
  .byte   0,1,1           # DW_LNE_end_sequence
 | 
						|
  .byte   33              # address += 1, line += 1
 | 
						|
  .byte   0,1,1           # DW_LNE_end_sequence
 | 
						|
.Line_table_end0:
 |