Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-dwarfdump / X86 / statistics-base-address.s
blobb9b4600f8737e5075769c9f6a6cc6b48f745606a
1 # This tests the computation of the scope bytes covered by local variables. In
2 # particular, the case when the variable starts in the middle of the enclosing
3 # scope, and the compile unit has both DW_AT_ranges and DW_AT_low_pc attributes.
5 # RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj -o %t
6 # RUN: llvm-dwarfdump --statistics %t | FileCheck %s
8 # CHECK: "sum_all_local_vars(#bytes in parent scope)": 12,
9 # CHECK: "sum_all_local_vars(#bytes in parent scope covered by DW_AT_location)": 8,
11 .text
13 # Add padding to ensure the function does not start at address zero.
14 .zero 256
16 f: # @f
17 .Lf_begin:
18 .zero 4
19 .Lx_begin:
20 .zero 8
21 .Lf_end:
23 .section .debug_ranges,"",@progbits
24 .Ldebug_ranges:
25 .quad .Lf_begin
26 .quad .Lf_end
27 .quad 0
28 .quad 0
30 .section .debug_loc,"",@progbits
31 .Ldebug_loc:
32 .quad .Lx_begin
33 .quad .Lf_end
34 .short 1 # Loc expr size
35 .byte 85 # super-register DW_OP_reg5
36 .quad 0
37 .quad 0
40 .section .debug_abbrev,"",@progbits
41 .byte 1 # Abbreviation Code
42 .byte 17 # DW_TAG_compile_unit
43 .byte 1 # DW_CHILDREN_yes
44 .byte 37 # DW_AT_producer
45 .byte 8 # DW_FORM_string
46 .byte 17 # DW_AT_low_pc
47 .byte 1 # DW_FORM_addr
48 .byte 85 # DW_AT_ranges
49 .byte 23 # DW_FORM_sec_offset
50 .byte 0 # EOM(1)
51 .byte 0 # EOM(2)
52 .byte 2 # Abbreviation Code
53 .byte 46 # DW_TAG_subprogram
54 .byte 1 # DW_CHILDREN_yes
55 .byte 17 # DW_AT_low_pc
56 .byte 1 # DW_FORM_addr
57 .byte 18 # DW_AT_high_pc
58 .byte 6 # DW_FORM_data4
59 .byte 3 # DW_AT_name
60 .byte 8 # DW_FORM_string
61 .byte 0 # EOM(1)
62 .byte 0 # EOM(2)
63 .byte 3 # Abbreviation Code
64 .byte 52 # DW_TAG_variable
65 .byte 0 # DW_CHILDREN_no
66 .byte 2 # DW_AT_location
67 .byte 23 # DW_FORM_sec_offset
68 .byte 3 # DW_AT_name
69 .byte 8 # DW_FORM_string
70 .byte 73 # DW_AT_type
71 .byte 19 # DW_FORM_ref4
72 .byte 0 # EOM(1)
73 .byte 0 # EOM(2)
74 .byte 5 # Abbreviation Code
75 .byte 36 # DW_TAG_base_type
76 .byte 0 # DW_CHILDREN_no
77 .byte 3 # DW_AT_name
78 .byte 8 # DW_FORM_string
79 .byte 62 # DW_AT_encoding
80 .byte 11 # DW_FORM_data1
81 .byte 11 # DW_AT_byte_size
82 .byte 11 # DW_FORM_data1
83 .byte 0 # EOM(1)
84 .byte 0 # EOM(2)
85 .byte 0 # EOM(3)
87 .section .debug_info,"",@progbits
88 .Lcu_begin:
89 .long .Ldebug_info_end-.Ldebug_info_start # Length of Unit
90 .Ldebug_info_start:
91 .short 4 # DWARF version number
92 .long .debug_abbrev # Offset Into Abbrev. Section
93 .byte 8 # Address Size (in bytes)
94 .byte 1 # Abbrev [1] 0xb:0x64 DW_TAG_compile_unit
95 .asciz "Hand-written DWARF" # DW_AT_producer
96 .quad 0 # DW_AT_low_pc
97 .long .Ldebug_ranges # DW_AT_ranges
98 .byte 2 # Abbrev [2] 0x2a:0x28 DW_TAG_subprogram
99 .quad .Lf_begin # DW_AT_low_pc
100 .long .Lf_end-.Lf_begin # DW_AT_high_pc
101 .asciz "f" # DW_AT_name
102 .byte 3 # Abbrev [3] 0x43:0xe DW_TAG_variable
103 .long .Ldebug_loc # DW_AT_location
104 .asciz "x" # DW_AT_name
105 .long .Lint # DW_AT_type
106 .byte 0 # End Of Children Mark
107 .Lint:
108 .byte 5 # Abbrev [5] 0x67:0x7 DW_TAG_base_type
109 .asciz "int" # DW_AT_name
110 .byte 5 # DW_AT_encoding
111 .byte 4 # DW_AT_byte_size
112 .byte 0 # End Of Children Mark
113 .Ldebug_info_end: