Home | History | Annotate | Line # | Download | only in gdb.arch
amd64-prologue-xmm.s revision 1.11
      1 /* This testcase is part of GDB, the GNU debugger.
      2 
      3    Copyright 2011-2024 Free Software Foundation, Inc.
      4 
      5    This program is free software; you can redistribute it and/or modify
      6    it under the terms of the GNU General Public License as published by
      7    the Free Software Foundation; either version 3 of the License, or
      8    (at your option) any later version.
      9 
     10    This program is distributed in the hope that it will be useful,
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13    GNU General Public License for more details.
     14 
     15    You should have received a copy of the GNU General Public License
     16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17 
     18 /* This file is compiled from gdb.arch/amd64-prologue-xmm.c
     19    using -g -dA -S.  */
     20 
     21 	.file	"amd64-prologue-xmm.c"
     22 	.text
     23 .Ltext0:
     24 	.local	v
     25 	.comm	v,4,4
     26 	.local	fail
     27 	.comm	fail,4,4
     28 	.type	func, @function
     29 func:
     30 .LFB0:
     31 	.file 1 "gdb.arch/amd64-prologue-xmm.c"
     32 	# gdb.arch/amd64-prologue-xmm.c:22
     33 	.loc 1 22 0
     34 	.cfi_startproc
     35 	# basic block 2
     36 	pushq	%rbp
     37 	.cfi_def_cfa_offset 16
     38 	.cfi_offset 6, -16
     39 	movq	%rsp, %rbp
     40 	.cfi_def_cfa_register 6
     41 	subq	$72, %rsp
     42 	movq	%rsi, -168(%rbp)
     43 	movq	%rdx, -160(%rbp)
     44 	movq	%rcx, -152(%rbp)
     45 	movq	%r8, -144(%rbp)
     46 	movq	%r9, -136(%rbp)
     47 	testb	%al, %al
     48 	je	.L2
     49 	# basic block 3
     50 	# gdb.arch/amd64-prologue-xmm.c:22
     51 	.loc 1 22 0
     52 	movaps	%xmm0, -128(%rbp)
     53 	movaps	%xmm1, -112(%rbp)
     54 	movaps	%xmm2, -96(%rbp)
     55 	movaps	%xmm3, -80(%rbp)
     56 	movaps	%xmm4, -64(%rbp)
     57 	movaps	%xmm5, -48(%rbp)
     58 	movaps	%xmm6, -32(%rbp)
     59 	movaps	%xmm7, -16(%rbp)
     60 .L2:
     61 	# basic block 4
     62 	movl	%edi, -180(%rbp)
     63 	# gdb.arch/amd64-prologue-xmm.c:23
     64 	.loc 1 23 0
     65 	movl	-180(%rbp), %eax
     66 	movl	%eax, v(%rip)
     67 	# gdb.arch/amd64-prologue-xmm.c:24
     68 	.loc 1 24 0
     69 	leave
     70 	.cfi_def_cfa 7, 8
     71 	ret
     72 	.cfi_endproc
     73 .LFE0:
     74 	.size	func, .-func
     75 	.type	marker, @function
     76 marker:
     77 .LFB1:
     78 	# gdb.arch/amd64-prologue-xmm.c:28
     79 	.loc 1 28 0
     80 	.cfi_startproc
     81 	# basic block 2
     82 	pushq	%rbp
     83 	.cfi_def_cfa_offset 16
     84 	.cfi_offset 6, -16
     85 	movq	%rsp, %rbp
     86 	.cfi_def_cfa_register 6
     87 	# gdb.arch/amd64-prologue-xmm.c:29
     88 	.loc 1 29 0
     89 	popq	%rbp
     90 	.cfi_def_cfa 7, 8
     91 	ret
     92 	.cfi_endproc
     93 .LFE1:
     94 	.size	marker, .-marker
     95 	.globl	main
     96 	.type	main, @function
     97 main:
     98 .LFB2:
     99 	# gdb.arch/amd64-prologue-xmm.c:33
    100 	.loc 1 33 0
    101 	.cfi_startproc
    102 	# basic block 2
    103 	pushq	%rbp
    104 	.cfi_def_cfa_offset 16
    105 	.cfi_offset 6, -16
    106 	movq	%rsp, %rbp
    107 	.cfi_def_cfa_register 6
    108 	# gdb.arch/amd64-prologue-xmm.c:34
    109 	.loc 1 34 0
    110 	movl	$1, %edi
    111 	movl	$0, %eax
    112 	call	func
    113 	# gdb.arch/amd64-prologue-xmm.c:35
    114 	.loc 1 35 0
    115 	movl	$1, fail(%rip)
    116 	# gdb.arch/amd64-prologue-xmm.c:36
    117 	.loc 1 36 0
    118 	call	marker
    119 	# gdb.arch/amd64-prologue-xmm.c:37
    120 	.loc 1 37 0
    121 	movl	$0, %eax
    122 	# gdb.arch/amd64-prologue-xmm.c:38
    123 	.loc 1 38 0
    124 	popq	%rbp
    125 	.cfi_def_cfa 7, 8
    126 	ret
    127 	.cfi_endproc
    128 .LFE2:
    129 	.size	main, .-main
    130 .Letext0:
    131 	.section	.debug_info,"",@progbits
    132 .Ldebug_info0:
    133 	.long	0xc0	# Length of Compilation Unit Info
    134 	.value	0x4	# DWARF version number
    135 	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
    136 	.byte	0x8	# Pointer Size (in bytes)
    137 	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
    138 	.long	.LASF1	# DW_AT_producer: "GNU C 4.6.1 20110715 (Red Hat 4.6.1-3)"
    139 	.byte	0x1	# DW_AT_language
    140 	.long	.LASF2	# DW_AT_name: "gdb.arch/amd64-prologue-xmm.c"
    141 	.long	.LASF3	# DW_AT_comp_dir: ""
    142 	.quad	.Ltext0	# DW_AT_low_pc
    143 	.quad	.Letext0	# DW_AT_high_pc
    144 	.long	.Ldebug_line0	# DW_AT_stmt_list
    145 	.uleb128 0x2	# (DIE (0x2d) DW_TAG_subprogram)
    146 	.long	.LASF4	# DW_AT_name: "func"
    147 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
    148 	.byte	0x15	# DW_AT_decl_line
    149 			# DW_AT_prototyped
    150 	.quad	.LFB0	# DW_AT_low_pc
    151 	.quad	.LFE0	# DW_AT_high_pc
    152 	.uleb128 0x1	# DW_AT_frame_base
    153 	.byte	0x9c	# DW_OP_call_frame_cfa
    154 			# DW_AT_GNU_all_call_sites
    155 	.long	0x59	# DW_AT_sibling
    156 	.uleb128 0x3	# (DIE (0x4a) DW_TAG_formal_parameter)
    157 	.ascii "i\0"	# DW_AT_name
    158 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
    159 	.byte	0x15	# DW_AT_decl_line
    160 	.long	0x59	# DW_AT_type
    161 	.uleb128 0x3	# DW_AT_location
    162 	.byte	0x91	# DW_OP_fbreg
    163 	.sleb128 -196
    164 	.uleb128 0x4	# (DIE (0x57) DW_TAG_unspecified_parameters)
    165 	.byte	0	# end of children of DIE 0x2d
    166 	.uleb128 0x5	# (DIE (0x59) DW_TAG_base_type)
    167 	.byte	0x4	# DW_AT_byte_size
    168 	.byte	0x5	# DW_AT_encoding
    169 	.ascii "int\0"	# DW_AT_name
    170 	.uleb128 0x6	# (DIE (0x60) DW_TAG_subprogram)
    171 	.long	.LASF5	# DW_AT_name: "marker"
    172 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
    173 	.byte	0x1b	# DW_AT_decl_line
    174 			# DW_AT_prototyped
    175 	.quad	.LFB1	# DW_AT_low_pc
    176 	.quad	.LFE1	# DW_AT_high_pc
    177 	.uleb128 0x1	# DW_AT_frame_base
    178 	.byte	0x9c	# DW_OP_call_frame_cfa
    179 			# DW_AT_GNU_all_call_sites
    180 	.uleb128 0x7	# (DIE (0x79) DW_TAG_subprogram)
    181 			# DW_AT_external
    182 	.long	.LASF6	# DW_AT_name: "main"
    183 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
    184 	.byte	0x20	# DW_AT_decl_line
    185 			# DW_AT_prototyped
    186 	.long	0x59	# DW_AT_type
    187 	.quad	.LFB2	# DW_AT_low_pc
    188 	.quad	.LFE2	# DW_AT_high_pc
    189 	.uleb128 0x1	# DW_AT_frame_base
    190 	.byte	0x9c	# DW_OP_call_frame_cfa
    191 			# DW_AT_GNU_all_tail_call_sites
    192 	.uleb128 0x8	# (DIE (0x96) DW_TAG_variable)
    193 	.ascii "v\0"	# DW_AT_name
    194 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
    195 	.byte	0x12	# DW_AT_decl_line
    196 	.long	0xa9	# DW_AT_type
    197 	.uleb128 0x9	# DW_AT_location
    198 	.byte	0x3	# DW_OP_addr
    199 	.quad	v
    200 	.uleb128 0x9	# (DIE (0xa9) DW_TAG_volatile_type)
    201 	.long	0x59	# DW_AT_type
    202 	.uleb128 0xa	# (DIE (0xae) DW_TAG_variable)
    203 	.long	.LASF0	# DW_AT_name: "fail"
    204 	.byte	0x1	# DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
    205 	.byte	0x12	# DW_AT_decl_line
    206 	.long	0xa9	# DW_AT_type
    207 	.uleb128 0x9	# DW_AT_location
    208 	.byte	0x3	# DW_OP_addr
    209 	.quad	fail
    210 	.byte	0	# end of children of DIE 0xb
    211 	.section	.debug_abbrev,"",@progbits
    212 .Ldebug_abbrev0:
    213 	.uleb128 0x1	# (abbrev code)
    214 	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
    215 	.byte	0x1	# DW_children_yes
    216 	.uleb128 0x25	# (DW_AT_producer)
    217 	.uleb128 0xe	# (DW_FORM_strp)
    218 	.uleb128 0x13	# (DW_AT_language)
    219 	.uleb128 0xb	# (DW_FORM_data1)
    220 	.uleb128 0x3	# (DW_AT_name)
    221 	.uleb128 0xe	# (DW_FORM_strp)
    222 	.uleb128 0x1b	# (DW_AT_comp_dir)
    223 	.uleb128 0xe	# (DW_FORM_strp)
    224 	.uleb128 0x11	# (DW_AT_low_pc)
    225 	.uleb128 0x1	# (DW_FORM_addr)
    226 	.uleb128 0x12	# (DW_AT_high_pc)
    227 	.uleb128 0x1	# (DW_FORM_addr)
    228 	.uleb128 0x10	# (DW_AT_stmt_list)
    229 	.uleb128 0x17	# (DW_FORM_sec_offset)
    230 	.byte	0
    231 	.byte	0
    232 	.uleb128 0x2	# (abbrev code)
    233 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
    234 	.byte	0x1	# DW_children_yes
    235 	.uleb128 0x3	# (DW_AT_name)
    236 	.uleb128 0xe	# (DW_FORM_strp)
    237 	.uleb128 0x3a	# (DW_AT_decl_file)
    238 	.uleb128 0xb	# (DW_FORM_data1)
    239 	.uleb128 0x3b	# (DW_AT_decl_line)
    240 	.uleb128 0xb	# (DW_FORM_data1)
    241 	.uleb128 0x27	# (DW_AT_prototyped)
    242 	.uleb128 0x19	# (DW_FORM_flag_present)
    243 	.uleb128 0x11	# (DW_AT_low_pc)
    244 	.uleb128 0x1	# (DW_FORM_addr)
    245 	.uleb128 0x12	# (DW_AT_high_pc)
    246 	.uleb128 0x1	# (DW_FORM_addr)
    247 	.uleb128 0x40	# (DW_AT_frame_base)
    248 	.uleb128 0x18	# (DW_FORM_exprloc)
    249 	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
    250 	.uleb128 0x19	# (DW_FORM_flag_present)
    251 	.uleb128 0x1	# (DW_AT_sibling)
    252 	.uleb128 0x13	# (DW_FORM_ref4)
    253 	.byte	0
    254 	.byte	0
    255 	.uleb128 0x3	# (abbrev code)
    256 	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter)
    257 	.byte	0	# DW_children_no
    258 	.uleb128 0x3	# (DW_AT_name)
    259 	.uleb128 0x8	# (DW_FORM_string)
    260 	.uleb128 0x3a	# (DW_AT_decl_file)
    261 	.uleb128 0xb	# (DW_FORM_data1)
    262 	.uleb128 0x3b	# (DW_AT_decl_line)
    263 	.uleb128 0xb	# (DW_FORM_data1)
    264 	.uleb128 0x49	# (DW_AT_type)
    265 	.uleb128 0x13	# (DW_FORM_ref4)
    266 	.uleb128 0x2	# (DW_AT_location)
    267 	.uleb128 0x18	# (DW_FORM_exprloc)
    268 	.byte	0
    269 	.byte	0
    270 	.uleb128 0x4	# (abbrev code)
    271 	.uleb128 0x18	# (TAG: DW_TAG_unspecified_parameters)
    272 	.byte	0	# DW_children_no
    273 	.byte	0
    274 	.byte	0
    275 	.uleb128 0x5	# (abbrev code)
    276 	.uleb128 0x24	# (TAG: DW_TAG_base_type)
    277 	.byte	0	# DW_children_no
    278 	.uleb128 0xb	# (DW_AT_byte_size)
    279 	.uleb128 0xb	# (DW_FORM_data1)
    280 	.uleb128 0x3e	# (DW_AT_encoding)
    281 	.uleb128 0xb	# (DW_FORM_data1)
    282 	.uleb128 0x3	# (DW_AT_name)
    283 	.uleb128 0x8	# (DW_FORM_string)
    284 	.byte	0
    285 	.byte	0
    286 	.uleb128 0x6	# (abbrev code)
    287 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
    288 	.byte	0	# DW_children_no
    289 	.uleb128 0x3	# (DW_AT_name)
    290 	.uleb128 0xe	# (DW_FORM_strp)
    291 	.uleb128 0x3a	# (DW_AT_decl_file)
    292 	.uleb128 0xb	# (DW_FORM_data1)
    293 	.uleb128 0x3b	# (DW_AT_decl_line)
    294 	.uleb128 0xb	# (DW_FORM_data1)
    295 	.uleb128 0x27	# (DW_AT_prototyped)
    296 	.uleb128 0x19	# (DW_FORM_flag_present)
    297 	.uleb128 0x11	# (DW_AT_low_pc)
    298 	.uleb128 0x1	# (DW_FORM_addr)
    299 	.uleb128 0x12	# (DW_AT_high_pc)
    300 	.uleb128 0x1	# (DW_FORM_addr)
    301 	.uleb128 0x40	# (DW_AT_frame_base)
    302 	.uleb128 0x18	# (DW_FORM_exprloc)
    303 	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
    304 	.uleb128 0x19	# (DW_FORM_flag_present)
    305 	.byte	0
    306 	.byte	0
    307 	.uleb128 0x7	# (abbrev code)
    308 	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
    309 	.byte	0	# DW_children_no
    310 	.uleb128 0x3f	# (DW_AT_external)
    311 	.uleb128 0x19	# (DW_FORM_flag_present)
    312 	.uleb128 0x3	# (DW_AT_name)
    313 	.uleb128 0xe	# (DW_FORM_strp)
    314 	.uleb128 0x3a	# (DW_AT_decl_file)
    315 	.uleb128 0xb	# (DW_FORM_data1)
    316 	.uleb128 0x3b	# (DW_AT_decl_line)
    317 	.uleb128 0xb	# (DW_FORM_data1)
    318 	.uleb128 0x27	# (DW_AT_prototyped)
    319 	.uleb128 0x19	# (DW_FORM_flag_present)
    320 	.uleb128 0x49	# (DW_AT_type)
    321 	.uleb128 0x13	# (DW_FORM_ref4)
    322 	.uleb128 0x11	# (DW_AT_low_pc)
    323 	.uleb128 0x1	# (DW_FORM_addr)
    324 	.uleb128 0x12	# (DW_AT_high_pc)
    325 	.uleb128 0x1	# (DW_FORM_addr)
    326 	.uleb128 0x40	# (DW_AT_frame_base)
    327 	.uleb128 0x18	# (DW_FORM_exprloc)
    328 	.uleb128 0x2116	# (DW_AT_GNU_all_tail_call_sites)
    329 	.uleb128 0x19	# (DW_FORM_flag_present)
    330 	.byte	0
    331 	.byte	0
    332 	.uleb128 0x8	# (abbrev code)
    333 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    334 	.byte	0	# DW_children_no
    335 	.uleb128 0x3	# (DW_AT_name)
    336 	.uleb128 0x8	# (DW_FORM_string)
    337 	.uleb128 0x3a	# (DW_AT_decl_file)
    338 	.uleb128 0xb	# (DW_FORM_data1)
    339 	.uleb128 0x3b	# (DW_AT_decl_line)
    340 	.uleb128 0xb	# (DW_FORM_data1)
    341 	.uleb128 0x49	# (DW_AT_type)
    342 	.uleb128 0x13	# (DW_FORM_ref4)
    343 	.uleb128 0x2	# (DW_AT_location)
    344 	.uleb128 0x18	# (DW_FORM_exprloc)
    345 	.byte	0
    346 	.byte	0
    347 	.uleb128 0x9	# (abbrev code)
    348 	.uleb128 0x35	# (TAG: DW_TAG_volatile_type)
    349 	.byte	0	# DW_children_no
    350 	.uleb128 0x49	# (DW_AT_type)
    351 	.uleb128 0x13	# (DW_FORM_ref4)
    352 	.byte	0
    353 	.byte	0
    354 	.uleb128 0xa	# (abbrev code)
    355 	.uleb128 0x34	# (TAG: DW_TAG_variable)
    356 	.byte	0	# DW_children_no
    357 	.uleb128 0x3	# (DW_AT_name)
    358 	.uleb128 0xe	# (DW_FORM_strp)
    359 	.uleb128 0x3a	# (DW_AT_decl_file)
    360 	.uleb128 0xb	# (DW_FORM_data1)
    361 	.uleb128 0x3b	# (DW_AT_decl_line)
    362 	.uleb128 0xb	# (DW_FORM_data1)
    363 	.uleb128 0x49	# (DW_AT_type)
    364 	.uleb128 0x13	# (DW_FORM_ref4)
    365 	.uleb128 0x2	# (DW_AT_location)
    366 	.uleb128 0x18	# (DW_FORM_exprloc)
    367 	.byte	0
    368 	.byte	0
    369 	.byte	0
    370 	.section	.debug_aranges,"",@progbits
    371 	.long	0x2c	# Length of Address Ranges Info
    372 	.value	0x2	# DWARF Version
    373 	.long	.Ldebug_info0	# Offset of Compilation Unit Info
    374 	.byte	0x8	# Size of Address
    375 	.byte	0	# Size of Segment Descriptor
    376 	.value	0	# Pad to 16 byte boundary
    377 	.value	0
    378 	.quad	.Ltext0	# Address
    379 	.quad	.Letext0-.Ltext0	# Length
    380 	.quad	0
    381 	.quad	0
    382 	.section	.debug_line,"",@progbits
    383 .Ldebug_line0:
    384 	.section	.debug_str,"MS",@progbits,1
    385 .LASF3:
    386 	.string	""
    387 .LASF0:
    388 	.string	"fail"
    389 .LASF4:
    390 	.string	"func"
    391 .LASF1:
    392 	.string	"GNU C 4.6.1 20110715 (Red Hat 4.6.1-3)"
    393 .LASF2:
    394 	.string	"gdb.arch/amd64-prologue-xmm.c"
    395 .LASF5:
    396 	.string	"marker"
    397 .LASF6:
    398 	.string	"main"
    399 	.ident	"GCC: (GNU) 4.6.1 20110715 (Red Hat 4.6.1-3)"
    400 	.section	.note.GNU-stack,"",@progbits
    401