* [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test
@ 2019-08-29 17:47 Tom de Vries
2019-08-29 18:07 ` Andrew Burgess
0 siblings, 1 reply; 6+ messages in thread
From: Tom de Vries @ 2019-08-29 17:47 UTC (permalink / raw)
To: gdb-patches
Hi,
The test-case gdb.base/store.exp fails with gcc 7.4.0:
...
nr of unexpected failures 27
...
and with gcc 4.8.5:
...
nr of unexpected failures 9
...
The test-case relies on "the compiler taking heed of requests for values to be
stored in registers", which appearantly isn't the case anymore for modern gcc.
Fix this by changing this into an assembly file test-case, and generating the
assembly file using gcc 4.2.1.
Tested on x86_64-linux.
OK for trunk?
Thanks,
- Tom
[gdb/testsuite] Rewrite gdb.base/store.exp into .s test
gdb/testsuite/ChangeLog:
2019-08-29 Tom de Vries <tdevries@suse.de>
* gdb.base/store.s: Generate.
* gdb.base/store.exp: Use store.s.
---
gdb/testsuite/gdb.base/store.exp | 2 +-
gdb/testsuite/gdb.base/store.s | 4590 ++++++++++++++++++++++++++++++++++++++
2 files changed, 4591 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
index c5a7584101..44a175047d 100644
--- a/gdb/testsuite/gdb.base/store.exp
+++ b/gdb/testsuite/gdb.base/store.exp
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-standard_testfile
+standard_testfile .s
set executable $testfile
if { [prepare_for_testing "failed to prepare" $executable $srcfile] } {
diff --git a/gdb/testsuite/gdb.base/store.s b/gdb/testsuite/gdb.base/store.s
new file mode 100644
index 0000000000..d8a111f0cb
--- /dev/null
+++ b/gdb/testsuite/gdb.base/store.s
@@ -0,0 +1,4590 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ This file was created with gcc -g -c -save-temps -dA store.c
+ -fno-stack-protector. */
+
+ .file "store.c"
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .text
+.Ltext0:
+.globl add_charest
+ .type add_charest, @function
+add_charest:
+.LFB2:
+ .file 1 "store.c"
+ # store.c:14
+ .loc 1 14 0
+ # basic block 2
+ pushq %rbp
+.LCFI0:
+ movq %rsp, %rbp
+.LCFI1:
+ movl %edi, %eax
+ movl %esi, %edx
+ # store.c:15
+ .loc 1 15 0
+ movl %eax, %ecx
+ movl %edx, %eax
+ leal (%rcx,%rax), %eax
+ movsbl %al,%eax
+ # store.c:16
+ .loc 1 16 0
+ leave
+ ret
+.LFE2:
+ .size add_charest, .-add_charest
+.globl add_short
+ .type add_short, @function
+add_short:
+.LFB3:
+ # store.c:20
+ .loc 1 20 0
+ # basic block 2
+ pushq %rbp
+.LCFI2:
+ movq %rsp, %rbp
+.LCFI3:
+ movl %edi, %eax
+ movl %esi, %edx
+ # store.c:21
+ .loc 1 21 0
+ movl %eax, %ecx
+ movl %edx, %eax
+ leal (%rcx,%rax), %eax
+ cwtl
+ # store.c:22
+ .loc 1 22 0
+ leave
+ ret
+.LFE3:
+ .size add_short, .-add_short
+.globl add_int
+ .type add_int, @function
+add_int:
+.LFB4:
+ # store.c:26
+ .loc 1 26 0
+ # basic block 2
+ pushq %rbp
+.LCFI4:
+ movq %rsp, %rbp
+.LCFI5:
+ # store.c:27
+ .loc 1 27 0
+ leal (%rdi,%rsi), %eax
+ # store.c:28
+ .loc 1 28 0
+ leave
+ ret
+.LFE4:
+ .size add_int, .-add_int
+.globl add_long
+ .type add_long, @function
+add_long:
+.LFB5:
+ # store.c:32
+ .loc 1 32 0
+ # basic block 2
+ pushq %rbp
+.LCFI6:
+ movq %rsp, %rbp
+.LCFI7:
+ # store.c:33
+ .loc 1 33 0
+ leaq (%rdi,%rsi), %rax
+ # store.c:34
+ .loc 1 34 0
+ leave
+ ret
+.LFE5:
+ .size add_long, .-add_long
+.globl add_longest
+ .type add_longest, @function
+add_longest:
+.LFB6:
+ # store.c:40
+ .loc 1 40 0
+ # basic block 2
+ pushq %rbp
+.LCFI8:
+ movq %rsp, %rbp
+.LCFI9:
+ # store.c:41
+ .loc 1 41 0
+ leaq (%rdi,%rsi), %rax
+ # store.c:42
+ .loc 1 42 0
+ leave
+ ret
+.LFE6:
+ .size add_longest, .-add_longest
+.globl add_float
+ .type add_float, @function
+add_float:
+.LFB7:
+ # store.c:46
+ .loc 1 46 0
+ # basic block 2
+ pushq %rbp
+.LCFI10:
+ movq %rsp, %rbp
+.LCFI11:
+ movaps %xmm0, %xmm2
+ movaps %xmm1, %xmm0
+ # store.c:47
+ .loc 1 47 0
+ addss %xmm2, %xmm0
+ # store.c:48
+ .loc 1 48 0
+ leave
+ ret
+.LFE7:
+ .size add_float, .-add_float
+.globl add_double
+ .type add_double, @function
+add_double:
+.LFB8:
+ # store.c:52
+ .loc 1 52 0
+ # basic block 2
+ pushq %rbp
+.LCFI12:
+ movq %rsp, %rbp
+.LCFI13:
+ movapd %xmm0, %xmm2
+ movapd %xmm1, %xmm0
+ # store.c:53
+ .loc 1 53 0
+ addsd %xmm2, %xmm0
+ # store.c:54
+ .loc 1 54 0
+ leave
+ ret
+.LFE8:
+ .size add_double, .-add_double
+.globl add_doublest
+ .type add_doublest, @function
+add_doublest:
+.LFB9:
+ # store.c:60
+ .loc 1 60 0
+ # basic block 2
+ pushq %rbp
+.LCFI14:
+ movq %rsp, %rbp
+.LCFI15:
+ fldt 16(%rbp)
+ fldt 32(%rbp)
+ # store.c:61
+ .loc 1 61 0
+ faddp %st, %st(1)
+ # store.c:62
+ .loc 1 62 0
+ leave
+ ret
+.LFE9:
+ .size add_doublest, .-add_doublest
+.globl wack_charest
+ .type wack_charest, @function
+wack_charest:
+.LFB10:
+ # store.c:68
+ .loc 1 68 0
+ # basic block 2
+ pushq %rbp
+.LCFI16:
+ movq %rsp, %rbp
+.LCFI17:
+ pushq %rbx
+.LCFI18:
+ subq $8, %rsp
+.LCFI19:
+ movl %edi, %eax
+ movl %esi, %edx
+ # store.c:69
+ .loc 1 69 0
+ movb %al, -9(%rbp)
+ movl %edx, %ebx
+ # store.c:70
+ .loc 1 70 0
+ movsbl %bl,%esi
+ movsbl -9(%rbp),%edi
+ call add_charest
+ movb %al, -9(%rbp)
+ # store.c:71
+ .loc 1 71 0
+ movzbl -9(%rbp), %edx
+ movl %ebx, %eax
+ leal (%rdx,%rax), %eax
+ movsbl %al,%eax
+ # store.c:72
+ .loc 1 72 0
+ addq $8, %rsp
+ popq %rbx
+ leave
+ ret
+.LFE10:
+ .size wack_charest, .-wack_charest
+.globl wack_short
+ .type wack_short, @function
+wack_short:
+.LFB11:
+ # store.c:76
+ .loc 1 76 0
+ # basic block 2
+ pushq %rbp
+.LCFI20:
+ movq %rsp, %rbp
+.LCFI21:
+ pushq %rbx
+.LCFI22:
+ subq $8, %rsp
+.LCFI23:
+ movl %edi, %eax
+ movl %esi, %edx
+ # store.c:77
+ .loc 1 77 0
+ movw %ax, -10(%rbp)
+ movl %edx, %ebx
+ # store.c:78
+ .loc 1 78 0
+ movswl %bx,%esi
+ movswl -10(%rbp),%edi
+ call add_short
+ movw %ax, -10(%rbp)
+ # store.c:79
+ .loc 1 79 0
+ movzwl -10(%rbp), %edx
+ movl %ebx, %eax
+ leal (%rdx,%rax), %eax
+ cwtl
+ # store.c:80
+ .loc 1 80 0
+ addq $8, %rsp
+ popq %rbx
+ leave
+ ret
+.LFE11:
+ .size wack_short, .-wack_short
+.globl wack_int
+ .type wack_int, @function
+wack_int:
+.LFB12:
+ # store.c:84
+ .loc 1 84 0
+ # basic block 2
+ pushq %rbp
+.LCFI24:
+ movq %rsp, %rbp
+.LCFI25:
+ pushq %rbx
+.LCFI26:
+ subq $8, %rsp
+.LCFI27:
+ # store.c:85
+ .loc 1 85 0
+ movl %edi, -12(%rbp)
+ movl %esi, %ebx
+ # store.c:86
+ .loc 1 86 0
+ movl %ebx, %esi
+ movl -12(%rbp), %edi
+ call add_int
+ movl %eax, -12(%rbp)
+ # store.c:87
+ .loc 1 87 0
+ movl -12(%rbp), %eax
+ addl %ebx, %eax
+ # store.c:88
+ .loc 1 88 0
+ addq $8, %rsp
+ popq %rbx
+ leave
+ ret
+.LFE12:
+ .size wack_int, .-wack_int
+.globl wack_long
+ .type wack_long, @function
+wack_long:
+.LFB13:
+ # store.c:92
+ .loc 1 92 0
+ # basic block 2
+ pushq %rbp
+.LCFI28:
+ movq %rsp, %rbp
+.LCFI29:
+ pushq %rbx
+.LCFI30:
+ subq $8, %rsp
+.LCFI31:
+ # store.c:93
+ .loc 1 93 0
+ movq %rdi, -16(%rbp)
+ movq %rsi, %rbx
+ # store.c:94
+ .loc 1 94 0
+ movq %rbx, %rsi
+ movq -16(%rbp), %rdi
+ call add_long
+ movq %rax, -16(%rbp)
+ # store.c:95
+ .loc 1 95 0
+ movq -16(%rbp), %rax
+ addq %rbx, %rax
+ # store.c:96
+ .loc 1 96 0
+ addq $8, %rsp
+ popq %rbx
+ leave
+ ret
+.LFE13:
+ .size wack_long, .-wack_long
+.globl wack_longest
+ .type wack_longest, @function
+wack_longest:
+.LFB14:
+ # store.c:100
+ .loc 1 100 0
+ # basic block 2
+ pushq %rbp
+.LCFI32:
+ movq %rsp, %rbp
+.LCFI33:
+ pushq %rbx
+.LCFI34:
+ subq $8, %rsp
+.LCFI35:
+ # store.c:101
+ .loc 1 101 0
+ movq %rdi, -16(%rbp)
+ movq %rsi, %rbx
+ # store.c:102
+ .loc 1 102 0
+ movq %rbx, %rsi
+ movq -16(%rbp), %rdi
+ call add_longest
+ movq %rax, -16(%rbp)
+ # store.c:103
+ .loc 1 103 0
+ movq -16(%rbp), %rax
+ addq %rbx, %rax
+ # store.c:104
+ .loc 1 104 0
+ addq $8, %rsp
+ popq %rbx
+ leave
+ ret
+.LFE14:
+ .size wack_longest, .-wack_longest
+.globl wack_float
+ .type wack_float, @function
+wack_float:
+.LFB15:
+ # store.c:108
+ .loc 1 108 0
+ # basic block 2
+ pushq %rbp
+.LCFI36:
+ movq %rsp, %rbp
+.LCFI37:
+ subq $8, %rsp
+.LCFI38:
+ # store.c:109
+ .loc 1 109 0
+ movss %xmm0, -8(%rbp)
+ movss %xmm1, -4(%rbp)
+ # store.c:110
+ .loc 1 110 0
+ movss -4(%rbp), %xmm1
+ movss -8(%rbp), %xmm0
+ call add_float
+ movss %xmm0, -8(%rbp)
+ # store.c:111
+ .loc 1 111 0
+ movss -8(%rbp), %xmm0
+ addss -4(%rbp), %xmm0
+ # store.c:112
+ .loc 1 112 0
+ leave
+ ret
+.LFE15:
+ .size wack_float, .-wack_float
+.globl wack_double
+ .type wack_double, @function
+wack_double:
+.LFB16:
+ # store.c:116
+ .loc 1 116 0
+ # basic block 2
+ pushq %rbp
+.LCFI39:
+ movq %rsp, %rbp
+.LCFI40:
+ subq $16, %rsp
+.LCFI41:
+ # store.c:117
+ .loc 1 117 0
+ movsd %xmm0, -16(%rbp)
+ movsd %xmm1, -8(%rbp)
+ # store.c:118
+ .loc 1 118 0
+ movsd -8(%rbp), %xmm1
+ movsd -16(%rbp), %xmm0
+ call add_double
+ movsd %xmm0, -16(%rbp)
+ # store.c:119
+ .loc 1 119 0
+ movsd -16(%rbp), %xmm0
+ addsd -8(%rbp), %xmm0
+ # store.c:120
+ .loc 1 120 0
+ leave
+ ret
+.LFE16:
+ .size wack_double, .-wack_double
+.globl wack_doublest
+ .type wack_doublest, @function
+wack_doublest:
+.LFB17:
+ # store.c:124
+ .loc 1 124 0
+ # basic block 2
+ pushq %rbp
+.LCFI42:
+ movq %rsp, %rbp
+.LCFI43:
+ subq $64, %rsp
+.LCFI44:
+ # store.c:125
+ .loc 1 125 0
+ fldt 16(%rbp)
+ fstpt -32(%rbp)
+ fldt 32(%rbp)
+ fstpt -16(%rbp)
+ # store.c:126
+ .loc 1 126 0
+ fldt -16(%rbp)
+ fstpt 16(%rsp)
+ fldt -32(%rbp)
+ fstpt (%rsp)
+ call add_doublest
+ fstpt -32(%rbp)
+ # store.c:127
+ .loc 1 127 0
+ fldt -32(%rbp)
+ fldt -16(%rbp)
+ faddp %st, %st(1)
+ # store.c:128
+ .loc 1 128 0
+ leave
+ ret
+.LFE17:
+ .size wack_doublest, .-wack_doublest
+.globl add_struct_1
+ .type add_struct_1, @function
+add_struct_1:
+.LFB18:
+ # store.c:139
+ .loc 1 139 0
+ # basic block 2
+ pushq %rbp
+.LCFI45:
+ movq %rsp, %rbp
+.LCFI46:
+ movw %di, -18(%rbp)
+ # store.c:141
+ .loc 1 141 0
+ movl $0, -4(%rbp)
+ jmp .L34
+.L35:
+ # basic block 4
+ # store.c:143
+ .loc 1 143 0
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -18(%rbp,%rax,2), %eax
+ movl %eax, %edx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -18(%rbp,%rax,2), %eax
+ leal (%rdx,%rax), %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, -18(%rbp,%rax,2)
+ # store.c:141
+ .loc 1 141 0
+ addl $1, -4(%rbp)
+.L34:
+ # basic block 5
+ cmpl $0, -4(%rbp)
+ je .L35
+ # basic block 6
+ # store.c:145
+ .loc 1 145 0
+ movzwl -18(%rbp), %eax
+ # store.c:146
+ .loc 1 146 0
+ leave
+ ret
+.LFE18:
+ .size add_struct_1, .-add_struct_1
+.globl add_struct_2
+ .type add_struct_2, @function
+add_struct_2:
+.LFB19:
+ # store.c:150
+ .loc 1 150 0
+ # basic block 2
+ pushq %rbp
+.LCFI47:
+ movq %rsp, %rbp
+.LCFI48:
+ movl %edi, -20(%rbp)
+ # store.c:152
+ .loc 1 152 0
+ movl $0, -4(%rbp)
+ jmp .L39
+.L40:
+ # basic block 4
+ # store.c:154
+ .loc 1 154 0
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -20(%rbp,%rax,2), %eax
+ movl %eax, %edx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -20(%rbp,%rax,2), %eax
+ leal (%rdx,%rax), %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, -20(%rbp,%rax,2)
+ # store.c:152
+ .loc 1 152 0
+ addl $1, -4(%rbp)
+.L39:
+ # basic block 5
+ movl -4(%rbp), %eax
+ cmpl $1, %eax
+ jbe .L40
+ # basic block 6
+ # store.c:156
+ .loc 1 156 0
+ movl -20(%rbp), %eax
+ # store.c:157
+ .loc 1 157 0
+ leave
+ ret
+.LFE19:
+ .size add_struct_2, .-add_struct_2
+.globl add_struct_3
+ .type add_struct_3, @function
+add_struct_3:
+.LFB20:
+ # store.c:161
+ .loc 1 161 0
+ # basic block 2
+ pushq %rbp
+.LCFI49:
+ movq %rsp, %rbp
+.LCFI50:
+ movq %rdi, -24(%rbp)
+ # store.c:163
+ .loc 1 163 0
+ movl $0, -4(%rbp)
+ jmp .L44
+.L45:
+ # basic block 4
+ # store.c:165
+ .loc 1 165 0
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -24(%rbp,%rax,2), %eax
+ movl %eax, %edx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -24(%rbp,%rax,2), %eax
+ leal (%rdx,%rax), %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, -24(%rbp,%rax,2)
+ # store.c:163
+ .loc 1 163 0
+ addl $1, -4(%rbp)
+.L44:
+ # basic block 5
+ movl -4(%rbp), %eax
+ cmpl $2, %eax
+ jbe .L45
+ # basic block 6
+ # store.c:167
+ .loc 1 167 0
+ movl -24(%rbp), %eax
+ movl %eax, -16(%rbp)
+ movzwl -20(%rbp), %eax
+ movw %ax, -12(%rbp)
+ movq $0, -32(%rbp)
+ movzwl -16(%rbp), %eax
+ movzwq %ax,%rdx
+ movq -32(%rbp), %rax
+ movw $0, %ax
+ orq %rdx, %rax
+ movq %rax, -32(%rbp)
+ movzwl -14(%rbp), %eax
+ andl $65535, %eax
+ movq %rax, %rdx
+ salq $16, %rdx
+ movabsq $-4294901761, %rax
+ andq -32(%rbp), %rax
+ orq %rdx, %rax
+ movq %rax, -32(%rbp)
+ movzwl -12(%rbp), %eax
+ andl $65535, %eax
+ movq %rax, %rdx
+ salq $32, %rdx
+ movabsq $-281470681743361, %rax
+ andq -32(%rbp), %rax
+ orq %rdx, %rax
+ movq %rax, -32(%rbp)
+ movq -32(%rbp), %rax
+ # store.c:168
+ .loc 1 168 0
+ leave
+ ret
+.LFE20:
+ .size add_struct_3, .-add_struct_3
+.globl add_struct_4
+ .type add_struct_4, @function
+add_struct_4:
+.LFB21:
+ # store.c:172
+ .loc 1 172 0
+ # basic block 2
+ pushq %rbp
+.LCFI51:
+ movq %rsp, %rbp
+.LCFI52:
+ movq %rdi, -24(%rbp)
+ # store.c:174
+ .loc 1 174 0
+ movl $0, -4(%rbp)
+ jmp .L49
+.L50:
+ # basic block 4
+ # store.c:176
+ .loc 1 176 0
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -24(%rbp,%rax,2), %eax
+ movl %eax, %edx
+ movl -4(%rbp), %eax
+ cltq
+ movzwl -24(%rbp,%rax,2), %eax
+ leal (%rdx,%rax), %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, -24(%rbp,%rax,2)
+ # store.c:174
+ .loc 1 174 0
+ addl $1, -4(%rbp)
+.L49:
+ # basic block 5
+ movl -4(%rbp), %eax
+ cmpl $3, %eax
+ jbe .L50
+ # basic block 6
+ # store.c:178
+ .loc 1 178 0
+ movq -24(%rbp), %rax
+ # store.c:179
+ .loc 1 179 0
+ leave
+ ret
+.LFE21:
+ .size add_struct_4, .-add_struct_4
+.globl wack_struct_1
+ .type wack_struct_1, @function
+wack_struct_1:
+.LFB22:
+ # store.c:183
+ .loc 1 183 0
+ # basic block 3
+ pushq %rbp
+.LCFI53:
+ movq %rsp, %rbp
+.LCFI54:
+ subq $24, %rsp
+.LCFI55:
+ # store.c:184
+ .loc 1 184 0
+ movzwl z_1(%rip), %eax
+ movw %ax, -18(%rbp)
+ # store.c:185
+ .loc 1 185 0
+ movl $0, -4(%rbp)
+ jmp .L54
+.L55:
+ # basic block 4
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ addl $1, %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, s_1(%rax,%rax)
+ addl $1, -4(%rbp)
+.L54:
+ # basic block 5
+ cmpl $0, -4(%rbp)
+ je .L55
+ # basic block 6
+ # store.c:186
+ .loc 1 186 0
+ movzwl -18(%rbp), %edi
+ call add_struct_1
+ movw %ax, -18(%rbp)
+ # store.c:187
+ .loc 1 187 0
+ movzwl -18(%rbp), %eax
+ # store.c:188
+ .loc 1 188 0
+ leave
+ ret
+.LFE22:
+ .size wack_struct_1, .-wack_struct_1
+.globl wack_struct_2
+ .type wack_struct_2, @function
+wack_struct_2:
+.LFB23:
+ # store.c:192
+ .loc 1 192 0
+ # basic block 3
+ pushq %rbp
+.LCFI56:
+ movq %rsp, %rbp
+.LCFI57:
+ subq $24, %rsp
+.LCFI58:
+ # store.c:193
+ .loc 1 193 0
+ movl z_2(%rip), %eax
+ movl %eax, -20(%rbp)
+ # store.c:194
+ .loc 1 194 0
+ movl $0, -4(%rbp)
+ jmp .L59
+.L60:
+ # basic block 4
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ addl $1, %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, s_2(%rax,%rax)
+ addl $1, -4(%rbp)
+.L59:
+ # basic block 5
+ movl -4(%rbp), %eax
+ cmpl $1, %eax
+ jbe .L60
+ # basic block 6
+ # store.c:195
+ .loc 1 195 0
+ movl -20(%rbp), %edi
+ call add_struct_2
+ movl %eax, -20(%rbp)
+ # store.c:196
+ .loc 1 196 0
+ movl -20(%rbp), %eax
+ # store.c:197
+ .loc 1 197 0
+ leave
+ ret
+.LFE23:
+ .size wack_struct_2, .-wack_struct_2
+.globl wack_struct_3
+ .type wack_struct_3, @function
+wack_struct_3:
+.LFB24:
+ # store.c:201
+ .loc 1 201 0
+ # basic block 3
+ pushq %rbp
+.LCFI59:
+ movq %rsp, %rbp
+.LCFI60:
+ subq $64, %rsp
+.LCFI61:
+ # store.c:202
+ .loc 1 202 0
+ movl z_3(%rip), %eax
+ movl %eax, -32(%rbp)
+ movzwl z_3+4(%rip), %eax
+ movw %ax, -28(%rbp)
+ # store.c:203
+ .loc 1 203 0
+ movl $0, -4(%rbp)
+ jmp .L64
+.L65:
+ # basic block 4
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ addl $1, %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, s_3(%rax,%rax)
+ addl $1, -4(%rbp)
+.L64:
+ # basic block 5
+ movl -4(%rbp), %eax
+ cmpl $2, %eax
+ jbe .L65
+ # basic block 6
+ # store.c:204
+ .loc 1 204 0
+ movq -32(%rbp), %rdi
+ call add_struct_3
+ movzwl %ax, %ecx
+ movzwl -48(%rbp), %edx
+ andl $0, %edx
+ orl %ecx, %edx
+ movw %dx, -48(%rbp)
+ movq %rax, %rdx
+ shrq $16, %rdx
+ movzwq %dx,%rcx
+ movzwl -46(%rbp), %edx
+ andl $0, %edx
+ orl %ecx, %edx
+ movw %dx, -46(%rbp)
+ shrq $32, %rax
+ movzwq %ax,%rdx
+ movzwl -44(%rbp), %eax
+ andl $0, %eax
+ orl %edx, %eax
+ movw %ax, -44(%rbp)
+ movl -48(%rbp), %eax
+ movl %eax, -32(%rbp)
+ movzwl -44(%rbp), %eax
+ movw %ax, -28(%rbp)
+ # store.c:205
+ .loc 1 205 0
+ movl -32(%rbp), %eax
+ movl %eax, -16(%rbp)
+ movzwl -28(%rbp), %eax
+ movw %ax, -12(%rbp)
+ movq $0, -56(%rbp)
+ movzwl -16(%rbp), %eax
+ movzwq %ax,%rdx
+ movq -56(%rbp), %rax
+ movw $0, %ax
+ orq %rdx, %rax
+ movq %rax, -56(%rbp)
+ movzwl -14(%rbp), %eax
+ andl $65535, %eax
+ movq %rax, %rdx
+ salq $16, %rdx
+ movabsq $-4294901761, %rax
+ andq -56(%rbp), %rax
+ orq %rdx, %rax
+ movq %rax, -56(%rbp)
+ movzwl -12(%rbp), %eax
+ andl $65535, %eax
+ movq %rax, %rdx
+ salq $32, %rdx
+ movabsq $-281470681743361, %rax
+ andq -56(%rbp), %rax
+ orq %rdx, %rax
+ movq %rax, -56(%rbp)
+ movq -56(%rbp), %rax
+ # store.c:206
+ .loc 1 206 0
+ leave
+ ret
+.LFE24:
+ .size wack_struct_3, .-wack_struct_3
+.globl wack_struct_4
+ .type wack_struct_4, @function
+wack_struct_4:
+.LFB25:
+ # store.c:210
+ .loc 1 210 0
+ # basic block 3
+ pushq %rbp
+.LCFI62:
+ movq %rsp, %rbp
+.LCFI63:
+ subq $24, %rsp
+.LCFI64:
+ # store.c:211
+ .loc 1 211 0
+ movq z_4(%rip), %rax
+ movq %rax, -24(%rbp)
+ # store.c:212
+ .loc 1 212 0
+ movl $0, -4(%rbp)
+ jmp .L69
+.L70:
+ # basic block 4
+ movl -4(%rbp), %ecx
+ movl -4(%rbp), %eax
+ addl $1, %eax
+ movl %eax, %edx
+ movslq %ecx,%rax
+ movw %dx, s_4(%rax,%rax)
+ addl $1, -4(%rbp)
+.L69:
+ # basic block 5
+ movl -4(%rbp), %eax
+ cmpl $3, %eax
+ jbe .L70
+ # basic block 6
+ # store.c:213
+ .loc 1 213 0
+ movq -24(%rbp), %rdi
+ call add_struct_4
+ movq %rax, -24(%rbp)
+ # store.c:214
+ .loc 1 214 0
+ movq -24(%rbp), %rax
+ # store.c:215
+ .loc 1 215 0
+ leave
+ ret
+.LFE25:
+ .size wack_struct_4, .-wack_struct_4
+.globl f_1
+ .data
+ .align 4
+ .type f_1, @object
+ .size f_1, 4
+f_1:
+ .byte 7
+ .zero 3
+.globl f_2
+ .align 4
+ .type f_2, @object
+ .size f_2, 4
+f_2:
+ .byte 21
+ .zero 3
+.globl f_3
+ .align 4
+ .type f_3, @object
+ .size f_3, 4
+f_3:
+ .byte 73
+ .byte 0
+ .zero 2
+.globl f_4
+ .align 4
+ .type f_4, @object
+ .size f_4, 4
+f_4:
+ .byte 17
+ .byte 1
+ .zero 2
+ .text
+.globl wack_field_1
+ .type wack_field_1, @function
+wack_field_1:
+.LFB26:
+ # store.c:226
+ .loc 1 226 0
+ # basic block 3
+ pushq %rbp
+.LCFI65:
+ movq %rsp, %rbp
+.LCFI66:
+ # store.c:227
+ .loc 1 227 0
+ movl f_1(%rip), %eax
+ # store.c:229
+ .loc 1 229 0
+ leave
+ ret
+.LFE26:
+ .size wack_field_1, .-wack_field_1
+.globl wack_field_2
+ .type wack_field_2, @function
+wack_field_2:
+.LFB27:
+ # store.c:233
+ .loc 1 233 0
+ # basic block 3
+ pushq %rbp
+.LCFI67:
+ movq %rsp, %rbp
+.LCFI68:
+ # store.c:234
+ .loc 1 234 0
+ movl f_2(%rip), %eax
+ # store.c:236
+ .loc 1 236 0
+ leave
+ ret
+.LFE27:
+ .size wack_field_2, .-wack_field_2
+.globl wack_field_3
+ .type wack_field_3, @function
+wack_field_3:
+.LFB28:
+ # store.c:240
+ .loc 1 240 0
+ # basic block 3
+ pushq %rbp
+.LCFI69:
+ movq %rsp, %rbp
+.LCFI70:
+ # store.c:241
+ .loc 1 241 0
+ movl f_3(%rip), %eax
+ # store.c:243
+ .loc 1 243 0
+ leave
+ ret
+.LFE28:
+ .size wack_field_3, .-wack_field_3
+.globl wack_field_4
+ .type wack_field_4, @function
+wack_field_4:
+.LFB29:
+ # store.c:247
+ .loc 1 247 0
+ # basic block 3
+ pushq %rbp
+.LCFI71:
+ movq %rsp, %rbp
+.LCFI72:
+ # store.c:248
+ .loc 1 248 0
+ movl f_4(%rip), %eax
+ # store.c:250
+ .loc 1 250 0
+ leave
+ ret
+.LFE29:
+ .size wack_field_4, .-wack_field_4
+.globl main
+ .type main, @function
+main:
+.LFB30:
+ # store.c:256
+ .loc 1 256 0
+ # basic block 3
+ pushq %rbp
+.LCFI73:
+ movq %rsp, %rbp
+.LCFI74:
+ subq $32, %rsp
+.LCFI75:
+ # store.c:258
+ .loc 1 258 0
+ movl $-2, %esi
+ movl $-1, %edi
+ call wack_charest
+ # store.c:259
+ .loc 1 259 0
+ movl $-2, %esi
+ movl $-1, %edi
+ call wack_short
+ # store.c:260
+ .loc 1 260 0
+ movl $-2, %esi
+ movl $-1, %edi
+ call wack_int
+ # store.c:261
+ .loc 1 261 0
+ movq $-2, %rsi
+ movq $-1, %rdi
+ call wack_long
+ # store.c:262
+ .loc 1 262 0
+ movq $-2, %rsi
+ movq $-1, %rdi
+ call wack_longest
+ # store.c:263
+ .loc 1 263 0
+ movss .LC1(%rip), %xmm1
+ movss .LC2(%rip), %xmm0
+ call wack_float
+ # store.c:264
+ .loc 1 264 0
+ movsd .LC3(%rip), %xmm0
+ movsd .LC4(%rip), %xmm2
+ movapd %xmm0, %xmm1
+ movapd %xmm2, %xmm0
+ call wack_double
+ # store.c:265
+ .loc 1 265 0
+ movabsq $-9223372036854775808, %rax
+ movl $49152, %edx
+ movq %rax, 16(%rsp)
+ movl %edx, 24(%rsp)
+ movabsq $-9223372036854775808, %rax
+ movl $49151, %edx
+ movq %rax, (%rsp)
+ movl %edx, 8(%rsp)
+ call wack_doublest
+ fstp %st(0)
+ # store.c:268
+ .loc 1 268 0
+ movl $-2, %esi
+ movl $-1, %edi
+ call wack_charest
+ # store.c:269
+ .loc 1 269 0
+ movl $-2, %esi
+ movl $-1, %edi
+ call wack_short
+ # store.c:270
+ .loc 1 270 0
+ movl $-2, %esi
+ movl $-1, %edi
+ call wack_int
+ # store.c:271
+ .loc 1 271 0
+ movq $-2, %rsi
+ movq $-1, %rdi
+ call wack_long
+ # store.c:272
+ .loc 1 272 0
+ movq $-2, %rsi
+ movq $-1, %rdi
+ call wack_longest
+ # store.c:273
+ .loc 1 273 0
+ movss .LC1(%rip), %xmm1
+ movss .LC2(%rip), %xmm0
+ call wack_float
+ # store.c:274
+ .loc 1 274 0
+ movsd .LC3(%rip), %xmm0
+ movsd .LC4(%rip), %xmm2
+ movapd %xmm0, %xmm1
+ movapd %xmm2, %xmm0
+ call wack_double
+ # store.c:275
+ .loc 1 275 0
+ movabsq $-9223372036854775808, %rax
+ movl $49152, %edx
+ movq %rax, 16(%rsp)
+ movl %edx, 24(%rsp)
+ movabsq $-9223372036854775808, %rax
+ movl $49151, %edx
+ movq %rax, (%rsp)
+ movl %edx, 8(%rsp)
+ call wack_doublest
+ fstp %st(0)
+ # store.c:278
+ .loc 1 278 0
+ call wack_struct_1
+ # store.c:279
+ .loc 1 279 0
+ call wack_struct_2
+ # store.c:280
+ .loc 1 280 0
+ call wack_struct_3
+ # store.c:281
+ .loc 1 281 0
+ call wack_struct_4
+ # store.c:284
+ .loc 1 284 0
+ call wack_struct_1
+ # store.c:285
+ .loc 1 285 0
+ call wack_struct_2
+ # store.c:286
+ .loc 1 286 0
+ call wack_struct_3
+ # store.c:287
+ .loc 1 287 0
+ call wack_struct_4
+ # store.c:289
+ .loc 1 289 0
+ call wack_field_1
+ # store.c:290
+ .loc 1 290 0
+ call wack_field_2
+ # store.c:291
+ .loc 1 291 0
+ call wack_field_3
+ # store.c:292
+ .loc 1 292 0
+ call wack_field_4
+ # store.c:294
+ .loc 1 294 0
+ movl $0, %eax
+ # store.c:295
+ .loc 1 295 0
+ leave
+ ret
+.LFE30:
+ .size main, .-main
+ .comm z_1,2,2
+ .comm s_1,2,2
+ .comm z_2,4,2
+ .comm s_2,4,2
+ .comm z_3,6,2
+ .comm s_3,6,2
+ .comm z_4,8,2
+ .comm s_4,8,2
+ .comm F_1,4,4
+ .comm F_2,4,4
+ .comm F_3,4,4
+ .comm F_4,4,4
+ .section .rodata
+ .align 4
+.LC1:
+ .long 3221225472
+ .align 4
+.LC2:
+ .long 3212836864
+ .align 8
+.LC3:
+ .long 0
+ .long -1073741824
+ .align 8
+.LC4:
+ .long 0
+ .long -1074790400
+#APP
+ .section .debug_frame,"",@progbits
+.Lframe0:
+ .long .LECIE0-.LSCIE0 # Length of Common Information Entry
+.LSCIE0:
+ .long 0xffffffff # CIE Identifier Tag
+ .byte 0x1 # CIE Version
+ .ascii "\0" # CIE Augmentation
+ .uleb128 0x1 # CIE Code Alignment Factor
+ .sleb128 -8 # CIE Data Alignment Factor
+ .byte 0x10 # CIE RA Column
+ .byte 0xc # DW_CFA_def_cfa
+ .uleb128 0x7
+ .uleb128 0x8
+ .byte 0x90 # DW_CFA_offset, column 0x10
+ .uleb128 0x1
+ .align 8
+.LECIE0:
+.LSFDE0:
+ .long .LEFDE0-.LASFDE0 # FDE Length
+.LASFDE0:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB2 # FDE initial location
+ .quad .LFE2-.LFB2 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI0-.LFB2
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI1-.LCFI0
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE0:
+.LSFDE2:
+ .long .LEFDE2-.LASFDE2 # FDE Length
+.LASFDE2:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB3 # FDE initial location
+ .quad .LFE3-.LFB3 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI2-.LFB3
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI3-.LCFI2
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE2:
+.LSFDE4:
+ .long .LEFDE4-.LASFDE4 # FDE Length
+.LASFDE4:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB4 # FDE initial location
+ .quad .LFE4-.LFB4 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI4-.LFB4
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI5-.LCFI4
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE4:
+.LSFDE6:
+ .long .LEFDE6-.LASFDE6 # FDE Length
+.LASFDE6:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB5 # FDE initial location
+ .quad .LFE5-.LFB5 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI6-.LFB5
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI7-.LCFI6
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE6:
+.LSFDE8:
+ .long .LEFDE8-.LASFDE8 # FDE Length
+.LASFDE8:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB6 # FDE initial location
+ .quad .LFE6-.LFB6 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI8-.LFB6
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI9-.LCFI8
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE8:
+.LSFDE10:
+ .long .LEFDE10-.LASFDE10 # FDE Length
+.LASFDE10:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB7 # FDE initial location
+ .quad .LFE7-.LFB7 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI10-.LFB7
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI11-.LCFI10
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE10:
+.LSFDE12:
+ .long .LEFDE12-.LASFDE12 # FDE Length
+.LASFDE12:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB8 # FDE initial location
+ .quad .LFE8-.LFB8 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI12-.LFB8
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI13-.LCFI12
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE12:
+.LSFDE14:
+ .long .LEFDE14-.LASFDE14 # FDE Length
+.LASFDE14:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB9 # FDE initial location
+ .quad .LFE9-.LFB9 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI14-.LFB9
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI15-.LCFI14
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE14:
+.LSFDE16:
+ .long .LEFDE16-.LASFDE16 # FDE Length
+.LASFDE16:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB10 # FDE initial location
+ .quad .LFE10-.LFB10 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI16-.LFB10
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI17-.LCFI16
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI19-.LCFI17
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE16:
+.LSFDE18:
+ .long .LEFDE18-.LASFDE18 # FDE Length
+.LASFDE18:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB11 # FDE initial location
+ .quad .LFE11-.LFB11 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI20-.LFB11
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI21-.LCFI20
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI23-.LCFI21
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE18:
+.LSFDE20:
+ .long .LEFDE20-.LASFDE20 # FDE Length
+.LASFDE20:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB12 # FDE initial location
+ .quad .LFE12-.LFB12 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI24-.LFB12
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI25-.LCFI24
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI27-.LCFI25
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE20:
+.LSFDE22:
+ .long .LEFDE22-.LASFDE22 # FDE Length
+.LASFDE22:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB13 # FDE initial location
+ .quad .LFE13-.LFB13 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI28-.LFB13
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI29-.LCFI28
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI31-.LCFI29
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE22:
+.LSFDE24:
+ .long .LEFDE24-.LASFDE24 # FDE Length
+.LASFDE24:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB14 # FDE initial location
+ .quad .LFE14-.LFB14 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI32-.LFB14
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI33-.LCFI32
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI35-.LCFI33
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE24:
+.LSFDE26:
+ .long .LEFDE26-.LASFDE26 # FDE Length
+.LASFDE26:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB15 # FDE initial location
+ .quad .LFE15-.LFB15 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI36-.LFB15
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI37-.LCFI36
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE26:
+.LSFDE28:
+ .long .LEFDE28-.LASFDE28 # FDE Length
+.LASFDE28:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB16 # FDE initial location
+ .quad .LFE16-.LFB16 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI39-.LFB16
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI40-.LCFI39
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE28:
+.LSFDE30:
+ .long .LEFDE30-.LASFDE30 # FDE Length
+.LASFDE30:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB17 # FDE initial location
+ .quad .LFE17-.LFB17 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI42-.LFB17
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI43-.LCFI42
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE30:
+.LSFDE32:
+ .long .LEFDE32-.LASFDE32 # FDE Length
+.LASFDE32:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB18 # FDE initial location
+ .quad .LFE18-.LFB18 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI45-.LFB18
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI46-.LCFI45
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE32:
+.LSFDE34:
+ .long .LEFDE34-.LASFDE34 # FDE Length
+.LASFDE34:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB19 # FDE initial location
+ .quad .LFE19-.LFB19 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI47-.LFB19
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI48-.LCFI47
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE34:
+.LSFDE36:
+ .long .LEFDE36-.LASFDE36 # FDE Length
+.LASFDE36:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB20 # FDE initial location
+ .quad .LFE20-.LFB20 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI49-.LFB20
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI50-.LCFI49
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE36:
+.LSFDE38:
+ .long .LEFDE38-.LASFDE38 # FDE Length
+.LASFDE38:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB21 # FDE initial location
+ .quad .LFE21-.LFB21 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI51-.LFB21
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI52-.LCFI51
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE38:
+.LSFDE40:
+ .long .LEFDE40-.LASFDE40 # FDE Length
+.LASFDE40:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB22 # FDE initial location
+ .quad .LFE22-.LFB22 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI53-.LFB22
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI54-.LCFI53
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE40:
+.LSFDE42:
+ .long .LEFDE42-.LASFDE42 # FDE Length
+.LASFDE42:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB23 # FDE initial location
+ .quad .LFE23-.LFB23 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI56-.LFB23
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI57-.LCFI56
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE42:
+.LSFDE44:
+ .long .LEFDE44-.LASFDE44 # FDE Length
+.LASFDE44:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB24 # FDE initial location
+ .quad .LFE24-.LFB24 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI59-.LFB24
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI60-.LCFI59
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE44:
+.LSFDE46:
+ .long .LEFDE46-.LASFDE46 # FDE Length
+.LASFDE46:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB25 # FDE initial location
+ .quad .LFE25-.LFB25 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI62-.LFB25
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI63-.LCFI62
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE46:
+.LSFDE48:
+ .long .LEFDE48-.LASFDE48 # FDE Length
+.LASFDE48:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB26 # FDE initial location
+ .quad .LFE26-.LFB26 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI65-.LFB26
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI66-.LCFI65
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE48:
+.LSFDE50:
+ .long .LEFDE50-.LASFDE50 # FDE Length
+.LASFDE50:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB27 # FDE initial location
+ .quad .LFE27-.LFB27 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI67-.LFB27
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI68-.LCFI67
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE50:
+.LSFDE52:
+ .long .LEFDE52-.LASFDE52 # FDE Length
+.LASFDE52:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB28 # FDE initial location
+ .quad .LFE28-.LFB28 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI69-.LFB28
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI70-.LCFI69
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE52:
+.LSFDE54:
+ .long .LEFDE54-.LASFDE54 # FDE Length
+.LASFDE54:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB29 # FDE initial location
+ .quad .LFE29-.LFB29 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI71-.LFB29
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI72-.LCFI71
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE54:
+.LSFDE56:
+ .long .LEFDE56-.LASFDE56 # FDE Length
+.LASFDE56:
+ .long .Lframe0 # FDE CIE offset
+ .quad .LFB30 # FDE initial location
+ .quad .LFE30-.LFB30 # FDE address range
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI73-.LFB30
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI74-.LCFI73
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE56:
+#NO_APP
+#APP
+ .section .eh_frame,"a",@progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1 # Length of Common Information Entry
+.LSCIE1:
+ .long 0x0 # CIE Identifier Tag
+ .byte 0x1 # CIE Version
+ .ascii "zR\0" # CIE Augmentation
+ .uleb128 0x1 # CIE Code Alignment Factor
+ .sleb128 -8 # CIE Data Alignment Factor
+ .byte 0x10 # CIE RA Column
+ .uleb128 0x1 # Augmentation size
+ .byte 0x3 # FDE Encoding (udata4)
+ .byte 0xc # DW_CFA_def_cfa
+ .uleb128 0x7
+ .uleb128 0x8
+ .byte 0x90 # DW_CFA_offset, column 0x10
+ .uleb128 0x1
+ .align 8
+.LECIE1:
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1 # FDE Length
+.LASFDE1:
+ .long .LASFDE1-.Lframe1 # FDE CIE offset
+ .long .LFB2 # FDE initial location
+ .long .LFE2-.LFB2 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI0-.LFB2
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI1-.LCFI0
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE1:
+.LSFDE3:
+ .long .LEFDE3-.LASFDE3 # FDE Length
+.LASFDE3:
+ .long .LASFDE3-.Lframe1 # FDE CIE offset
+ .long .LFB3 # FDE initial location
+ .long .LFE3-.LFB3 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI2-.LFB3
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI3-.LCFI2
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE3:
+.LSFDE5:
+ .long .LEFDE5-.LASFDE5 # FDE Length
+.LASFDE5:
+ .long .LASFDE5-.Lframe1 # FDE CIE offset
+ .long .LFB4 # FDE initial location
+ .long .LFE4-.LFB4 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI4-.LFB4
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI5-.LCFI4
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE5:
+.LSFDE7:
+ .long .LEFDE7-.LASFDE7 # FDE Length
+.LASFDE7:
+ .long .LASFDE7-.Lframe1 # FDE CIE offset
+ .long .LFB5 # FDE initial location
+ .long .LFE5-.LFB5 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI6-.LFB5
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI7-.LCFI6
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE7:
+.LSFDE9:
+ .long .LEFDE9-.LASFDE9 # FDE Length
+.LASFDE9:
+ .long .LASFDE9-.Lframe1 # FDE CIE offset
+ .long .LFB6 # FDE initial location
+ .long .LFE6-.LFB6 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI8-.LFB6
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI9-.LCFI8
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE9:
+.LSFDE11:
+ .long .LEFDE11-.LASFDE11 # FDE Length
+.LASFDE11:
+ .long .LASFDE11-.Lframe1 # FDE CIE offset
+ .long .LFB7 # FDE initial location
+ .long .LFE7-.LFB7 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI10-.LFB7
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI11-.LCFI10
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE11:
+.LSFDE13:
+ .long .LEFDE13-.LASFDE13 # FDE Length
+.LASFDE13:
+ .long .LASFDE13-.Lframe1 # FDE CIE offset
+ .long .LFB8 # FDE initial location
+ .long .LFE8-.LFB8 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI12-.LFB8
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI13-.LCFI12
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE13:
+.LSFDE15:
+ .long .LEFDE15-.LASFDE15 # FDE Length
+.LASFDE15:
+ .long .LASFDE15-.Lframe1 # FDE CIE offset
+ .long .LFB9 # FDE initial location
+ .long .LFE9-.LFB9 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI14-.LFB9
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI15-.LCFI14
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE15:
+.LSFDE17:
+ .long .LEFDE17-.LASFDE17 # FDE Length
+.LASFDE17:
+ .long .LASFDE17-.Lframe1 # FDE CIE offset
+ .long .LFB10 # FDE initial location
+ .long .LFE10-.LFB10 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI16-.LFB10
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI17-.LCFI16
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI19-.LCFI17
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE17:
+.LSFDE19:
+ .long .LEFDE19-.LASFDE19 # FDE Length
+.LASFDE19:
+ .long .LASFDE19-.Lframe1 # FDE CIE offset
+ .long .LFB11 # FDE initial location
+ .long .LFE11-.LFB11 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI20-.LFB11
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI21-.LCFI20
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI23-.LCFI21
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE19:
+.LSFDE21:
+ .long .LEFDE21-.LASFDE21 # FDE Length
+.LASFDE21:
+ .long .LASFDE21-.Lframe1 # FDE CIE offset
+ .long .LFB12 # FDE initial location
+ .long .LFE12-.LFB12 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI24-.LFB12
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI25-.LCFI24
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI27-.LCFI25
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE21:
+.LSFDE23:
+ .long .LEFDE23-.LASFDE23 # FDE Length
+.LASFDE23:
+ .long .LASFDE23-.Lframe1 # FDE CIE offset
+ .long .LFB13 # FDE initial location
+ .long .LFE13-.LFB13 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI28-.LFB13
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI29-.LCFI28
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI31-.LCFI29
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE23:
+.LSFDE25:
+ .long .LEFDE25-.LASFDE25 # FDE Length
+.LASFDE25:
+ .long .LASFDE25-.Lframe1 # FDE CIE offset
+ .long .LFB14 # FDE initial location
+ .long .LFE14-.LFB14 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI32-.LFB14
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI33-.LCFI32
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI35-.LCFI33
+ .byte 0x83 # DW_CFA_offset, column 0x3
+ .uleb128 0x3
+ .align 8
+.LEFDE25:
+.LSFDE27:
+ .long .LEFDE27-.LASFDE27 # FDE Length
+.LASFDE27:
+ .long .LASFDE27-.Lframe1 # FDE CIE offset
+ .long .LFB15 # FDE initial location
+ .long .LFE15-.LFB15 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI36-.LFB15
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI37-.LCFI36
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE27:
+.LSFDE29:
+ .long .LEFDE29-.LASFDE29 # FDE Length
+.LASFDE29:
+ .long .LASFDE29-.Lframe1 # FDE CIE offset
+ .long .LFB16 # FDE initial location
+ .long .LFE16-.LFB16 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI39-.LFB16
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI40-.LCFI39
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE29:
+.LSFDE31:
+ .long .LEFDE31-.LASFDE31 # FDE Length
+.LASFDE31:
+ .long .LASFDE31-.Lframe1 # FDE CIE offset
+ .long .LFB17 # FDE initial location
+ .long .LFE17-.LFB17 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI42-.LFB17
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI43-.LCFI42
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE31:
+.LSFDE33:
+ .long .LEFDE33-.LASFDE33 # FDE Length
+.LASFDE33:
+ .long .LASFDE33-.Lframe1 # FDE CIE offset
+ .long .LFB18 # FDE initial location
+ .long .LFE18-.LFB18 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI45-.LFB18
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI46-.LCFI45
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE33:
+.LSFDE35:
+ .long .LEFDE35-.LASFDE35 # FDE Length
+.LASFDE35:
+ .long .LASFDE35-.Lframe1 # FDE CIE offset
+ .long .LFB19 # FDE initial location
+ .long .LFE19-.LFB19 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI47-.LFB19
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI48-.LCFI47
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE35:
+.LSFDE37:
+ .long .LEFDE37-.LASFDE37 # FDE Length
+.LASFDE37:
+ .long .LASFDE37-.Lframe1 # FDE CIE offset
+ .long .LFB20 # FDE initial location
+ .long .LFE20-.LFB20 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI49-.LFB20
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI50-.LCFI49
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE37:
+.LSFDE39:
+ .long .LEFDE39-.LASFDE39 # FDE Length
+.LASFDE39:
+ .long .LASFDE39-.Lframe1 # FDE CIE offset
+ .long .LFB21 # FDE initial location
+ .long .LFE21-.LFB21 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI51-.LFB21
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI52-.LCFI51
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE39:
+.LSFDE41:
+ .long .LEFDE41-.LASFDE41 # FDE Length
+.LASFDE41:
+ .long .LASFDE41-.Lframe1 # FDE CIE offset
+ .long .LFB22 # FDE initial location
+ .long .LFE22-.LFB22 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI53-.LFB22
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI54-.LCFI53
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE41:
+.LSFDE43:
+ .long .LEFDE43-.LASFDE43 # FDE Length
+.LASFDE43:
+ .long .LASFDE43-.Lframe1 # FDE CIE offset
+ .long .LFB23 # FDE initial location
+ .long .LFE23-.LFB23 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI56-.LFB23
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI57-.LCFI56
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE43:
+.LSFDE45:
+ .long .LEFDE45-.LASFDE45 # FDE Length
+.LASFDE45:
+ .long .LASFDE45-.Lframe1 # FDE CIE offset
+ .long .LFB24 # FDE initial location
+ .long .LFE24-.LFB24 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI59-.LFB24
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI60-.LCFI59
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE45:
+.LSFDE47:
+ .long .LEFDE47-.LASFDE47 # FDE Length
+.LASFDE47:
+ .long .LASFDE47-.Lframe1 # FDE CIE offset
+ .long .LFB25 # FDE initial location
+ .long .LFE25-.LFB25 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI62-.LFB25
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI63-.LCFI62
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE47:
+.LSFDE49:
+ .long .LEFDE49-.LASFDE49 # FDE Length
+.LASFDE49:
+ .long .LASFDE49-.Lframe1 # FDE CIE offset
+ .long .LFB26 # FDE initial location
+ .long .LFE26-.LFB26 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI65-.LFB26
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI66-.LCFI65
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE49:
+.LSFDE51:
+ .long .LEFDE51-.LASFDE51 # FDE Length
+.LASFDE51:
+ .long .LASFDE51-.Lframe1 # FDE CIE offset
+ .long .LFB27 # FDE initial location
+ .long .LFE27-.LFB27 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI67-.LFB27
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI68-.LCFI67
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE51:
+.LSFDE53:
+ .long .LEFDE53-.LASFDE53 # FDE Length
+.LASFDE53:
+ .long .LASFDE53-.Lframe1 # FDE CIE offset
+ .long .LFB28 # FDE initial location
+ .long .LFE28-.LFB28 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI69-.LFB28
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI70-.LCFI69
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE53:
+.LSFDE55:
+ .long .LEFDE55-.LASFDE55 # FDE Length
+.LASFDE55:
+ .long .LASFDE55-.Lframe1 # FDE CIE offset
+ .long .LFB29 # FDE initial location
+ .long .LFE29-.LFB29 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI71-.LFB29
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI72-.LCFI71
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE55:
+.LSFDE57:
+ .long .LEFDE57-.LASFDE57 # FDE Length
+.LASFDE57:
+ .long .LASFDE57-.Lframe1 # FDE CIE offset
+ .long .LFB30 # FDE initial location
+ .long .LFE30-.LFB30 # FDE address range
+ .uleb128 0x0 # Augmentation size
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI73-.LFB30
+ .byte 0xe # DW_CFA_def_cfa_offset
+ .uleb128 0x10
+ .byte 0x86 # DW_CFA_offset, column 0x6
+ .uleb128 0x2
+ .byte 0x4 # DW_CFA_advance_loc4
+ .long .LCFI74-.LCFI73
+ .byte 0xd # DW_CFA_def_cfa_register
+ .uleb128 0x6
+ .align 8
+.LEFDE57:
+#NO_APP
+ .text
+.Letext0:
+ .section .debug_loc,"",@progbits
+.Ldebug_loc0:
+.LLST0:
+ .quad .LFB2-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LCFI0-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI0-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LCFI1-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI1-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LFE2-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST0)
+ .quad 0x0 # Location list terminator end (*.LLST0)
+.LLST1:
+ .quad .LFB3-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LCFI2-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI2-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LCFI3-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI3-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LFE3-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST1)
+ .quad 0x0 # Location list terminator end (*.LLST1)
+.LLST2:
+ .quad .LFB4-.Ltext0 # Location list begin address (*.LLST2)
+ .quad .LCFI4-.Ltext0 # Location list end address (*.LLST2)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI4-.Ltext0 # Location list begin address (*.LLST2)
+ .quad .LCFI5-.Ltext0 # Location list end address (*.LLST2)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI5-.Ltext0 # Location list begin address (*.LLST2)
+ .quad .LFE4-.Ltext0 # Location list end address (*.LLST2)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST2)
+ .quad 0x0 # Location list terminator end (*.LLST2)
+.LLST3:
+ .quad .LFB5-.Ltext0 # Location list begin address (*.LLST3)
+ .quad .LCFI6-.Ltext0 # Location list end address (*.LLST3)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI6-.Ltext0 # Location list begin address (*.LLST3)
+ .quad .LCFI7-.Ltext0 # Location list end address (*.LLST3)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI7-.Ltext0 # Location list begin address (*.LLST3)
+ .quad .LFE5-.Ltext0 # Location list end address (*.LLST3)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST3)
+ .quad 0x0 # Location list terminator end (*.LLST3)
+.LLST4:
+ .quad .LFB6-.Ltext0 # Location list begin address (*.LLST4)
+ .quad .LCFI8-.Ltext0 # Location list end address (*.LLST4)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI8-.Ltext0 # Location list begin address (*.LLST4)
+ .quad .LCFI9-.Ltext0 # Location list end address (*.LLST4)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI9-.Ltext0 # Location list begin address (*.LLST4)
+ .quad .LFE6-.Ltext0 # Location list end address (*.LLST4)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST4)
+ .quad 0x0 # Location list terminator end (*.LLST4)
+.LLST5:
+ .quad .LFB7-.Ltext0 # Location list begin address (*.LLST5)
+ .quad .LCFI10-.Ltext0 # Location list end address (*.LLST5)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI10-.Ltext0 # Location list begin address (*.LLST5)
+ .quad .LCFI11-.Ltext0 # Location list end address (*.LLST5)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI11-.Ltext0 # Location list begin address (*.LLST5)
+ .quad .LFE7-.Ltext0 # Location list end address (*.LLST5)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST5)
+ .quad 0x0 # Location list terminator end (*.LLST5)
+.LLST6:
+ .quad .LFB8-.Ltext0 # Location list begin address (*.LLST6)
+ .quad .LCFI12-.Ltext0 # Location list end address (*.LLST6)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI12-.Ltext0 # Location list begin address (*.LLST6)
+ .quad .LCFI13-.Ltext0 # Location list end address (*.LLST6)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI13-.Ltext0 # Location list begin address (*.LLST6)
+ .quad .LFE8-.Ltext0 # Location list end address (*.LLST6)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST6)
+ .quad 0x0 # Location list terminator end (*.LLST6)
+.LLST7:
+ .quad .LFB9-.Ltext0 # Location list begin address (*.LLST7)
+ .quad .LCFI14-.Ltext0 # Location list end address (*.LLST7)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI14-.Ltext0 # Location list begin address (*.LLST7)
+ .quad .LCFI15-.Ltext0 # Location list end address (*.LLST7)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI15-.Ltext0 # Location list begin address (*.LLST7)
+ .quad .LFE9-.Ltext0 # Location list end address (*.LLST7)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST7)
+ .quad 0x0 # Location list terminator end (*.LLST7)
+.LLST8:
+ .quad .LFB10-.Ltext0 # Location list begin address (*.LLST8)
+ .quad .LCFI16-.Ltext0 # Location list end address (*.LLST8)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI16-.Ltext0 # Location list begin address (*.LLST8)
+ .quad .LCFI17-.Ltext0 # Location list end address (*.LLST8)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI17-.Ltext0 # Location list begin address (*.LLST8)
+ .quad .LFE10-.Ltext0 # Location list end address (*.LLST8)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST8)
+ .quad 0x0 # Location list terminator end (*.LLST8)
+.LLST9:
+ .quad .LFB11-.Ltext0 # Location list begin address (*.LLST9)
+ .quad .LCFI20-.Ltext0 # Location list end address (*.LLST9)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI20-.Ltext0 # Location list begin address (*.LLST9)
+ .quad .LCFI21-.Ltext0 # Location list end address (*.LLST9)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI21-.Ltext0 # Location list begin address (*.LLST9)
+ .quad .LFE11-.Ltext0 # Location list end address (*.LLST9)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST9)
+ .quad 0x0 # Location list terminator end (*.LLST9)
+.LLST10:
+ .quad .LFB12-.Ltext0 # Location list begin address (*.LLST10)
+ .quad .LCFI24-.Ltext0 # Location list end address (*.LLST10)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI24-.Ltext0 # Location list begin address (*.LLST10)
+ .quad .LCFI25-.Ltext0 # Location list end address (*.LLST10)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI25-.Ltext0 # Location list begin address (*.LLST10)
+ .quad .LFE12-.Ltext0 # Location list end address (*.LLST10)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST10)
+ .quad 0x0 # Location list terminator end (*.LLST10)
+.LLST11:
+ .quad .LFB13-.Ltext0 # Location list begin address (*.LLST11)
+ .quad .LCFI28-.Ltext0 # Location list end address (*.LLST11)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI28-.Ltext0 # Location list begin address (*.LLST11)
+ .quad .LCFI29-.Ltext0 # Location list end address (*.LLST11)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI29-.Ltext0 # Location list begin address (*.LLST11)
+ .quad .LFE13-.Ltext0 # Location list end address (*.LLST11)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST11)
+ .quad 0x0 # Location list terminator end (*.LLST11)
+.LLST12:
+ .quad .LFB14-.Ltext0 # Location list begin address (*.LLST12)
+ .quad .LCFI32-.Ltext0 # Location list end address (*.LLST12)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI32-.Ltext0 # Location list begin address (*.LLST12)
+ .quad .LCFI33-.Ltext0 # Location list end address (*.LLST12)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI33-.Ltext0 # Location list begin address (*.LLST12)
+ .quad .LFE14-.Ltext0 # Location list end address (*.LLST12)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST12)
+ .quad 0x0 # Location list terminator end (*.LLST12)
+.LLST13:
+ .quad .LFB15-.Ltext0 # Location list begin address (*.LLST13)
+ .quad .LCFI36-.Ltext0 # Location list end address (*.LLST13)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI36-.Ltext0 # Location list begin address (*.LLST13)
+ .quad .LCFI37-.Ltext0 # Location list end address (*.LLST13)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI37-.Ltext0 # Location list begin address (*.LLST13)
+ .quad .LFE15-.Ltext0 # Location list end address (*.LLST13)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST13)
+ .quad 0x0 # Location list terminator end (*.LLST13)
+.LLST14:
+ .quad .LFB16-.Ltext0 # Location list begin address (*.LLST14)
+ .quad .LCFI39-.Ltext0 # Location list end address (*.LLST14)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI39-.Ltext0 # Location list begin address (*.LLST14)
+ .quad .LCFI40-.Ltext0 # Location list end address (*.LLST14)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI40-.Ltext0 # Location list begin address (*.LLST14)
+ .quad .LFE16-.Ltext0 # Location list end address (*.LLST14)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST14)
+ .quad 0x0 # Location list terminator end (*.LLST14)
+.LLST15:
+ .quad .LFB17-.Ltext0 # Location list begin address (*.LLST15)
+ .quad .LCFI42-.Ltext0 # Location list end address (*.LLST15)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI42-.Ltext0 # Location list begin address (*.LLST15)
+ .quad .LCFI43-.Ltext0 # Location list end address (*.LLST15)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI43-.Ltext0 # Location list begin address (*.LLST15)
+ .quad .LFE17-.Ltext0 # Location list end address (*.LLST15)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST15)
+ .quad 0x0 # Location list terminator end (*.LLST15)
+.LLST16:
+ .quad .LFB18-.Ltext0 # Location list begin address (*.LLST16)
+ .quad .LCFI45-.Ltext0 # Location list end address (*.LLST16)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI45-.Ltext0 # Location list begin address (*.LLST16)
+ .quad .LCFI46-.Ltext0 # Location list end address (*.LLST16)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI46-.Ltext0 # Location list begin address (*.LLST16)
+ .quad .LFE18-.Ltext0 # Location list end address (*.LLST16)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST16)
+ .quad 0x0 # Location list terminator end (*.LLST16)
+.LLST17:
+ .quad .LFB19-.Ltext0 # Location list begin address (*.LLST17)
+ .quad .LCFI47-.Ltext0 # Location list end address (*.LLST17)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI47-.Ltext0 # Location list begin address (*.LLST17)
+ .quad .LCFI48-.Ltext0 # Location list end address (*.LLST17)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI48-.Ltext0 # Location list begin address (*.LLST17)
+ .quad .LFE19-.Ltext0 # Location list end address (*.LLST17)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST17)
+ .quad 0x0 # Location list terminator end (*.LLST17)
+.LLST18:
+ .quad .LFB20-.Ltext0 # Location list begin address (*.LLST18)
+ .quad .LCFI49-.Ltext0 # Location list end address (*.LLST18)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI49-.Ltext0 # Location list begin address (*.LLST18)
+ .quad .LCFI50-.Ltext0 # Location list end address (*.LLST18)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI50-.Ltext0 # Location list begin address (*.LLST18)
+ .quad .LFE20-.Ltext0 # Location list end address (*.LLST18)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST18)
+ .quad 0x0 # Location list terminator end (*.LLST18)
+.LLST19:
+ .quad .LFB21-.Ltext0 # Location list begin address (*.LLST19)
+ .quad .LCFI51-.Ltext0 # Location list end address (*.LLST19)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI51-.Ltext0 # Location list begin address (*.LLST19)
+ .quad .LCFI52-.Ltext0 # Location list end address (*.LLST19)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI52-.Ltext0 # Location list begin address (*.LLST19)
+ .quad .LFE21-.Ltext0 # Location list end address (*.LLST19)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST19)
+ .quad 0x0 # Location list terminator end (*.LLST19)
+.LLST20:
+ .quad .LFB22-.Ltext0 # Location list begin address (*.LLST20)
+ .quad .LCFI53-.Ltext0 # Location list end address (*.LLST20)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI53-.Ltext0 # Location list begin address (*.LLST20)
+ .quad .LCFI54-.Ltext0 # Location list end address (*.LLST20)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI54-.Ltext0 # Location list begin address (*.LLST20)
+ .quad .LFE22-.Ltext0 # Location list end address (*.LLST20)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST20)
+ .quad 0x0 # Location list terminator end (*.LLST20)
+.LLST21:
+ .quad .LFB23-.Ltext0 # Location list begin address (*.LLST21)
+ .quad .LCFI56-.Ltext0 # Location list end address (*.LLST21)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI56-.Ltext0 # Location list begin address (*.LLST21)
+ .quad .LCFI57-.Ltext0 # Location list end address (*.LLST21)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI57-.Ltext0 # Location list begin address (*.LLST21)
+ .quad .LFE23-.Ltext0 # Location list end address (*.LLST21)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST21)
+ .quad 0x0 # Location list terminator end (*.LLST21)
+.LLST22:
+ .quad .LFB24-.Ltext0 # Location list begin address (*.LLST22)
+ .quad .LCFI59-.Ltext0 # Location list end address (*.LLST22)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI59-.Ltext0 # Location list begin address (*.LLST22)
+ .quad .LCFI60-.Ltext0 # Location list end address (*.LLST22)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI60-.Ltext0 # Location list begin address (*.LLST22)
+ .quad .LFE24-.Ltext0 # Location list end address (*.LLST22)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST22)
+ .quad 0x0 # Location list terminator end (*.LLST22)
+.LLST23:
+ .quad .LFB25-.Ltext0 # Location list begin address (*.LLST23)
+ .quad .LCFI62-.Ltext0 # Location list end address (*.LLST23)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI62-.Ltext0 # Location list begin address (*.LLST23)
+ .quad .LCFI63-.Ltext0 # Location list end address (*.LLST23)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI63-.Ltext0 # Location list begin address (*.LLST23)
+ .quad .LFE25-.Ltext0 # Location list end address (*.LLST23)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST23)
+ .quad 0x0 # Location list terminator end (*.LLST23)
+.LLST24:
+ .quad .LFB26-.Ltext0 # Location list begin address (*.LLST24)
+ .quad .LCFI65-.Ltext0 # Location list end address (*.LLST24)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI65-.Ltext0 # Location list begin address (*.LLST24)
+ .quad .LCFI66-.Ltext0 # Location list end address (*.LLST24)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI66-.Ltext0 # Location list begin address (*.LLST24)
+ .quad .LFE26-.Ltext0 # Location list end address (*.LLST24)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST24)
+ .quad 0x0 # Location list terminator end (*.LLST24)
+.LLST25:
+ .quad .LFB27-.Ltext0 # Location list begin address (*.LLST25)
+ .quad .LCFI67-.Ltext0 # Location list end address (*.LLST25)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI67-.Ltext0 # Location list begin address (*.LLST25)
+ .quad .LCFI68-.Ltext0 # Location list end address (*.LLST25)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI68-.Ltext0 # Location list begin address (*.LLST25)
+ .quad .LFE27-.Ltext0 # Location list end address (*.LLST25)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST25)
+ .quad 0x0 # Location list terminator end (*.LLST25)
+.LLST26:
+ .quad .LFB28-.Ltext0 # Location list begin address (*.LLST26)
+ .quad .LCFI69-.Ltext0 # Location list end address (*.LLST26)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI69-.Ltext0 # Location list begin address (*.LLST26)
+ .quad .LCFI70-.Ltext0 # Location list end address (*.LLST26)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI70-.Ltext0 # Location list begin address (*.LLST26)
+ .quad .LFE28-.Ltext0 # Location list end address (*.LLST26)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST26)
+ .quad 0x0 # Location list terminator end (*.LLST26)
+.LLST27:
+ .quad .LFB29-.Ltext0 # Location list begin address (*.LLST27)
+ .quad .LCFI71-.Ltext0 # Location list end address (*.LLST27)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI71-.Ltext0 # Location list begin address (*.LLST27)
+ .quad .LCFI72-.Ltext0 # Location list end address (*.LLST27)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI72-.Ltext0 # Location list begin address (*.LLST27)
+ .quad .LFE29-.Ltext0 # Location list end address (*.LLST27)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST27)
+ .quad 0x0 # Location list terminator end (*.LLST27)
+.LLST28:
+ .quad .LFB30-.Ltext0 # Location list begin address (*.LLST28)
+ .quad .LCFI73-.Ltext0 # Location list end address (*.LLST28)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 8
+ .quad .LCFI73-.Ltext0 # Location list begin address (*.LLST28)
+ .quad .LCFI74-.Ltext0 # Location list end address (*.LLST28)
+ .value 0x2 # Location expression size
+ .byte 0x77 # DW_OP_breg7
+ .sleb128 16
+ .quad .LCFI74-.Ltext0 # Location list begin address (*.LLST28)
+ .quad .LFE30-.Ltext0 # Location list end address (*.LLST28)
+ .value 0x2 # Location expression size
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .quad 0x0 # Location list terminator begin (*.LLST28)
+ .quad 0x0 # Location list terminator end (*.LLST28)
+ .section .debug_info
+ .long 0xc11 # Length of Compilation Unit Info
+ .value 0x2 # DWARF version number
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .byte 0x8 # Pointer Size (in bytes)
+ .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
+ .ascii "GNU C 4.2.1 (SUSE Linux)\0" # DW_AT_producer
+ .byte 0x1 # DW_AT_language
+ .ascii "store.c\0" # DW_AT_name
+ .ascii "/home/vries\0" # DW_AT_comp_dir
+ .quad .Ltext0 # DW_AT_low_pc
+ .quad .Letext0 # DW_AT_high_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x2 # (DIE (0x4e) DW_TAG_typedef)
+ .ascii "charest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xa # DW_AT_decl_line
+ .long 0x5d # DW_AT_type
+ .uleb128 0x3 # (DIE (0x5d) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_encoding
+ .ascii "signed char\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x6c) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_charest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xe # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x4e # DW_AT_type
+ .quad .LFB2 # DW_AT_low_pc
+ .quad .LFE2 # DW_AT_high_pc
+ .long .LLST0 # DW_AT_frame_base
+ .long 0xb0 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x99) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xd # DW_AT_decl_line
+ .long 0x4e # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .uleb128 0x5 # (DIE (0xa4) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xd # DW_AT_decl_line
+ .long 0x4e # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x51 # DW_OP_reg1
+ .byte 0x0 # end of children of DIE 0x6c
+ .uleb128 0x4 # (DIE (0xb0) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_short\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0xf2 # DW_AT_type
+ .quad .LFB3 # DW_AT_low_pc
+ .quad .LFE3 # DW_AT_high_pc
+ .long .LLST1 # DW_AT_frame_base
+ .long 0xf2 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0xdb) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x13 # DW_AT_decl_line
+ .long 0xf2 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .uleb128 0x5 # (DIE (0xe6) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x13 # DW_AT_decl_line
+ .long 0xf2 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x51 # DW_OP_reg1
+ .byte 0x0 # end of children of DIE 0xb0
+ .uleb128 0x3 # (DIE (0xf2) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "short int\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0xff) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_int\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x1a # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x13f # DW_AT_type
+ .quad .LFB4 # DW_AT_low_pc
+ .quad .LFE4 # DW_AT_high_pc
+ .long .LLST2 # DW_AT_frame_base
+ .long 0x13f # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x128) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x19 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x5 # (DIE (0x133) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x19 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .byte 0x0 # end of children of DIE 0xff
+ .uleb128 0x3 # (DIE (0x13f) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x146) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_long\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x20 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x187 # DW_AT_type
+ .quad .LFB5 # DW_AT_low_pc
+ .quad .LFE5 # DW_AT_high_pc
+ .long .LLST3 # DW_AT_frame_base
+ .long 0x187 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x170) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x1f # DW_AT_decl_line
+ .long 0x187 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x5 # (DIE (0x17b) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x1f # DW_AT_decl_line
+ .long 0x187 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .byte 0x0 # end of children of DIE 0x146
+ .uleb128 0x3 # (DIE (0x187) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "long int\0" # DW_AT_name
+ .uleb128 0x2 # (DIE (0x193) DW_TAG_typedef)
+ .ascii "longest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x24 # DW_AT_decl_line
+ .long 0x1a2 # DW_AT_type
+ .uleb128 0x3 # (DIE (0x1a2) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "long long int\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x1b3) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_longest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x28 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x193 # DW_AT_type
+ .quad .LFB6 # DW_AT_low_pc
+ .quad .LFE6 # DW_AT_high_pc
+ .long .LLST4 # DW_AT_frame_base
+ .long 0x1f7 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x1e0) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x27 # DW_AT_decl_line
+ .long 0x193 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x5 # (DIE (0x1eb) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x27 # DW_AT_decl_line
+ .long 0x193 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .byte 0x0 # end of children of DIE 0x1b3
+ .uleb128 0x4 # (DIE (0x1f7) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_float\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x2e # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x239 # DW_AT_type
+ .quad .LFB7 # DW_AT_low_pc
+ .quad .LFE7 # DW_AT_high_pc
+ .long .LLST5 # DW_AT_frame_base
+ .long 0x239 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x222) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x2d # DW_AT_decl_line
+ .long 0x239 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x63 # DW_OP_reg19
+ .uleb128 0x5 # (DIE (0x22d) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x2d # DW_AT_decl_line
+ .long 0x239 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x61 # DW_OP_reg17
+ .byte 0x0 # end of children of DIE 0x1f7
+ .uleb128 0x3 # (DIE (0x239) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .ascii "float\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x242) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_double\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x34 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x285 # DW_AT_type
+ .quad .LFB8 # DW_AT_low_pc
+ .quad .LFE8 # DW_AT_high_pc
+ .long .LLST6 # DW_AT_frame_base
+ .long 0x285 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x26e) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x33 # DW_AT_decl_line
+ .long 0x285 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x63 # DW_OP_reg19
+ .uleb128 0x5 # (DIE (0x279) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x33 # DW_AT_decl_line
+ .long 0x285 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x61 # DW_OP_reg17
+ .byte 0x0 # end of children of DIE 0x242
+ .uleb128 0x3 # (DIE (0x285) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .ascii "double\0" # DW_AT_name
+ .uleb128 0x2 # (DIE (0x28f) DW_TAG_typedef)
+ .ascii "doublest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x38 # DW_AT_decl_line
+ .long 0x29f # DW_AT_type
+ .uleb128 0x3 # (DIE (0x29f) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .ascii "long double\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x2ae) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_doublest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x3c # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x28f # DW_AT_type
+ .quad .LFB9 # DW_AT_low_pc
+ .quad .LFE9 # DW_AT_high_pc
+ .long .LLST7 # DW_AT_frame_base
+ .long 0x2f5 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x2dc) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x3b # DW_AT_decl_line
+ .long 0x28f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x90 # DW_OP_regx
+ .uleb128 0x22
+ .uleb128 0x5 # (DIE (0x2e8) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x3b # DW_AT_decl_line
+ .long 0x28f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x90 # DW_OP_regx
+ .uleb128 0x21
+ .byte 0x0 # end of children of DIE 0x2ae
+ .uleb128 0x4 # (DIE (0x2f5) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_charest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x44 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x4e # DW_AT_type
+ .quad .LFB10 # DW_AT_low_pc
+ .quad .LFE10 # DW_AT_high_pc
+ .long .LLST8 # DW_AT_frame_base
+ .long 0x351 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x323) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x43 # DW_AT_decl_line
+ .long 0x4e # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .uleb128 0x5 # (DIE (0x32e) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x43 # DW_AT_decl_line
+ .long 0x4e # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x51 # DW_OP_reg1
+ .uleb128 0x6 # (DIE (0x339) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x45 # DW_AT_decl_line
+ .long 0x4e # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -9
+ .uleb128 0x6 # (DIE (0x345) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x45 # DW_AT_decl_line
+ .long 0x4e # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x53 # DW_OP_reg3
+ .byte 0x0 # end of children of DIE 0x2f5
+ .uleb128 0x4 # (DIE (0x351) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_short\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x4c # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0xf2 # DW_AT_type
+ .quad .LFB11 # DW_AT_low_pc
+ .quad .LFE11 # DW_AT_high_pc
+ .long .LLST9 # DW_AT_frame_base
+ .long 0x3ab # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x37d) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x4b # DW_AT_decl_line
+ .long 0xf2 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .uleb128 0x5 # (DIE (0x388) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x4b # DW_AT_decl_line
+ .long 0xf2 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x51 # DW_OP_reg1
+ .uleb128 0x6 # (DIE (0x393) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x4d # DW_AT_decl_line
+ .long 0xf2 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -10
+ .uleb128 0x6 # (DIE (0x39f) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x4d # DW_AT_decl_line
+ .long 0xf2 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x53 # DW_OP_reg3
+ .byte 0x0 # end of children of DIE 0x351
+ .uleb128 0x4 # (DIE (0x3ab) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_int\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x54 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x13f # DW_AT_type
+ .quad .LFB12 # DW_AT_low_pc
+ .quad .LFE12 # DW_AT_high_pc
+ .long .LLST10 # DW_AT_frame_base
+ .long 0x403 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x3d5) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x53 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x5 # (DIE (0x3e0) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x53 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x6 # (DIE (0x3eb) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x55 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -12
+ .uleb128 0x6 # (DIE (0x3f7) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x55 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x53 # DW_OP_reg3
+ .byte 0x0 # end of children of DIE 0x3ab
+ .uleb128 0x4 # (DIE (0x403) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_long\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x5c # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x187 # DW_AT_type
+ .quad .LFB13 # DW_AT_low_pc
+ .quad .LFE13 # DW_AT_high_pc
+ .long .LLST11 # DW_AT_frame_base
+ .long 0x45c # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x42e) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x5b # DW_AT_decl_line
+ .long 0x187 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x5 # (DIE (0x439) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x5b # DW_AT_decl_line
+ .long 0x187 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x6 # (DIE (0x444) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x5d # DW_AT_decl_line
+ .long 0x187 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -16
+ .uleb128 0x6 # (DIE (0x450) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x5d # DW_AT_decl_line
+ .long 0x187 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x53 # DW_OP_reg3
+ .byte 0x0 # end of children of DIE 0x403
+ .uleb128 0x4 # (DIE (0x45c) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_longest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x64 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x187 # DW_AT_type
+ .quad .LFB14 # DW_AT_low_pc
+ .quad .LFE14 # DW_AT_high_pc
+ .long .LLST12 # DW_AT_frame_base
+ .long 0x4b8 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x48a) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x63 # DW_AT_decl_line
+ .long 0x193 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x5 # (DIE (0x495) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x63 # DW_AT_decl_line
+ .long 0x193 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x6 # (DIE (0x4a0) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x65 # DW_AT_decl_line
+ .long 0x193 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -16
+ .uleb128 0x6 # (DIE (0x4ac) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x65 # DW_AT_decl_line
+ .long 0x193 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x53 # DW_OP_reg3
+ .byte 0x0 # end of children of DIE 0x45c
+ .uleb128 0x4 # (DIE (0x4b8) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_float\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x6c # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x239 # DW_AT_type
+ .quad .LFB15 # DW_AT_low_pc
+ .quad .LFE15 # DW_AT_high_pc
+ .long .LLST13 # DW_AT_frame_base
+ .long 0x513 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x4e4) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x6b # DW_AT_decl_line
+ .long 0x239 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x61 # DW_OP_reg17
+ .uleb128 0x5 # (DIE (0x4ef) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x6b # DW_AT_decl_line
+ .long 0x239 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x62 # DW_OP_reg18
+ .uleb128 0x6 # (DIE (0x4fa) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x6d # DW_AT_decl_line
+ .long 0x239 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -8
+ .uleb128 0x6 # (DIE (0x506) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x6d # DW_AT_decl_line
+ .long 0x239 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -4
+ .byte 0x0 # end of children of DIE 0x4b8
+ .uleb128 0x4 # (DIE (0x513) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_double\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x74 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x285 # DW_AT_type
+ .quad .LFB16 # DW_AT_low_pc
+ .quad .LFE16 # DW_AT_high_pc
+ .long .LLST14 # DW_AT_frame_base
+ .long 0x56f # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x540) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x73 # DW_AT_decl_line
+ .long 0x285 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x61 # DW_OP_reg17
+ .uleb128 0x5 # (DIE (0x54b) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x73 # DW_AT_decl_line
+ .long 0x285 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x62 # DW_OP_reg18
+ .uleb128 0x6 # (DIE (0x556) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x75 # DW_AT_decl_line
+ .long 0x285 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -16
+ .uleb128 0x6 # (DIE (0x562) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x75 # DW_AT_decl_line
+ .long 0x285 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -8
+ .byte 0x0 # end of children of DIE 0x513
+ .uleb128 0x4 # (DIE (0x56f) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_doublest\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x7c # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x28f # DW_AT_type
+ .quad .LFB17 # DW_AT_low_pc
+ .quad .LFE17 # DW_AT_high_pc
+ .long .LLST15 # DW_AT_frame_base
+ .long 0x5cf # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x59e) DW_TAG_formal_parameter)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x7b # DW_AT_decl_line
+ .long 0x28f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 16
+ .uleb128 0x5 # (DIE (0x5aa) DW_TAG_formal_parameter)
+ .ascii "v\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x7b # DW_AT_decl_line
+ .long 0x28f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 32
+ .uleb128 0x6 # (DIE (0x5b6) DW_TAG_variable)
+ .ascii "l\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x7d # DW_AT_decl_line
+ .long 0x28f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -32
+ .uleb128 0x6 # (DIE (0x5c2) DW_TAG_variable)
+ .ascii "r\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x7d # DW_AT_decl_line
+ .long 0x28f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -16
+ .byte 0x0 # end of children of DIE 0x56f
+ .uleb128 0x7 # (DIE (0x5cf) DW_TAG_structure_type)
+ .ascii "s_1\0" # DW_AT_name
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x84 # DW_AT_decl_line
+ .long 0x5e8 # DW_AT_sibling
+ .uleb128 0x8 # (DIE (0x5db) DW_TAG_member)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x84 # DW_AT_decl_line
+ .long 0x5e8 # DW_AT_type
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x5cf
+ .uleb128 0x9 # (DIE (0x5e8) DW_TAG_array_type)
+ .long 0xf2 # DW_AT_type
+ .long 0x5f8 # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x5f1) DW_TAG_subrange_type)
+ .long 0x5f8 # DW_AT_type
+ .byte 0x0 # DW_AT_upper_bound
+ .byte 0x0 # end of children of DIE 0x5e8
+ .uleb128 0xb # (DIE (0x5f8) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .uleb128 0x7 # (DIE (0x5fb) DW_TAG_structure_type)
+ .ascii "s_2\0" # DW_AT_name
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x85 # DW_AT_decl_line
+ .long 0x614 # DW_AT_sibling
+ .uleb128 0x8 # (DIE (0x607) DW_TAG_member)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x85 # DW_AT_decl_line
+ .long 0x614 # DW_AT_type
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x5fb
+ .uleb128 0x9 # (DIE (0x614) DW_TAG_array_type)
+ .long 0xf2 # DW_AT_type
+ .long 0x624 # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x61d) DW_TAG_subrange_type)
+ .long 0x5f8 # DW_AT_type
+ .byte 0x1 # DW_AT_upper_bound
+ .byte 0x0 # end of children of DIE 0x614
+ .uleb128 0x7 # (DIE (0x624) DW_TAG_structure_type)
+ .ascii "s_3\0" # DW_AT_name
+ .byte 0x6 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x86 # DW_AT_decl_line
+ .long 0x63d # DW_AT_sibling
+ .uleb128 0x8 # (DIE (0x630) DW_TAG_member)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x86 # DW_AT_decl_line
+ .long 0x63d # DW_AT_type
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x624
+ .uleb128 0x9 # (DIE (0x63d) DW_TAG_array_type)
+ .long 0xf2 # DW_AT_type
+ .long 0x64d # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x646) DW_TAG_subrange_type)
+ .long 0x5f8 # DW_AT_type
+ .byte 0x2 # DW_AT_upper_bound
+ .byte 0x0 # end of children of DIE 0x63d
+ .uleb128 0x7 # (DIE (0x64d) DW_TAG_structure_type)
+ .ascii "s_4\0" # DW_AT_name
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x87 # DW_AT_decl_line
+ .long 0x666 # DW_AT_sibling
+ .uleb128 0x8 # (DIE (0x659) DW_TAG_member)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x87 # DW_AT_decl_line
+ .long 0x666 # DW_AT_type
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x64d
+ .uleb128 0x9 # (DIE (0x666) DW_TAG_array_type)
+ .long 0xf2 # DW_AT_type
+ .long 0x676 # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x66f) DW_TAG_subrange_type)
+ .long 0x5f8 # DW_AT_type
+ .byte 0x3 # DW_AT_upper_bound
+ .byte 0x0 # end of children of DIE 0x666
+ .uleb128 0x4 # (DIE (0x676) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_struct_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x8b # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x5cf # DW_AT_type
+ .quad .LFB18 # DW_AT_low_pc
+ .quad .LFE18 # DW_AT_high_pc
+ .long .LLST16 # DW_AT_frame_base
+ .long 0x6bd # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x6a4) DW_TAG_formal_parameter)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x8a # DW_AT_decl_line
+ .long 0x5cf # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -34
+ .uleb128 0x6 # (DIE (0x6b0) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x8c # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .byte 0x0 # end of children of DIE 0x676
+ .uleb128 0x4 # (DIE (0x6bd) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_struct_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x96 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x5fb # DW_AT_type
+ .quad .LFB19 # DW_AT_low_pc
+ .quad .LFE19 # DW_AT_high_pc
+ .long .LLST17 # DW_AT_frame_base
+ .long 0x704 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x6eb) DW_TAG_formal_parameter)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x95 # DW_AT_decl_line
+ .long 0x5fb # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -36
+ .uleb128 0x6 # (DIE (0x6f7) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x97 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .byte 0x0 # end of children of DIE 0x6bd
+ .uleb128 0x4 # (DIE (0x704) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_struct_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x624 # DW_AT_type
+ .quad .LFB20 # DW_AT_low_pc
+ .quad .LFE20 # DW_AT_high_pc
+ .long .LLST18 # DW_AT_frame_base
+ .long 0x74b # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x732) DW_TAG_formal_parameter)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xa0 # DW_AT_decl_line
+ .long 0x624 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -40
+ .uleb128 0x6 # (DIE (0x73e) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xa2 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .byte 0x0 # end of children of DIE 0x704
+ .uleb128 0x4 # (DIE (0x74b) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "add_struct_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xac # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x64d # DW_AT_type
+ .quad .LFB21 # DW_AT_low_pc
+ .quad .LFE21 # DW_AT_high_pc
+ .long .LLST19 # DW_AT_frame_base
+ .long 0x792 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x779) DW_TAG_formal_parameter)
+ .ascii "s\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xab # DW_AT_decl_line
+ .long 0x64d # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -40
+ .uleb128 0x6 # (DIE (0x785) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xad # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .byte 0x0 # end of children of DIE 0x74b
+ .uleb128 0x4 # (DIE (0x792) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_struct_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xb7 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x5cf # DW_AT_type
+ .quad .LFB22 # DW_AT_low_pc
+ .quad .LFE22 # DW_AT_high_pc
+ .long .LLST20 # DW_AT_frame_base
+ .long 0x7da # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x7c1) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xb8 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .uleb128 0x6 # (DIE (0x7cd) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xb8 # DW_AT_decl_line
+ .long 0x5cf # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -18
+ .byte 0x0 # end of children of DIE 0x792
+ .uleb128 0x4 # (DIE (0x7da) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_struct_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xc0 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x5fb # DW_AT_type
+ .quad .LFB23 # DW_AT_low_pc
+ .quad .LFE23 # DW_AT_high_pc
+ .long .LLST21 # DW_AT_frame_base
+ .long 0x822 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x809) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xc1 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .uleb128 0x6 # (DIE (0x815) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xc1 # DW_AT_decl_line
+ .long 0x5fb # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -20
+ .byte 0x0 # end of children of DIE 0x7da
+ .uleb128 0x4 # (DIE (0x822) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_struct_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xc9 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x624 # DW_AT_type
+ .quad .LFB24 # DW_AT_low_pc
+ .quad .LFE24 # DW_AT_high_pc
+ .long .LLST22 # DW_AT_frame_base
+ .long 0x86a # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x851) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xca # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .uleb128 0x6 # (DIE (0x85d) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xca # DW_AT_decl_line
+ .long 0x624 # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -48
+ .byte 0x0 # end of children of DIE 0x822
+ .uleb128 0x4 # (DIE (0x86a) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_struct_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xd2 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x64d # DW_AT_type
+ .quad .LFB25 # DW_AT_low_pc
+ .quad .LFE25 # DW_AT_high_pc
+ .long .LLST23 # DW_AT_frame_base
+ .long 0x8b2 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x899) DW_TAG_variable)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xd3 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+ .uleb128 0x6 # (DIE (0x8a5) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xd3 # DW_AT_decl_line
+ .long 0x64d # DW_AT_type
+ .byte 0x2 # DW_AT_location
+ .byte 0x76 # DW_OP_breg6
+ .sleb128 -24
+ .byte 0x0 # end of children of DIE 0x86a
+ .uleb128 0x7 # (DIE (0x8b2) DW_TAG_structure_type)
+ .ascii "f_1\0" # DW_AT_name
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdb # DW_AT_decl_line
+ .long 0x8ec # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x8be) DW_TAG_member)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdb # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_bit_size
+ .byte 0x1f # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x8cd) DW_TAG_member)
+ .ascii "j\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdb # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_bit_size
+ .byte 0x1e # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x8dc) DW_TAG_member)
+ .ascii "k\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdb # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_bit_size
+ .byte 0x1d # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x8b2
+ .uleb128 0x3 # (DIE (0x8ec) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .ascii "unsigned int\0" # DW_AT_name
+ .uleb128 0x7 # (DIE (0x8fc) DW_TAG_structure_type)
+ .ascii "f_2\0" # DW_AT_name
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdc # DW_AT_decl_line
+ .long 0x936 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x908) DW_TAG_member)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdc # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_bit_size
+ .byte 0x1e # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x917) DW_TAG_member)
+ .ascii "j\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdc # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_bit_size
+ .byte 0x1c # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x926) DW_TAG_member)
+ .ascii "k\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdc # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_bit_size
+ .byte 0x1a # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x8fc
+ .uleb128 0x7 # (DIE (0x936) DW_TAG_structure_type)
+ .ascii "f_3\0" # DW_AT_name
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdd # DW_AT_decl_line
+ .long 0x970 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x942) DW_TAG_member)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdd # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_bit_size
+ .byte 0x1d # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x951) DW_TAG_member)
+ .ascii "j\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdd # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_bit_size
+ .byte 0x1a # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x960) DW_TAG_member)
+ .ascii "k\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdd # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_bit_size
+ .byte 0x17 # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x936
+ .uleb128 0x7 # (DIE (0x970) DW_TAG_structure_type)
+ .ascii "f_4\0" # DW_AT_name
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xde # DW_AT_decl_line
+ .long 0x9aa # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x97c) DW_TAG_member)
+ .ascii "i\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xde # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_bit_size
+ .byte 0x1c # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x98b) DW_TAG_member)
+ .ascii "j\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xde # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_bit_size
+ .byte 0x18 # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .uleb128 0xc # (DIE (0x99a) DW_TAG_member)
+ .ascii "k\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xde # DW_AT_decl_line
+ .long 0x8ec # DW_AT_type
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_bit_size
+ .byte 0x14 # DW_AT_bit_offset
+ .byte 0x2 # DW_AT_data_member_location
+ .byte 0x23 # DW_OP_plus_uconst
+ .uleb128 0x0
+ .byte 0x0 # end of children of DIE 0x970
+ .uleb128 0x4 # (DIE (0x9aa) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_field_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xe2 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x8b2 # DW_AT_type
+ .quad .LFB26 # DW_AT_low_pc
+ .quad .LFE26 # DW_AT_high_pc
+ .long .LLST24 # DW_AT_frame_base
+ .long 0x9e4 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x9d8) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xe3 # DW_AT_decl_line
+ .long 0x8b2 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .byte 0x0 # end of children of DIE 0x9aa
+ .uleb128 0x4 # (DIE (0x9e4) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_field_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xe9 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x8fc # DW_AT_type
+ .quad .LFB27 # DW_AT_low_pc
+ .quad .LFE27 # DW_AT_high_pc
+ .long .LLST25 # DW_AT_frame_base
+ .long 0xa1e # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0xa12) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xea # DW_AT_decl_line
+ .long 0x8fc # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .byte 0x0 # end of children of DIE 0x9e4
+ .uleb128 0x4 # (DIE (0xa1e) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_field_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xf0 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x936 # DW_AT_type
+ .quad .LFB28 # DW_AT_low_pc
+ .quad .LFE28 # DW_AT_high_pc
+ .long .LLST26 # DW_AT_frame_base
+ .long 0xa58 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0xa4c) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xf1 # DW_AT_decl_line
+ .long 0x936 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .byte 0x0 # end of children of DIE 0xa1e
+ .uleb128 0x4 # (DIE (0xa58) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "wack_field_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xf7 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_prototyped
+ .long 0x970 # DW_AT_type
+ .quad .LFB29 # DW_AT_low_pc
+ .quad .LFE29 # DW_AT_high_pc
+ .long .LLST27 # DW_AT_frame_base
+ .long 0xa92 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0xa86) DW_TAG_variable)
+ .ascii "u\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xf8 # DW_AT_decl_line
+ .long 0x970 # DW_AT_type
+ .byte 0x1 # DW_AT_location
+ .byte 0x50 # DW_OP_reg0
+ .byte 0x0 # end of children of DIE 0xa58
+ .uleb128 0xd # (DIE (0xa92) DW_TAG_subprogram)
+ .byte 0x1 # DW_AT_external
+ .ascii "main\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .value 0x100 # DW_AT_decl_line
+ .long 0x13f # DW_AT_type
+ .quad .LFB30 # DW_AT_low_pc
+ .quad .LFE30 # DW_AT_high_pc
+ .long .LLST28 # DW_AT_frame_base
+ .uleb128 0xe # (DIE (0xab4) DW_TAG_variable)
+ .ascii "z_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x84 # DW_AT_decl_line
+ .long 0x5cf # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad z_1
+ .uleb128 0xe # (DIE (0xaca) DW_TAG_variable)
+ .ascii "s_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x84 # DW_AT_decl_line
+ .long 0x5cf # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad s_1
+ .uleb128 0xe # (DIE (0xae0) DW_TAG_variable)
+ .ascii "z_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x85 # DW_AT_decl_line
+ .long 0x5fb # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad z_2
+ .uleb128 0xe # (DIE (0xaf6) DW_TAG_variable)
+ .ascii "s_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x85 # DW_AT_decl_line
+ .long 0x5fb # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad s_2
+ .uleb128 0xe # (DIE (0xb0c) DW_TAG_variable)
+ .ascii "z_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x86 # DW_AT_decl_line
+ .long 0x624 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad z_3
+ .uleb128 0xe # (DIE (0xb22) DW_TAG_variable)
+ .ascii "s_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x86 # DW_AT_decl_line
+ .long 0x624 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad s_3
+ .uleb128 0xe # (DIE (0xb38) DW_TAG_variable)
+ .ascii "z_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x87 # DW_AT_decl_line
+ .long 0x64d # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad z_4
+ .uleb128 0xe # (DIE (0xb4e) DW_TAG_variable)
+ .ascii "s_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0x87 # DW_AT_decl_line
+ .long 0x64d # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad s_4
+ .uleb128 0xe # (DIE (0xb64) DW_TAG_variable)
+ .ascii "f_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdb # DW_AT_decl_line
+ .long 0x8b2 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad f_1
+ .uleb128 0xe # (DIE (0xb7a) DW_TAG_variable)
+ .ascii "F_1\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdb # DW_AT_decl_line
+ .long 0x8b2 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad F_1
+ .uleb128 0xe # (DIE (0xb90) DW_TAG_variable)
+ .ascii "f_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdc # DW_AT_decl_line
+ .long 0x8fc # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad f_2
+ .uleb128 0xe # (DIE (0xba6) DW_TAG_variable)
+ .ascii "F_2\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdc # DW_AT_decl_line
+ .long 0x8fc # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad F_2
+ .uleb128 0xe # (DIE (0xbbc) DW_TAG_variable)
+ .ascii "f_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdd # DW_AT_decl_line
+ .long 0x936 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad f_3
+ .uleb128 0xe # (DIE (0xbd2) DW_TAG_variable)
+ .ascii "F_3\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xdd # DW_AT_decl_line
+ .long 0x936 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad F_3
+ .uleb128 0xe # (DIE (0xbe8) DW_TAG_variable)
+ .ascii "f_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xde # DW_AT_decl_line
+ .long 0x970 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad f_4
+ .uleb128 0xe # (DIE (0xbfe) DW_TAG_variable)
+ .ascii "F_4\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (store.c)
+ .byte 0xde # DW_AT_decl_line
+ .long 0x970 # DW_AT_type
+ .byte 0x1 # DW_AT_external
+ .byte 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad F_4
+ .byte 0x0 # end of children of DIE 0xb
+ .section .debug_abbrev
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x6 # (DW_FORM_data4)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0x0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0xc # (DW_FORM_flag)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0xc # (DW_FORM_flag)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x6 # (DW_FORM_data4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0xa # (DW_FORM_block1)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0xa # (DW_FORM_block1)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xa # (DW_FORM_block1)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x1 # (TAG: DW_TAG_array_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0x21 # (TAG: DW_TAG_subrange_type)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2f # (DW_AT_upper_bound)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xb # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0x0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xc # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0xd # (DW_AT_bit_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0xc # (DW_AT_bit_offset)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xa # (DW_FORM_block1)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xd # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0xc # (DW_FORM_flag)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x6 # (DW_FORM_data4)
+ .byte 0x0
+ .byte 0x0
+ .uleb128 0xe # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0x0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0xc # (DW_FORM_flag)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0xa # (DW_FORM_block1)
+ .byte 0x0
+ .byte 0x0
+ .byte 0x0
+ .section .debug_pubnames,"",@progbits
+ .long 0x259 # Length of Public Names Info
+ .value 0x2 # DWARF Version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .long 0xc15 # Compilation Unit Length
+ .long 0x6c # DIE offset
+ .ascii "add_charest\0" # external name
+ .long 0xb0 # DIE offset
+ .ascii "add_short\0" # external name
+ .long 0xff # DIE offset
+ .ascii "add_int\0" # external name
+ .long 0x146 # DIE offset
+ .ascii "add_long\0" # external name
+ .long 0x1b3 # DIE offset
+ .ascii "add_longest\0" # external name
+ .long 0x1f7 # DIE offset
+ .ascii "add_float\0" # external name
+ .long 0x242 # DIE offset
+ .ascii "add_double\0" # external name
+ .long 0x2ae # DIE offset
+ .ascii "add_doublest\0" # external name
+ .long 0x2f5 # DIE offset
+ .ascii "wack_charest\0" # external name
+ .long 0x351 # DIE offset
+ .ascii "wack_short\0" # external name
+ .long 0x3ab # DIE offset
+ .ascii "wack_int\0" # external name
+ .long 0x403 # DIE offset
+ .ascii "wack_long\0" # external name
+ .long 0x45c # DIE offset
+ .ascii "wack_longest\0" # external name
+ .long 0x4b8 # DIE offset
+ .ascii "wack_float\0" # external name
+ .long 0x513 # DIE offset
+ .ascii "wack_double\0" # external name
+ .long 0x56f # DIE offset
+ .ascii "wack_doublest\0" # external name
+ .long 0x676 # DIE offset
+ .ascii "add_struct_1\0" # external name
+ .long 0x6bd # DIE offset
+ .ascii "add_struct_2\0" # external name
+ .long 0x704 # DIE offset
+ .ascii "add_struct_3\0" # external name
+ .long 0x74b # DIE offset
+ .ascii "add_struct_4\0" # external name
+ .long 0x792 # DIE offset
+ .ascii "wack_struct_1\0" # external name
+ .long 0x7da # DIE offset
+ .ascii "wack_struct_2\0" # external name
+ .long 0x822 # DIE offset
+ .ascii "wack_struct_3\0" # external name
+ .long 0x86a # DIE offset
+ .ascii "wack_struct_4\0" # external name
+ .long 0x9aa # DIE offset
+ .ascii "wack_field_1\0" # external name
+ .long 0x9e4 # DIE offset
+ .ascii "wack_field_2\0" # external name
+ .long 0xa1e # DIE offset
+ .ascii "wack_field_3\0" # external name
+ .long 0xa58 # DIE offset
+ .ascii "wack_field_4\0" # external name
+ .long 0xa92 # DIE offset
+ .ascii "main\0" # external name
+ .long 0xab4 # DIE offset
+ .ascii "z_1\0" # external name
+ .long 0xaca # DIE offset
+ .ascii "s_1\0" # external name
+ .long 0xae0 # DIE offset
+ .ascii "z_2\0" # external name
+ .long 0xaf6 # DIE offset
+ .ascii "s_2\0" # external name
+ .long 0xb0c # DIE offset
+ .ascii "z_3\0" # external name
+ .long 0xb22 # DIE offset
+ .ascii "s_3\0" # external name
+ .long 0xb38 # DIE offset
+ .ascii "z_4\0" # external name
+ .long 0xb4e # DIE offset
+ .ascii "s_4\0" # external name
+ .long 0xb64 # DIE offset
+ .ascii "f_1\0" # external name
+ .long 0xb7a # DIE offset
+ .ascii "F_1\0" # external name
+ .long 0xb90 # DIE offset
+ .ascii "f_2\0" # external name
+ .long 0xba6 # DIE offset
+ .ascii "F_2\0" # external name
+ .long 0xbbc # DIE offset
+ .ascii "f_3\0" # external name
+ .long 0xbd2 # DIE offset
+ .ascii "F_3\0" # external name
+ .long 0xbe8 # DIE offset
+ .ascii "f_4\0" # external name
+ .long 0xbfe # DIE offset
+ .ascii "F_4\0" # external name
+ .long 0x0
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF Version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0x0 # Size of Segment Descriptor
+ .value 0x0 # Pad to 16 byte boundary
+ .value 0x0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad 0x0
+ .quad 0x0
+ .ident "GCC: (GNU) 4.2.1 (SUSE Linux)"
+ .section .note.GNU-stack,"",@progbits
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test
2019-08-29 17:47 [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test Tom de Vries
@ 2019-08-29 18:07 ` Andrew Burgess
2019-09-02 11:00 ` [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported Tom de Vries
0 siblings, 1 reply; 6+ messages in thread
From: Andrew Burgess @ 2019-08-29 18:07 UTC (permalink / raw)
To: Tom de Vries; +Cc: gdb-patches
* Tom de Vries <tdevries@suse.de> [2019-08-29 19:47:12 +0200]:
> Hi,
>
> The test-case gdb.base/store.exp fails with gcc 7.4.0:
> ...
> nr of unexpected failures 27
> ...
> and with gcc 4.8.5:
> ...
> nr of unexpected failures 9
> ...
>
> The test-case relies on "the compiler taking heed of requests for values to be
> stored in registers", which appearantly isn't the case anymore for
> modern gcc.
Could you expand on this a little more. I took a quick look and it
appears more that variables just have missing location information.
Sure the test marks the variables with the 'register' keyword, but
surely GDB should still pass the test even if the variable is placed
on the stack?
>
> Fix this by changing this into an assembly file test-case, and generating the
> assembly file using gcc 4.2.1.
>
> Tested on x86_64-linux.
>
> OK for trunk?
No. What about architectures other than x86-64?
I took a quick look, and maybe I missed something, but I don't think
that there are any architecture specific assembler tests in gdb.base/
and I don't think we should be adding any.
Maybe we should add a version of this test into gdb.arch along with
the assembler file for x86-64.
On a slightly different note, I've run into this test before, and I'm
pretty sure that the test is broken, it's been a while since I dug
into this but consider these snippets:
...
float
add_float (register float u, register float v)
{
return u + v;
}
...
wack_float (register float u, register float v)
{
register float l = u, r = v;
l = add_float (l, r);
return l + r;
}
...
Part of the test involves breaking on 'add_float' then going 'up' to
'wack_float' and printing 'l'. GDB expects an answer.
My problem with this is that on many architectures, even at
optimisation level 0 'l' is dead, or at least non-recoverable at the
point of the call to add_float due to being placed in a caller saved
argument register.
Anyway, I agree with you that this test is in need of some clean up,
I'm just not convinced on this approach yet.
Thanks,
Andrew
>
> Thanks,
> - Tom
>
> [gdb/testsuite] Rewrite gdb.base/store.exp into .s test
>
> gdb/testsuite/ChangeLog:
>
> 2019-08-29 Tom de Vries <tdevries@suse.de>
>
> * gdb.base/store.s: Generate.
> * gdb.base/store.exp: Use store.s.
>
> ---
> gdb/testsuite/gdb.base/store.exp | 2 +-
> gdb/testsuite/gdb.base/store.s | 4590 ++++++++++++++++++++++++++++++++++++++
> 2 files changed, 4591 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
> index c5a7584101..44a175047d 100644
> --- a/gdb/testsuite/gdb.base/store.exp
> +++ b/gdb/testsuite/gdb.base/store.exp
> @@ -15,7 +15,7 @@
> # You should have received a copy of the GNU General Public License
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>
> -standard_testfile
> +standard_testfile .s
> set executable $testfile
>
> if { [prepare_for_testing "failed to prepare" $executable $srcfile] } {
> diff --git a/gdb/testsuite/gdb.base/store.s b/gdb/testsuite/gdb.base/store.s
> new file mode 100644
> index 0000000000..d8a111f0cb
> --- /dev/null
> +++ b/gdb/testsuite/gdb.base/store.s
> @@ -0,0 +1,4590 @@
> +/* This testcase is part of GDB, the GNU debugger.
> +
> + Copyright (C) 2019 Free Software Foundation, Inc.
> +
> + This program is free software; you can redistribute it and/or modify
> + it under the terms of the GNU General Public License as published by
> + the Free Software Foundation; either version 3 of the License, or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public License
> + along with this program. If not, see <http://www.gnu.org/licenses/>.
> +
> + This file was created with gcc -g -c -save-temps -dA store.c
> + -fno-stack-protector. */
> +
> + .file "store.c"
> + .section .debug_abbrev,"",@progbits
> +.Ldebug_abbrev0:
> + .section .debug_info,"",@progbits
> +.Ldebug_info0:
> + .section .debug_line,"",@progbits
> +.Ldebug_line0:
> + .text
> +.Ltext0:
> +.globl add_charest
> + .type add_charest, @function
> +add_charest:
> +.LFB2:
> + .file 1 "store.c"
> + # store.c:14
> + .loc 1 14 0
> + # basic block 2
> + pushq %rbp
> +.LCFI0:
> + movq %rsp, %rbp
> +.LCFI1:
> + movl %edi, %eax
> + movl %esi, %edx
> + # store.c:15
> + .loc 1 15 0
> + movl %eax, %ecx
> + movl %edx, %eax
> + leal (%rcx,%rax), %eax
> + movsbl %al,%eax
> + # store.c:16
> + .loc 1 16 0
> + leave
> + ret
> +.LFE2:
> + .size add_charest, .-add_charest
> +.globl add_short
> + .type add_short, @function
> +add_short:
> +.LFB3:
> + # store.c:20
> + .loc 1 20 0
> + # basic block 2
> + pushq %rbp
> +.LCFI2:
> + movq %rsp, %rbp
> +.LCFI3:
> + movl %edi, %eax
> + movl %esi, %edx
> + # store.c:21
> + .loc 1 21 0
> + movl %eax, %ecx
> + movl %edx, %eax
> + leal (%rcx,%rax), %eax
> + cwtl
> + # store.c:22
> + .loc 1 22 0
> + leave
> + ret
> +.LFE3:
> + .size add_short, .-add_short
> +.globl add_int
> + .type add_int, @function
> +add_int:
> +.LFB4:
> + # store.c:26
> + .loc 1 26 0
> + # basic block 2
> + pushq %rbp
> +.LCFI4:
> + movq %rsp, %rbp
> +.LCFI5:
> + # store.c:27
> + .loc 1 27 0
> + leal (%rdi,%rsi), %eax
> + # store.c:28
> + .loc 1 28 0
> + leave
> + ret
> +.LFE4:
> + .size add_int, .-add_int
> +.globl add_long
> + .type add_long, @function
> +add_long:
> +.LFB5:
> + # store.c:32
> + .loc 1 32 0
> + # basic block 2
> + pushq %rbp
> +.LCFI6:
> + movq %rsp, %rbp
> +.LCFI7:
> + # store.c:33
> + .loc 1 33 0
> + leaq (%rdi,%rsi), %rax
> + # store.c:34
> + .loc 1 34 0
> + leave
> + ret
> +.LFE5:
> + .size add_long, .-add_long
> +.globl add_longest
> + .type add_longest, @function
> +add_longest:
> +.LFB6:
> + # store.c:40
> + .loc 1 40 0
> + # basic block 2
> + pushq %rbp
> +.LCFI8:
> + movq %rsp, %rbp
> +.LCFI9:
> + # store.c:41
> + .loc 1 41 0
> + leaq (%rdi,%rsi), %rax
> + # store.c:42
> + .loc 1 42 0
> + leave
> + ret
> +.LFE6:
> + .size add_longest, .-add_longest
> +.globl add_float
> + .type add_float, @function
> +add_float:
> +.LFB7:
> + # store.c:46
> + .loc 1 46 0
> + # basic block 2
> + pushq %rbp
> +.LCFI10:
> + movq %rsp, %rbp
> +.LCFI11:
> + movaps %xmm0, %xmm2
> + movaps %xmm1, %xmm0
> + # store.c:47
> + .loc 1 47 0
> + addss %xmm2, %xmm0
> + # store.c:48
> + .loc 1 48 0
> + leave
> + ret
> +.LFE7:
> + .size add_float, .-add_float
> +.globl add_double
> + .type add_double, @function
> +add_double:
> +.LFB8:
> + # store.c:52
> + .loc 1 52 0
> + # basic block 2
> + pushq %rbp
> +.LCFI12:
> + movq %rsp, %rbp
> +.LCFI13:
> + movapd %xmm0, %xmm2
> + movapd %xmm1, %xmm0
> + # store.c:53
> + .loc 1 53 0
> + addsd %xmm2, %xmm0
> + # store.c:54
> + .loc 1 54 0
> + leave
> + ret
> +.LFE8:
> + .size add_double, .-add_double
> +.globl add_doublest
> + .type add_doublest, @function
> +add_doublest:
> +.LFB9:
> + # store.c:60
> + .loc 1 60 0
> + # basic block 2
> + pushq %rbp
> +.LCFI14:
> + movq %rsp, %rbp
> +.LCFI15:
> + fldt 16(%rbp)
> + fldt 32(%rbp)
> + # store.c:61
> + .loc 1 61 0
> + faddp %st, %st(1)
> + # store.c:62
> + .loc 1 62 0
> + leave
> + ret
> +.LFE9:
> + .size add_doublest, .-add_doublest
> +.globl wack_charest
> + .type wack_charest, @function
> +wack_charest:
> +.LFB10:
> + # store.c:68
> + .loc 1 68 0
> + # basic block 2
> + pushq %rbp
> +.LCFI16:
> + movq %rsp, %rbp
> +.LCFI17:
> + pushq %rbx
> +.LCFI18:
> + subq $8, %rsp
> +.LCFI19:
> + movl %edi, %eax
> + movl %esi, %edx
> + # store.c:69
> + .loc 1 69 0
> + movb %al, -9(%rbp)
> + movl %edx, %ebx
> + # store.c:70
> + .loc 1 70 0
> + movsbl %bl,%esi
> + movsbl -9(%rbp),%edi
> + call add_charest
> + movb %al, -9(%rbp)
> + # store.c:71
> + .loc 1 71 0
> + movzbl -9(%rbp), %edx
> + movl %ebx, %eax
> + leal (%rdx,%rax), %eax
> + movsbl %al,%eax
> + # store.c:72
> + .loc 1 72 0
> + addq $8, %rsp
> + popq %rbx
> + leave
> + ret
> +.LFE10:
> + .size wack_charest, .-wack_charest
> +.globl wack_short
> + .type wack_short, @function
> +wack_short:
> +.LFB11:
> + # store.c:76
> + .loc 1 76 0
> + # basic block 2
> + pushq %rbp
> +.LCFI20:
> + movq %rsp, %rbp
> +.LCFI21:
> + pushq %rbx
> +.LCFI22:
> + subq $8, %rsp
> +.LCFI23:
> + movl %edi, %eax
> + movl %esi, %edx
> + # store.c:77
> + .loc 1 77 0
> + movw %ax, -10(%rbp)
> + movl %edx, %ebx
> + # store.c:78
> + .loc 1 78 0
> + movswl %bx,%esi
> + movswl -10(%rbp),%edi
> + call add_short
> + movw %ax, -10(%rbp)
> + # store.c:79
> + .loc 1 79 0
> + movzwl -10(%rbp), %edx
> + movl %ebx, %eax
> + leal (%rdx,%rax), %eax
> + cwtl
> + # store.c:80
> + .loc 1 80 0
> + addq $8, %rsp
> + popq %rbx
> + leave
> + ret
> +.LFE11:
> + .size wack_short, .-wack_short
> +.globl wack_int
> + .type wack_int, @function
> +wack_int:
> +.LFB12:
> + # store.c:84
> + .loc 1 84 0
> + # basic block 2
> + pushq %rbp
> +.LCFI24:
> + movq %rsp, %rbp
> +.LCFI25:
> + pushq %rbx
> +.LCFI26:
> + subq $8, %rsp
> +.LCFI27:
> + # store.c:85
> + .loc 1 85 0
> + movl %edi, -12(%rbp)
> + movl %esi, %ebx
> + # store.c:86
> + .loc 1 86 0
> + movl %ebx, %esi
> + movl -12(%rbp), %edi
> + call add_int
> + movl %eax, -12(%rbp)
> + # store.c:87
> + .loc 1 87 0
> + movl -12(%rbp), %eax
> + addl %ebx, %eax
> + # store.c:88
> + .loc 1 88 0
> + addq $8, %rsp
> + popq %rbx
> + leave
> + ret
> +.LFE12:
> + .size wack_int, .-wack_int
> +.globl wack_long
> + .type wack_long, @function
> +wack_long:
> +.LFB13:
> + # store.c:92
> + .loc 1 92 0
> + # basic block 2
> + pushq %rbp
> +.LCFI28:
> + movq %rsp, %rbp
> +.LCFI29:
> + pushq %rbx
> +.LCFI30:
> + subq $8, %rsp
> +.LCFI31:
> + # store.c:93
> + .loc 1 93 0
> + movq %rdi, -16(%rbp)
> + movq %rsi, %rbx
> + # store.c:94
> + .loc 1 94 0
> + movq %rbx, %rsi
> + movq -16(%rbp), %rdi
> + call add_long
> + movq %rax, -16(%rbp)
> + # store.c:95
> + .loc 1 95 0
> + movq -16(%rbp), %rax
> + addq %rbx, %rax
> + # store.c:96
> + .loc 1 96 0
> + addq $8, %rsp
> + popq %rbx
> + leave
> + ret
> +.LFE13:
> + .size wack_long, .-wack_long
> +.globl wack_longest
> + .type wack_longest, @function
> +wack_longest:
> +.LFB14:
> + # store.c:100
> + .loc 1 100 0
> + # basic block 2
> + pushq %rbp
> +.LCFI32:
> + movq %rsp, %rbp
> +.LCFI33:
> + pushq %rbx
> +.LCFI34:
> + subq $8, %rsp
> +.LCFI35:
> + # store.c:101
> + .loc 1 101 0
> + movq %rdi, -16(%rbp)
> + movq %rsi, %rbx
> + # store.c:102
> + .loc 1 102 0
> + movq %rbx, %rsi
> + movq -16(%rbp), %rdi
> + call add_longest
> + movq %rax, -16(%rbp)
> + # store.c:103
> + .loc 1 103 0
> + movq -16(%rbp), %rax
> + addq %rbx, %rax
> + # store.c:104
> + .loc 1 104 0
> + addq $8, %rsp
> + popq %rbx
> + leave
> + ret
> +.LFE14:
> + .size wack_longest, .-wack_longest
> +.globl wack_float
> + .type wack_float, @function
> +wack_float:
> +.LFB15:
> + # store.c:108
> + .loc 1 108 0
> + # basic block 2
> + pushq %rbp
> +.LCFI36:
> + movq %rsp, %rbp
> +.LCFI37:
> + subq $8, %rsp
> +.LCFI38:
> + # store.c:109
> + .loc 1 109 0
> + movss %xmm0, -8(%rbp)
> + movss %xmm1, -4(%rbp)
> + # store.c:110
> + .loc 1 110 0
> + movss -4(%rbp), %xmm1
> + movss -8(%rbp), %xmm0
> + call add_float
> + movss %xmm0, -8(%rbp)
> + # store.c:111
> + .loc 1 111 0
> + movss -8(%rbp), %xmm0
> + addss -4(%rbp), %xmm0
> + # store.c:112
> + .loc 1 112 0
> + leave
> + ret
> +.LFE15:
> + .size wack_float, .-wack_float
> +.globl wack_double
> + .type wack_double, @function
> +wack_double:
> +.LFB16:
> + # store.c:116
> + .loc 1 116 0
> + # basic block 2
> + pushq %rbp
> +.LCFI39:
> + movq %rsp, %rbp
> +.LCFI40:
> + subq $16, %rsp
> +.LCFI41:
> + # store.c:117
> + .loc 1 117 0
> + movsd %xmm0, -16(%rbp)
> + movsd %xmm1, -8(%rbp)
> + # store.c:118
> + .loc 1 118 0
> + movsd -8(%rbp), %xmm1
> + movsd -16(%rbp), %xmm0
> + call add_double
> + movsd %xmm0, -16(%rbp)
> + # store.c:119
> + .loc 1 119 0
> + movsd -16(%rbp), %xmm0
> + addsd -8(%rbp), %xmm0
> + # store.c:120
> + .loc 1 120 0
> + leave
> + ret
> +.LFE16:
> + .size wack_double, .-wack_double
> +.globl wack_doublest
> + .type wack_doublest, @function
> +wack_doublest:
> +.LFB17:
> + # store.c:124
> + .loc 1 124 0
> + # basic block 2
> + pushq %rbp
> +.LCFI42:
> + movq %rsp, %rbp
> +.LCFI43:
> + subq $64, %rsp
> +.LCFI44:
> + # store.c:125
> + .loc 1 125 0
> + fldt 16(%rbp)
> + fstpt -32(%rbp)
> + fldt 32(%rbp)
> + fstpt -16(%rbp)
> + # store.c:126
> + .loc 1 126 0
> + fldt -16(%rbp)
> + fstpt 16(%rsp)
> + fldt -32(%rbp)
> + fstpt (%rsp)
> + call add_doublest
> + fstpt -32(%rbp)
> + # store.c:127
> + .loc 1 127 0
> + fldt -32(%rbp)
> + fldt -16(%rbp)
> + faddp %st, %st(1)
> + # store.c:128
> + .loc 1 128 0
> + leave
> + ret
> +.LFE17:
> + .size wack_doublest, .-wack_doublest
> +.globl add_struct_1
> + .type add_struct_1, @function
> +add_struct_1:
> +.LFB18:
> + # store.c:139
> + .loc 1 139 0
> + # basic block 2
> + pushq %rbp
> +.LCFI45:
> + movq %rsp, %rbp
> +.LCFI46:
> + movw %di, -18(%rbp)
> + # store.c:141
> + .loc 1 141 0
> + movl $0, -4(%rbp)
> + jmp .L34
> +.L35:
> + # basic block 4
> + # store.c:143
> + .loc 1 143 0
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -18(%rbp,%rax,2), %eax
> + movl %eax, %edx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -18(%rbp,%rax,2), %eax
> + leal (%rdx,%rax), %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, -18(%rbp,%rax,2)
> + # store.c:141
> + .loc 1 141 0
> + addl $1, -4(%rbp)
> +.L34:
> + # basic block 5
> + cmpl $0, -4(%rbp)
> + je .L35
> + # basic block 6
> + # store.c:145
> + .loc 1 145 0
> + movzwl -18(%rbp), %eax
> + # store.c:146
> + .loc 1 146 0
> + leave
> + ret
> +.LFE18:
> + .size add_struct_1, .-add_struct_1
> +.globl add_struct_2
> + .type add_struct_2, @function
> +add_struct_2:
> +.LFB19:
> + # store.c:150
> + .loc 1 150 0
> + # basic block 2
> + pushq %rbp
> +.LCFI47:
> + movq %rsp, %rbp
> +.LCFI48:
> + movl %edi, -20(%rbp)
> + # store.c:152
> + .loc 1 152 0
> + movl $0, -4(%rbp)
> + jmp .L39
> +.L40:
> + # basic block 4
> + # store.c:154
> + .loc 1 154 0
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -20(%rbp,%rax,2), %eax
> + movl %eax, %edx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -20(%rbp,%rax,2), %eax
> + leal (%rdx,%rax), %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, -20(%rbp,%rax,2)
> + # store.c:152
> + .loc 1 152 0
> + addl $1, -4(%rbp)
> +.L39:
> + # basic block 5
> + movl -4(%rbp), %eax
> + cmpl $1, %eax
> + jbe .L40
> + # basic block 6
> + # store.c:156
> + .loc 1 156 0
> + movl -20(%rbp), %eax
> + # store.c:157
> + .loc 1 157 0
> + leave
> + ret
> +.LFE19:
> + .size add_struct_2, .-add_struct_2
> +.globl add_struct_3
> + .type add_struct_3, @function
> +add_struct_3:
> +.LFB20:
> + # store.c:161
> + .loc 1 161 0
> + # basic block 2
> + pushq %rbp
> +.LCFI49:
> + movq %rsp, %rbp
> +.LCFI50:
> + movq %rdi, -24(%rbp)
> + # store.c:163
> + .loc 1 163 0
> + movl $0, -4(%rbp)
> + jmp .L44
> +.L45:
> + # basic block 4
> + # store.c:165
> + .loc 1 165 0
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -24(%rbp,%rax,2), %eax
> + movl %eax, %edx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -24(%rbp,%rax,2), %eax
> + leal (%rdx,%rax), %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, -24(%rbp,%rax,2)
> + # store.c:163
> + .loc 1 163 0
> + addl $1, -4(%rbp)
> +.L44:
> + # basic block 5
> + movl -4(%rbp), %eax
> + cmpl $2, %eax
> + jbe .L45
> + # basic block 6
> + # store.c:167
> + .loc 1 167 0
> + movl -24(%rbp), %eax
> + movl %eax, -16(%rbp)
> + movzwl -20(%rbp), %eax
> + movw %ax, -12(%rbp)
> + movq $0, -32(%rbp)
> + movzwl -16(%rbp), %eax
> + movzwq %ax,%rdx
> + movq -32(%rbp), %rax
> + movw $0, %ax
> + orq %rdx, %rax
> + movq %rax, -32(%rbp)
> + movzwl -14(%rbp), %eax
> + andl $65535, %eax
> + movq %rax, %rdx
> + salq $16, %rdx
> + movabsq $-4294901761, %rax
> + andq -32(%rbp), %rax
> + orq %rdx, %rax
> + movq %rax, -32(%rbp)
> + movzwl -12(%rbp), %eax
> + andl $65535, %eax
> + movq %rax, %rdx
> + salq $32, %rdx
> + movabsq $-281470681743361, %rax
> + andq -32(%rbp), %rax
> + orq %rdx, %rax
> + movq %rax, -32(%rbp)
> + movq -32(%rbp), %rax
> + # store.c:168
> + .loc 1 168 0
> + leave
> + ret
> +.LFE20:
> + .size add_struct_3, .-add_struct_3
> +.globl add_struct_4
> + .type add_struct_4, @function
> +add_struct_4:
> +.LFB21:
> + # store.c:172
> + .loc 1 172 0
> + # basic block 2
> + pushq %rbp
> +.LCFI51:
> + movq %rsp, %rbp
> +.LCFI52:
> + movq %rdi, -24(%rbp)
> + # store.c:174
> + .loc 1 174 0
> + movl $0, -4(%rbp)
> + jmp .L49
> +.L50:
> + # basic block 4
> + # store.c:176
> + .loc 1 176 0
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -24(%rbp,%rax,2), %eax
> + movl %eax, %edx
> + movl -4(%rbp), %eax
> + cltq
> + movzwl -24(%rbp,%rax,2), %eax
> + leal (%rdx,%rax), %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, -24(%rbp,%rax,2)
> + # store.c:174
> + .loc 1 174 0
> + addl $1, -4(%rbp)
> +.L49:
> + # basic block 5
> + movl -4(%rbp), %eax
> + cmpl $3, %eax
> + jbe .L50
> + # basic block 6
> + # store.c:178
> + .loc 1 178 0
> + movq -24(%rbp), %rax
> + # store.c:179
> + .loc 1 179 0
> + leave
> + ret
> +.LFE21:
> + .size add_struct_4, .-add_struct_4
> +.globl wack_struct_1
> + .type wack_struct_1, @function
> +wack_struct_1:
> +.LFB22:
> + # store.c:183
> + .loc 1 183 0
> + # basic block 3
> + pushq %rbp
> +.LCFI53:
> + movq %rsp, %rbp
> +.LCFI54:
> + subq $24, %rsp
> +.LCFI55:
> + # store.c:184
> + .loc 1 184 0
> + movzwl z_1(%rip), %eax
> + movw %ax, -18(%rbp)
> + # store.c:185
> + .loc 1 185 0
> + movl $0, -4(%rbp)
> + jmp .L54
> +.L55:
> + # basic block 4
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + addl $1, %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, s_1(%rax,%rax)
> + addl $1, -4(%rbp)
> +.L54:
> + # basic block 5
> + cmpl $0, -4(%rbp)
> + je .L55
> + # basic block 6
> + # store.c:186
> + .loc 1 186 0
> + movzwl -18(%rbp), %edi
> + call add_struct_1
> + movw %ax, -18(%rbp)
> + # store.c:187
> + .loc 1 187 0
> + movzwl -18(%rbp), %eax
> + # store.c:188
> + .loc 1 188 0
> + leave
> + ret
> +.LFE22:
> + .size wack_struct_1, .-wack_struct_1
> +.globl wack_struct_2
> + .type wack_struct_2, @function
> +wack_struct_2:
> +.LFB23:
> + # store.c:192
> + .loc 1 192 0
> + # basic block 3
> + pushq %rbp
> +.LCFI56:
> + movq %rsp, %rbp
> +.LCFI57:
> + subq $24, %rsp
> +.LCFI58:
> + # store.c:193
> + .loc 1 193 0
> + movl z_2(%rip), %eax
> + movl %eax, -20(%rbp)
> + # store.c:194
> + .loc 1 194 0
> + movl $0, -4(%rbp)
> + jmp .L59
> +.L60:
> + # basic block 4
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + addl $1, %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, s_2(%rax,%rax)
> + addl $1, -4(%rbp)
> +.L59:
> + # basic block 5
> + movl -4(%rbp), %eax
> + cmpl $1, %eax
> + jbe .L60
> + # basic block 6
> + # store.c:195
> + .loc 1 195 0
> + movl -20(%rbp), %edi
> + call add_struct_2
> + movl %eax, -20(%rbp)
> + # store.c:196
> + .loc 1 196 0
> + movl -20(%rbp), %eax
> + # store.c:197
> + .loc 1 197 0
> + leave
> + ret
> +.LFE23:
> + .size wack_struct_2, .-wack_struct_2
> +.globl wack_struct_3
> + .type wack_struct_3, @function
> +wack_struct_3:
> +.LFB24:
> + # store.c:201
> + .loc 1 201 0
> + # basic block 3
> + pushq %rbp
> +.LCFI59:
> + movq %rsp, %rbp
> +.LCFI60:
> + subq $64, %rsp
> +.LCFI61:
> + # store.c:202
> + .loc 1 202 0
> + movl z_3(%rip), %eax
> + movl %eax, -32(%rbp)
> + movzwl z_3+4(%rip), %eax
> + movw %ax, -28(%rbp)
> + # store.c:203
> + .loc 1 203 0
> + movl $0, -4(%rbp)
> + jmp .L64
> +.L65:
> + # basic block 4
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + addl $1, %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, s_3(%rax,%rax)
> + addl $1, -4(%rbp)
> +.L64:
> + # basic block 5
> + movl -4(%rbp), %eax
> + cmpl $2, %eax
> + jbe .L65
> + # basic block 6
> + # store.c:204
> + .loc 1 204 0
> + movq -32(%rbp), %rdi
> + call add_struct_3
> + movzwl %ax, %ecx
> + movzwl -48(%rbp), %edx
> + andl $0, %edx
> + orl %ecx, %edx
> + movw %dx, -48(%rbp)
> + movq %rax, %rdx
> + shrq $16, %rdx
> + movzwq %dx,%rcx
> + movzwl -46(%rbp), %edx
> + andl $0, %edx
> + orl %ecx, %edx
> + movw %dx, -46(%rbp)
> + shrq $32, %rax
> + movzwq %ax,%rdx
> + movzwl -44(%rbp), %eax
> + andl $0, %eax
> + orl %edx, %eax
> + movw %ax, -44(%rbp)
> + movl -48(%rbp), %eax
> + movl %eax, -32(%rbp)
> + movzwl -44(%rbp), %eax
> + movw %ax, -28(%rbp)
> + # store.c:205
> + .loc 1 205 0
> + movl -32(%rbp), %eax
> + movl %eax, -16(%rbp)
> + movzwl -28(%rbp), %eax
> + movw %ax, -12(%rbp)
> + movq $0, -56(%rbp)
> + movzwl -16(%rbp), %eax
> + movzwq %ax,%rdx
> + movq -56(%rbp), %rax
> + movw $0, %ax
> + orq %rdx, %rax
> + movq %rax, -56(%rbp)
> + movzwl -14(%rbp), %eax
> + andl $65535, %eax
> + movq %rax, %rdx
> + salq $16, %rdx
> + movabsq $-4294901761, %rax
> + andq -56(%rbp), %rax
> + orq %rdx, %rax
> + movq %rax, -56(%rbp)
> + movzwl -12(%rbp), %eax
> + andl $65535, %eax
> + movq %rax, %rdx
> + salq $32, %rdx
> + movabsq $-281470681743361, %rax
> + andq -56(%rbp), %rax
> + orq %rdx, %rax
> + movq %rax, -56(%rbp)
> + movq -56(%rbp), %rax
> + # store.c:206
> + .loc 1 206 0
> + leave
> + ret
> +.LFE24:
> + .size wack_struct_3, .-wack_struct_3
> +.globl wack_struct_4
> + .type wack_struct_4, @function
> +wack_struct_4:
> +.LFB25:
> + # store.c:210
> + .loc 1 210 0
> + # basic block 3
> + pushq %rbp
> +.LCFI62:
> + movq %rsp, %rbp
> +.LCFI63:
> + subq $24, %rsp
> +.LCFI64:
> + # store.c:211
> + .loc 1 211 0
> + movq z_4(%rip), %rax
> + movq %rax, -24(%rbp)
> + # store.c:212
> + .loc 1 212 0
> + movl $0, -4(%rbp)
> + jmp .L69
> +.L70:
> + # basic block 4
> + movl -4(%rbp), %ecx
> + movl -4(%rbp), %eax
> + addl $1, %eax
> + movl %eax, %edx
> + movslq %ecx,%rax
> + movw %dx, s_4(%rax,%rax)
> + addl $1, -4(%rbp)
> +.L69:
> + # basic block 5
> + movl -4(%rbp), %eax
> + cmpl $3, %eax
> + jbe .L70
> + # basic block 6
> + # store.c:213
> + .loc 1 213 0
> + movq -24(%rbp), %rdi
> + call add_struct_4
> + movq %rax, -24(%rbp)
> + # store.c:214
> + .loc 1 214 0
> + movq -24(%rbp), %rax
> + # store.c:215
> + .loc 1 215 0
> + leave
> + ret
> +.LFE25:
> + .size wack_struct_4, .-wack_struct_4
> +.globl f_1
> + .data
> + .align 4
> + .type f_1, @object
> + .size f_1, 4
> +f_1:
> + .byte 7
> + .zero 3
> +.globl f_2
> + .align 4
> + .type f_2, @object
> + .size f_2, 4
> +f_2:
> + .byte 21
> + .zero 3
> +.globl f_3
> + .align 4
> + .type f_3, @object
> + .size f_3, 4
> +f_3:
> + .byte 73
> + .byte 0
> + .zero 2
> +.globl f_4
> + .align 4
> + .type f_4, @object
> + .size f_4, 4
> +f_4:
> + .byte 17
> + .byte 1
> + .zero 2
> + .text
> +.globl wack_field_1
> + .type wack_field_1, @function
> +wack_field_1:
> +.LFB26:
> + # store.c:226
> + .loc 1 226 0
> + # basic block 3
> + pushq %rbp
> +.LCFI65:
> + movq %rsp, %rbp
> +.LCFI66:
> + # store.c:227
> + .loc 1 227 0
> + movl f_1(%rip), %eax
> + # store.c:229
> + .loc 1 229 0
> + leave
> + ret
> +.LFE26:
> + .size wack_field_1, .-wack_field_1
> +.globl wack_field_2
> + .type wack_field_2, @function
> +wack_field_2:
> +.LFB27:
> + # store.c:233
> + .loc 1 233 0
> + # basic block 3
> + pushq %rbp
> +.LCFI67:
> + movq %rsp, %rbp
> +.LCFI68:
> + # store.c:234
> + .loc 1 234 0
> + movl f_2(%rip), %eax
> + # store.c:236
> + .loc 1 236 0
> + leave
> + ret
> +.LFE27:
> + .size wack_field_2, .-wack_field_2
> +.globl wack_field_3
> + .type wack_field_3, @function
> +wack_field_3:
> +.LFB28:
> + # store.c:240
> + .loc 1 240 0
> + # basic block 3
> + pushq %rbp
> +.LCFI69:
> + movq %rsp, %rbp
> +.LCFI70:
> + # store.c:241
> + .loc 1 241 0
> + movl f_3(%rip), %eax
> + # store.c:243
> + .loc 1 243 0
> + leave
> + ret
> +.LFE28:
> + .size wack_field_3, .-wack_field_3
> +.globl wack_field_4
> + .type wack_field_4, @function
> +wack_field_4:
> +.LFB29:
> + # store.c:247
> + .loc 1 247 0
> + # basic block 3
> + pushq %rbp
> +.LCFI71:
> + movq %rsp, %rbp
> +.LCFI72:
> + # store.c:248
> + .loc 1 248 0
> + movl f_4(%rip), %eax
> + # store.c:250
> + .loc 1 250 0
> + leave
> + ret
> +.LFE29:
> + .size wack_field_4, .-wack_field_4
> +.globl main
> + .type main, @function
> +main:
> +.LFB30:
> + # store.c:256
> + .loc 1 256 0
> + # basic block 3
> + pushq %rbp
> +.LCFI73:
> + movq %rsp, %rbp
> +.LCFI74:
> + subq $32, %rsp
> +.LCFI75:
> + # store.c:258
> + .loc 1 258 0
> + movl $-2, %esi
> + movl $-1, %edi
> + call wack_charest
> + # store.c:259
> + .loc 1 259 0
> + movl $-2, %esi
> + movl $-1, %edi
> + call wack_short
> + # store.c:260
> + .loc 1 260 0
> + movl $-2, %esi
> + movl $-1, %edi
> + call wack_int
> + # store.c:261
> + .loc 1 261 0
> + movq $-2, %rsi
> + movq $-1, %rdi
> + call wack_long
> + # store.c:262
> + .loc 1 262 0
> + movq $-2, %rsi
> + movq $-1, %rdi
> + call wack_longest
> + # store.c:263
> + .loc 1 263 0
> + movss .LC1(%rip), %xmm1
> + movss .LC2(%rip), %xmm0
> + call wack_float
> + # store.c:264
> + .loc 1 264 0
> + movsd .LC3(%rip), %xmm0
> + movsd .LC4(%rip), %xmm2
> + movapd %xmm0, %xmm1
> + movapd %xmm2, %xmm0
> + call wack_double
> + # store.c:265
> + .loc 1 265 0
> + movabsq $-9223372036854775808, %rax
> + movl $49152, %edx
> + movq %rax, 16(%rsp)
> + movl %edx, 24(%rsp)
> + movabsq $-9223372036854775808, %rax
> + movl $49151, %edx
> + movq %rax, (%rsp)
> + movl %edx, 8(%rsp)
> + call wack_doublest
> + fstp %st(0)
> + # store.c:268
> + .loc 1 268 0
> + movl $-2, %esi
> + movl $-1, %edi
> + call wack_charest
> + # store.c:269
> + .loc 1 269 0
> + movl $-2, %esi
> + movl $-1, %edi
> + call wack_short
> + # store.c:270
> + .loc 1 270 0
> + movl $-2, %esi
> + movl $-1, %edi
> + call wack_int
> + # store.c:271
> + .loc 1 271 0
> + movq $-2, %rsi
> + movq $-1, %rdi
> + call wack_long
> + # store.c:272
> + .loc 1 272 0
> + movq $-2, %rsi
> + movq $-1, %rdi
> + call wack_longest
> + # store.c:273
> + .loc 1 273 0
> + movss .LC1(%rip), %xmm1
> + movss .LC2(%rip), %xmm0
> + call wack_float
> + # store.c:274
> + .loc 1 274 0
> + movsd .LC3(%rip), %xmm0
> + movsd .LC4(%rip), %xmm2
> + movapd %xmm0, %xmm1
> + movapd %xmm2, %xmm0
> + call wack_double
> + # store.c:275
> + .loc 1 275 0
> + movabsq $-9223372036854775808, %rax
> + movl $49152, %edx
> + movq %rax, 16(%rsp)
> + movl %edx, 24(%rsp)
> + movabsq $-9223372036854775808, %rax
> + movl $49151, %edx
> + movq %rax, (%rsp)
> + movl %edx, 8(%rsp)
> + call wack_doublest
> + fstp %st(0)
> + # store.c:278
> + .loc 1 278 0
> + call wack_struct_1
> + # store.c:279
> + .loc 1 279 0
> + call wack_struct_2
> + # store.c:280
> + .loc 1 280 0
> + call wack_struct_3
> + # store.c:281
> + .loc 1 281 0
> + call wack_struct_4
> + # store.c:284
> + .loc 1 284 0
> + call wack_struct_1
> + # store.c:285
> + .loc 1 285 0
> + call wack_struct_2
> + # store.c:286
> + .loc 1 286 0
> + call wack_struct_3
> + # store.c:287
> + .loc 1 287 0
> + call wack_struct_4
> + # store.c:289
> + .loc 1 289 0
> + call wack_field_1
> + # store.c:290
> + .loc 1 290 0
> + call wack_field_2
> + # store.c:291
> + .loc 1 291 0
> + call wack_field_3
> + # store.c:292
> + .loc 1 292 0
> + call wack_field_4
> + # store.c:294
> + .loc 1 294 0
> + movl $0, %eax
> + # store.c:295
> + .loc 1 295 0
> + leave
> + ret
> +.LFE30:
> + .size main, .-main
> + .comm z_1,2,2
> + .comm s_1,2,2
> + .comm z_2,4,2
> + .comm s_2,4,2
> + .comm z_3,6,2
> + .comm s_3,6,2
> + .comm z_4,8,2
> + .comm s_4,8,2
> + .comm F_1,4,4
> + .comm F_2,4,4
> + .comm F_3,4,4
> + .comm F_4,4,4
> + .section .rodata
> + .align 4
> +.LC1:
> + .long 3221225472
> + .align 4
> +.LC2:
> + .long 3212836864
> + .align 8
> +.LC3:
> + .long 0
> + .long -1073741824
> + .align 8
> +.LC4:
> + .long 0
> + .long -1074790400
> +#APP
> + .section .debug_frame,"",@progbits
> +.Lframe0:
> + .long .LECIE0-.LSCIE0 # Length of Common Information Entry
> +.LSCIE0:
> + .long 0xffffffff # CIE Identifier Tag
> + .byte 0x1 # CIE Version
> + .ascii "\0" # CIE Augmentation
> + .uleb128 0x1 # CIE Code Alignment Factor
> + .sleb128 -8 # CIE Data Alignment Factor
> + .byte 0x10 # CIE RA Column
> + .byte 0xc # DW_CFA_def_cfa
> + .uleb128 0x7
> + .uleb128 0x8
> + .byte 0x90 # DW_CFA_offset, column 0x10
> + .uleb128 0x1
> + .align 8
> +.LECIE0:
> +.LSFDE0:
> + .long .LEFDE0-.LASFDE0 # FDE Length
> +.LASFDE0:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB2 # FDE initial location
> + .quad .LFE2-.LFB2 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI0-.LFB2
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI1-.LCFI0
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE0:
> +.LSFDE2:
> + .long .LEFDE2-.LASFDE2 # FDE Length
> +.LASFDE2:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB3 # FDE initial location
> + .quad .LFE3-.LFB3 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI2-.LFB3
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI3-.LCFI2
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE2:
> +.LSFDE4:
> + .long .LEFDE4-.LASFDE4 # FDE Length
> +.LASFDE4:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB4 # FDE initial location
> + .quad .LFE4-.LFB4 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI4-.LFB4
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI5-.LCFI4
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE4:
> +.LSFDE6:
> + .long .LEFDE6-.LASFDE6 # FDE Length
> +.LASFDE6:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB5 # FDE initial location
> + .quad .LFE5-.LFB5 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI6-.LFB5
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI7-.LCFI6
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE6:
> +.LSFDE8:
> + .long .LEFDE8-.LASFDE8 # FDE Length
> +.LASFDE8:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB6 # FDE initial location
> + .quad .LFE6-.LFB6 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI8-.LFB6
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI9-.LCFI8
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE8:
> +.LSFDE10:
> + .long .LEFDE10-.LASFDE10 # FDE Length
> +.LASFDE10:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB7 # FDE initial location
> + .quad .LFE7-.LFB7 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI10-.LFB7
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI11-.LCFI10
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE10:
> +.LSFDE12:
> + .long .LEFDE12-.LASFDE12 # FDE Length
> +.LASFDE12:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB8 # FDE initial location
> + .quad .LFE8-.LFB8 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI12-.LFB8
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI13-.LCFI12
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE12:
> +.LSFDE14:
> + .long .LEFDE14-.LASFDE14 # FDE Length
> +.LASFDE14:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB9 # FDE initial location
> + .quad .LFE9-.LFB9 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI14-.LFB9
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI15-.LCFI14
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE14:
> +.LSFDE16:
> + .long .LEFDE16-.LASFDE16 # FDE Length
> +.LASFDE16:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB10 # FDE initial location
> + .quad .LFE10-.LFB10 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI16-.LFB10
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI17-.LCFI16
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI19-.LCFI17
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE16:
> +.LSFDE18:
> + .long .LEFDE18-.LASFDE18 # FDE Length
> +.LASFDE18:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB11 # FDE initial location
> + .quad .LFE11-.LFB11 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI20-.LFB11
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI21-.LCFI20
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI23-.LCFI21
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE18:
> +.LSFDE20:
> + .long .LEFDE20-.LASFDE20 # FDE Length
> +.LASFDE20:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB12 # FDE initial location
> + .quad .LFE12-.LFB12 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI24-.LFB12
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI25-.LCFI24
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI27-.LCFI25
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE20:
> +.LSFDE22:
> + .long .LEFDE22-.LASFDE22 # FDE Length
> +.LASFDE22:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB13 # FDE initial location
> + .quad .LFE13-.LFB13 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI28-.LFB13
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI29-.LCFI28
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI31-.LCFI29
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE22:
> +.LSFDE24:
> + .long .LEFDE24-.LASFDE24 # FDE Length
> +.LASFDE24:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB14 # FDE initial location
> + .quad .LFE14-.LFB14 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI32-.LFB14
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI33-.LCFI32
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI35-.LCFI33
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE24:
> +.LSFDE26:
> + .long .LEFDE26-.LASFDE26 # FDE Length
> +.LASFDE26:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB15 # FDE initial location
> + .quad .LFE15-.LFB15 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI36-.LFB15
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI37-.LCFI36
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE26:
> +.LSFDE28:
> + .long .LEFDE28-.LASFDE28 # FDE Length
> +.LASFDE28:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB16 # FDE initial location
> + .quad .LFE16-.LFB16 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI39-.LFB16
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI40-.LCFI39
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE28:
> +.LSFDE30:
> + .long .LEFDE30-.LASFDE30 # FDE Length
> +.LASFDE30:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB17 # FDE initial location
> + .quad .LFE17-.LFB17 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI42-.LFB17
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI43-.LCFI42
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE30:
> +.LSFDE32:
> + .long .LEFDE32-.LASFDE32 # FDE Length
> +.LASFDE32:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB18 # FDE initial location
> + .quad .LFE18-.LFB18 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI45-.LFB18
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI46-.LCFI45
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE32:
> +.LSFDE34:
> + .long .LEFDE34-.LASFDE34 # FDE Length
> +.LASFDE34:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB19 # FDE initial location
> + .quad .LFE19-.LFB19 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI47-.LFB19
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI48-.LCFI47
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE34:
> +.LSFDE36:
> + .long .LEFDE36-.LASFDE36 # FDE Length
> +.LASFDE36:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB20 # FDE initial location
> + .quad .LFE20-.LFB20 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI49-.LFB20
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI50-.LCFI49
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE36:
> +.LSFDE38:
> + .long .LEFDE38-.LASFDE38 # FDE Length
> +.LASFDE38:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB21 # FDE initial location
> + .quad .LFE21-.LFB21 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI51-.LFB21
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI52-.LCFI51
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE38:
> +.LSFDE40:
> + .long .LEFDE40-.LASFDE40 # FDE Length
> +.LASFDE40:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB22 # FDE initial location
> + .quad .LFE22-.LFB22 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI53-.LFB22
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI54-.LCFI53
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE40:
> +.LSFDE42:
> + .long .LEFDE42-.LASFDE42 # FDE Length
> +.LASFDE42:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB23 # FDE initial location
> + .quad .LFE23-.LFB23 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI56-.LFB23
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI57-.LCFI56
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE42:
> +.LSFDE44:
> + .long .LEFDE44-.LASFDE44 # FDE Length
> +.LASFDE44:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB24 # FDE initial location
> + .quad .LFE24-.LFB24 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI59-.LFB24
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI60-.LCFI59
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE44:
> +.LSFDE46:
> + .long .LEFDE46-.LASFDE46 # FDE Length
> +.LASFDE46:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB25 # FDE initial location
> + .quad .LFE25-.LFB25 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI62-.LFB25
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI63-.LCFI62
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE46:
> +.LSFDE48:
> + .long .LEFDE48-.LASFDE48 # FDE Length
> +.LASFDE48:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB26 # FDE initial location
> + .quad .LFE26-.LFB26 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI65-.LFB26
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI66-.LCFI65
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE48:
> +.LSFDE50:
> + .long .LEFDE50-.LASFDE50 # FDE Length
> +.LASFDE50:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB27 # FDE initial location
> + .quad .LFE27-.LFB27 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI67-.LFB27
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI68-.LCFI67
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE50:
> +.LSFDE52:
> + .long .LEFDE52-.LASFDE52 # FDE Length
> +.LASFDE52:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB28 # FDE initial location
> + .quad .LFE28-.LFB28 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI69-.LFB28
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI70-.LCFI69
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE52:
> +.LSFDE54:
> + .long .LEFDE54-.LASFDE54 # FDE Length
> +.LASFDE54:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB29 # FDE initial location
> + .quad .LFE29-.LFB29 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI71-.LFB29
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI72-.LCFI71
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE54:
> +.LSFDE56:
> + .long .LEFDE56-.LASFDE56 # FDE Length
> +.LASFDE56:
> + .long .Lframe0 # FDE CIE offset
> + .quad .LFB30 # FDE initial location
> + .quad .LFE30-.LFB30 # FDE address range
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI73-.LFB30
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI74-.LCFI73
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE56:
> +#NO_APP
> +#APP
> + .section .eh_frame,"a",@progbits
> +.Lframe1:
> + .long .LECIE1-.LSCIE1 # Length of Common Information Entry
> +.LSCIE1:
> + .long 0x0 # CIE Identifier Tag
> + .byte 0x1 # CIE Version
> + .ascii "zR\0" # CIE Augmentation
> + .uleb128 0x1 # CIE Code Alignment Factor
> + .sleb128 -8 # CIE Data Alignment Factor
> + .byte 0x10 # CIE RA Column
> + .uleb128 0x1 # Augmentation size
> + .byte 0x3 # FDE Encoding (udata4)
> + .byte 0xc # DW_CFA_def_cfa
> + .uleb128 0x7
> + .uleb128 0x8
> + .byte 0x90 # DW_CFA_offset, column 0x10
> + .uleb128 0x1
> + .align 8
> +.LECIE1:
> +.LSFDE1:
> + .long .LEFDE1-.LASFDE1 # FDE Length
> +.LASFDE1:
> + .long .LASFDE1-.Lframe1 # FDE CIE offset
> + .long .LFB2 # FDE initial location
> + .long .LFE2-.LFB2 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI0-.LFB2
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI1-.LCFI0
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE1:
> +.LSFDE3:
> + .long .LEFDE3-.LASFDE3 # FDE Length
> +.LASFDE3:
> + .long .LASFDE3-.Lframe1 # FDE CIE offset
> + .long .LFB3 # FDE initial location
> + .long .LFE3-.LFB3 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI2-.LFB3
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI3-.LCFI2
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE3:
> +.LSFDE5:
> + .long .LEFDE5-.LASFDE5 # FDE Length
> +.LASFDE5:
> + .long .LASFDE5-.Lframe1 # FDE CIE offset
> + .long .LFB4 # FDE initial location
> + .long .LFE4-.LFB4 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI4-.LFB4
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI5-.LCFI4
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE5:
> +.LSFDE7:
> + .long .LEFDE7-.LASFDE7 # FDE Length
> +.LASFDE7:
> + .long .LASFDE7-.Lframe1 # FDE CIE offset
> + .long .LFB5 # FDE initial location
> + .long .LFE5-.LFB5 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI6-.LFB5
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI7-.LCFI6
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE7:
> +.LSFDE9:
> + .long .LEFDE9-.LASFDE9 # FDE Length
> +.LASFDE9:
> + .long .LASFDE9-.Lframe1 # FDE CIE offset
> + .long .LFB6 # FDE initial location
> + .long .LFE6-.LFB6 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI8-.LFB6
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI9-.LCFI8
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE9:
> +.LSFDE11:
> + .long .LEFDE11-.LASFDE11 # FDE Length
> +.LASFDE11:
> + .long .LASFDE11-.Lframe1 # FDE CIE offset
> + .long .LFB7 # FDE initial location
> + .long .LFE7-.LFB7 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI10-.LFB7
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI11-.LCFI10
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE11:
> +.LSFDE13:
> + .long .LEFDE13-.LASFDE13 # FDE Length
> +.LASFDE13:
> + .long .LASFDE13-.Lframe1 # FDE CIE offset
> + .long .LFB8 # FDE initial location
> + .long .LFE8-.LFB8 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI12-.LFB8
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI13-.LCFI12
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE13:
> +.LSFDE15:
> + .long .LEFDE15-.LASFDE15 # FDE Length
> +.LASFDE15:
> + .long .LASFDE15-.Lframe1 # FDE CIE offset
> + .long .LFB9 # FDE initial location
> + .long .LFE9-.LFB9 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI14-.LFB9
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI15-.LCFI14
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE15:
> +.LSFDE17:
> + .long .LEFDE17-.LASFDE17 # FDE Length
> +.LASFDE17:
> + .long .LASFDE17-.Lframe1 # FDE CIE offset
> + .long .LFB10 # FDE initial location
> + .long .LFE10-.LFB10 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI16-.LFB10
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI17-.LCFI16
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI19-.LCFI17
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE17:
> +.LSFDE19:
> + .long .LEFDE19-.LASFDE19 # FDE Length
> +.LASFDE19:
> + .long .LASFDE19-.Lframe1 # FDE CIE offset
> + .long .LFB11 # FDE initial location
> + .long .LFE11-.LFB11 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI20-.LFB11
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI21-.LCFI20
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI23-.LCFI21
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE19:
> +.LSFDE21:
> + .long .LEFDE21-.LASFDE21 # FDE Length
> +.LASFDE21:
> + .long .LASFDE21-.Lframe1 # FDE CIE offset
> + .long .LFB12 # FDE initial location
> + .long .LFE12-.LFB12 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI24-.LFB12
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI25-.LCFI24
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI27-.LCFI25
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE21:
> +.LSFDE23:
> + .long .LEFDE23-.LASFDE23 # FDE Length
> +.LASFDE23:
> + .long .LASFDE23-.Lframe1 # FDE CIE offset
> + .long .LFB13 # FDE initial location
> + .long .LFE13-.LFB13 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI28-.LFB13
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI29-.LCFI28
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI31-.LCFI29
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE23:
> +.LSFDE25:
> + .long .LEFDE25-.LASFDE25 # FDE Length
> +.LASFDE25:
> + .long .LASFDE25-.Lframe1 # FDE CIE offset
> + .long .LFB14 # FDE initial location
> + .long .LFE14-.LFB14 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI32-.LFB14
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI33-.LCFI32
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI35-.LCFI33
> + .byte 0x83 # DW_CFA_offset, column 0x3
> + .uleb128 0x3
> + .align 8
> +.LEFDE25:
> +.LSFDE27:
> + .long .LEFDE27-.LASFDE27 # FDE Length
> +.LASFDE27:
> + .long .LASFDE27-.Lframe1 # FDE CIE offset
> + .long .LFB15 # FDE initial location
> + .long .LFE15-.LFB15 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI36-.LFB15
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI37-.LCFI36
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE27:
> +.LSFDE29:
> + .long .LEFDE29-.LASFDE29 # FDE Length
> +.LASFDE29:
> + .long .LASFDE29-.Lframe1 # FDE CIE offset
> + .long .LFB16 # FDE initial location
> + .long .LFE16-.LFB16 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI39-.LFB16
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI40-.LCFI39
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE29:
> +.LSFDE31:
> + .long .LEFDE31-.LASFDE31 # FDE Length
> +.LASFDE31:
> + .long .LASFDE31-.Lframe1 # FDE CIE offset
> + .long .LFB17 # FDE initial location
> + .long .LFE17-.LFB17 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI42-.LFB17
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI43-.LCFI42
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE31:
> +.LSFDE33:
> + .long .LEFDE33-.LASFDE33 # FDE Length
> +.LASFDE33:
> + .long .LASFDE33-.Lframe1 # FDE CIE offset
> + .long .LFB18 # FDE initial location
> + .long .LFE18-.LFB18 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI45-.LFB18
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI46-.LCFI45
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE33:
> +.LSFDE35:
> + .long .LEFDE35-.LASFDE35 # FDE Length
> +.LASFDE35:
> + .long .LASFDE35-.Lframe1 # FDE CIE offset
> + .long .LFB19 # FDE initial location
> + .long .LFE19-.LFB19 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI47-.LFB19
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI48-.LCFI47
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE35:
> +.LSFDE37:
> + .long .LEFDE37-.LASFDE37 # FDE Length
> +.LASFDE37:
> + .long .LASFDE37-.Lframe1 # FDE CIE offset
> + .long .LFB20 # FDE initial location
> + .long .LFE20-.LFB20 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI49-.LFB20
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI50-.LCFI49
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE37:
> +.LSFDE39:
> + .long .LEFDE39-.LASFDE39 # FDE Length
> +.LASFDE39:
> + .long .LASFDE39-.Lframe1 # FDE CIE offset
> + .long .LFB21 # FDE initial location
> + .long .LFE21-.LFB21 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI51-.LFB21
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI52-.LCFI51
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE39:
> +.LSFDE41:
> + .long .LEFDE41-.LASFDE41 # FDE Length
> +.LASFDE41:
> + .long .LASFDE41-.Lframe1 # FDE CIE offset
> + .long .LFB22 # FDE initial location
> + .long .LFE22-.LFB22 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI53-.LFB22
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI54-.LCFI53
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE41:
> +.LSFDE43:
> + .long .LEFDE43-.LASFDE43 # FDE Length
> +.LASFDE43:
> + .long .LASFDE43-.Lframe1 # FDE CIE offset
> + .long .LFB23 # FDE initial location
> + .long .LFE23-.LFB23 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI56-.LFB23
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI57-.LCFI56
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE43:
> +.LSFDE45:
> + .long .LEFDE45-.LASFDE45 # FDE Length
> +.LASFDE45:
> + .long .LASFDE45-.Lframe1 # FDE CIE offset
> + .long .LFB24 # FDE initial location
> + .long .LFE24-.LFB24 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI59-.LFB24
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI60-.LCFI59
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE45:
> +.LSFDE47:
> + .long .LEFDE47-.LASFDE47 # FDE Length
> +.LASFDE47:
> + .long .LASFDE47-.Lframe1 # FDE CIE offset
> + .long .LFB25 # FDE initial location
> + .long .LFE25-.LFB25 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI62-.LFB25
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI63-.LCFI62
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE47:
> +.LSFDE49:
> + .long .LEFDE49-.LASFDE49 # FDE Length
> +.LASFDE49:
> + .long .LASFDE49-.Lframe1 # FDE CIE offset
> + .long .LFB26 # FDE initial location
> + .long .LFE26-.LFB26 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI65-.LFB26
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI66-.LCFI65
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE49:
> +.LSFDE51:
> + .long .LEFDE51-.LASFDE51 # FDE Length
> +.LASFDE51:
> + .long .LASFDE51-.Lframe1 # FDE CIE offset
> + .long .LFB27 # FDE initial location
> + .long .LFE27-.LFB27 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI67-.LFB27
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI68-.LCFI67
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE51:
> +.LSFDE53:
> + .long .LEFDE53-.LASFDE53 # FDE Length
> +.LASFDE53:
> + .long .LASFDE53-.Lframe1 # FDE CIE offset
> + .long .LFB28 # FDE initial location
> + .long .LFE28-.LFB28 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI69-.LFB28
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI70-.LCFI69
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE53:
> +.LSFDE55:
> + .long .LEFDE55-.LASFDE55 # FDE Length
> +.LASFDE55:
> + .long .LASFDE55-.Lframe1 # FDE CIE offset
> + .long .LFB29 # FDE initial location
> + .long .LFE29-.LFB29 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI71-.LFB29
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI72-.LCFI71
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE55:
> +.LSFDE57:
> + .long .LEFDE57-.LASFDE57 # FDE Length
> +.LASFDE57:
> + .long .LASFDE57-.Lframe1 # FDE CIE offset
> + .long .LFB30 # FDE initial location
> + .long .LFE30-.LFB30 # FDE address range
> + .uleb128 0x0 # Augmentation size
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI73-.LFB30
> + .byte 0xe # DW_CFA_def_cfa_offset
> + .uleb128 0x10
> + .byte 0x86 # DW_CFA_offset, column 0x6
> + .uleb128 0x2
> + .byte 0x4 # DW_CFA_advance_loc4
> + .long .LCFI74-.LCFI73
> + .byte 0xd # DW_CFA_def_cfa_register
> + .uleb128 0x6
> + .align 8
> +.LEFDE57:
> +#NO_APP
> + .text
> +.Letext0:
> + .section .debug_loc,"",@progbits
> +.Ldebug_loc0:
> +.LLST0:
> + .quad .LFB2-.Ltext0 # Location list begin address (*.LLST0)
> + .quad .LCFI0-.Ltext0 # Location list end address (*.LLST0)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI0-.Ltext0 # Location list begin address (*.LLST0)
> + .quad .LCFI1-.Ltext0 # Location list end address (*.LLST0)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI1-.Ltext0 # Location list begin address (*.LLST0)
> + .quad .LFE2-.Ltext0 # Location list end address (*.LLST0)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST0)
> + .quad 0x0 # Location list terminator end (*.LLST0)
> +.LLST1:
> + .quad .LFB3-.Ltext0 # Location list begin address (*.LLST1)
> + .quad .LCFI2-.Ltext0 # Location list end address (*.LLST1)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI2-.Ltext0 # Location list begin address (*.LLST1)
> + .quad .LCFI3-.Ltext0 # Location list end address (*.LLST1)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI3-.Ltext0 # Location list begin address (*.LLST1)
> + .quad .LFE3-.Ltext0 # Location list end address (*.LLST1)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST1)
> + .quad 0x0 # Location list terminator end (*.LLST1)
> +.LLST2:
> + .quad .LFB4-.Ltext0 # Location list begin address (*.LLST2)
> + .quad .LCFI4-.Ltext0 # Location list end address (*.LLST2)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI4-.Ltext0 # Location list begin address (*.LLST2)
> + .quad .LCFI5-.Ltext0 # Location list end address (*.LLST2)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI5-.Ltext0 # Location list begin address (*.LLST2)
> + .quad .LFE4-.Ltext0 # Location list end address (*.LLST2)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST2)
> + .quad 0x0 # Location list terminator end (*.LLST2)
> +.LLST3:
> + .quad .LFB5-.Ltext0 # Location list begin address (*.LLST3)
> + .quad .LCFI6-.Ltext0 # Location list end address (*.LLST3)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI6-.Ltext0 # Location list begin address (*.LLST3)
> + .quad .LCFI7-.Ltext0 # Location list end address (*.LLST3)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI7-.Ltext0 # Location list begin address (*.LLST3)
> + .quad .LFE5-.Ltext0 # Location list end address (*.LLST3)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST3)
> + .quad 0x0 # Location list terminator end (*.LLST3)
> +.LLST4:
> + .quad .LFB6-.Ltext0 # Location list begin address (*.LLST4)
> + .quad .LCFI8-.Ltext0 # Location list end address (*.LLST4)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI8-.Ltext0 # Location list begin address (*.LLST4)
> + .quad .LCFI9-.Ltext0 # Location list end address (*.LLST4)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI9-.Ltext0 # Location list begin address (*.LLST4)
> + .quad .LFE6-.Ltext0 # Location list end address (*.LLST4)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST4)
> + .quad 0x0 # Location list terminator end (*.LLST4)
> +.LLST5:
> + .quad .LFB7-.Ltext0 # Location list begin address (*.LLST5)
> + .quad .LCFI10-.Ltext0 # Location list end address (*.LLST5)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI10-.Ltext0 # Location list begin address (*.LLST5)
> + .quad .LCFI11-.Ltext0 # Location list end address (*.LLST5)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI11-.Ltext0 # Location list begin address (*.LLST5)
> + .quad .LFE7-.Ltext0 # Location list end address (*.LLST5)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST5)
> + .quad 0x0 # Location list terminator end (*.LLST5)
> +.LLST6:
> + .quad .LFB8-.Ltext0 # Location list begin address (*.LLST6)
> + .quad .LCFI12-.Ltext0 # Location list end address (*.LLST6)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI12-.Ltext0 # Location list begin address (*.LLST6)
> + .quad .LCFI13-.Ltext0 # Location list end address (*.LLST6)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI13-.Ltext0 # Location list begin address (*.LLST6)
> + .quad .LFE8-.Ltext0 # Location list end address (*.LLST6)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST6)
> + .quad 0x0 # Location list terminator end (*.LLST6)
> +.LLST7:
> + .quad .LFB9-.Ltext0 # Location list begin address (*.LLST7)
> + .quad .LCFI14-.Ltext0 # Location list end address (*.LLST7)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI14-.Ltext0 # Location list begin address (*.LLST7)
> + .quad .LCFI15-.Ltext0 # Location list end address (*.LLST7)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI15-.Ltext0 # Location list begin address (*.LLST7)
> + .quad .LFE9-.Ltext0 # Location list end address (*.LLST7)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST7)
> + .quad 0x0 # Location list terminator end (*.LLST7)
> +.LLST8:
> + .quad .LFB10-.Ltext0 # Location list begin address (*.LLST8)
> + .quad .LCFI16-.Ltext0 # Location list end address (*.LLST8)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI16-.Ltext0 # Location list begin address (*.LLST8)
> + .quad .LCFI17-.Ltext0 # Location list end address (*.LLST8)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI17-.Ltext0 # Location list begin address (*.LLST8)
> + .quad .LFE10-.Ltext0 # Location list end address (*.LLST8)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST8)
> + .quad 0x0 # Location list terminator end (*.LLST8)
> +.LLST9:
> + .quad .LFB11-.Ltext0 # Location list begin address (*.LLST9)
> + .quad .LCFI20-.Ltext0 # Location list end address (*.LLST9)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI20-.Ltext0 # Location list begin address (*.LLST9)
> + .quad .LCFI21-.Ltext0 # Location list end address (*.LLST9)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI21-.Ltext0 # Location list begin address (*.LLST9)
> + .quad .LFE11-.Ltext0 # Location list end address (*.LLST9)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST9)
> + .quad 0x0 # Location list terminator end (*.LLST9)
> +.LLST10:
> + .quad .LFB12-.Ltext0 # Location list begin address (*.LLST10)
> + .quad .LCFI24-.Ltext0 # Location list end address (*.LLST10)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI24-.Ltext0 # Location list begin address (*.LLST10)
> + .quad .LCFI25-.Ltext0 # Location list end address (*.LLST10)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI25-.Ltext0 # Location list begin address (*.LLST10)
> + .quad .LFE12-.Ltext0 # Location list end address (*.LLST10)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST10)
> + .quad 0x0 # Location list terminator end (*.LLST10)
> +.LLST11:
> + .quad .LFB13-.Ltext0 # Location list begin address (*.LLST11)
> + .quad .LCFI28-.Ltext0 # Location list end address (*.LLST11)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI28-.Ltext0 # Location list begin address (*.LLST11)
> + .quad .LCFI29-.Ltext0 # Location list end address (*.LLST11)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI29-.Ltext0 # Location list begin address (*.LLST11)
> + .quad .LFE13-.Ltext0 # Location list end address (*.LLST11)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST11)
> + .quad 0x0 # Location list terminator end (*.LLST11)
> +.LLST12:
> + .quad .LFB14-.Ltext0 # Location list begin address (*.LLST12)
> + .quad .LCFI32-.Ltext0 # Location list end address (*.LLST12)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI32-.Ltext0 # Location list begin address (*.LLST12)
> + .quad .LCFI33-.Ltext0 # Location list end address (*.LLST12)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI33-.Ltext0 # Location list begin address (*.LLST12)
> + .quad .LFE14-.Ltext0 # Location list end address (*.LLST12)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST12)
> + .quad 0x0 # Location list terminator end (*.LLST12)
> +.LLST13:
> + .quad .LFB15-.Ltext0 # Location list begin address (*.LLST13)
> + .quad .LCFI36-.Ltext0 # Location list end address (*.LLST13)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI36-.Ltext0 # Location list begin address (*.LLST13)
> + .quad .LCFI37-.Ltext0 # Location list end address (*.LLST13)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI37-.Ltext0 # Location list begin address (*.LLST13)
> + .quad .LFE15-.Ltext0 # Location list end address (*.LLST13)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST13)
> + .quad 0x0 # Location list terminator end (*.LLST13)
> +.LLST14:
> + .quad .LFB16-.Ltext0 # Location list begin address (*.LLST14)
> + .quad .LCFI39-.Ltext0 # Location list end address (*.LLST14)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI39-.Ltext0 # Location list begin address (*.LLST14)
> + .quad .LCFI40-.Ltext0 # Location list end address (*.LLST14)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI40-.Ltext0 # Location list begin address (*.LLST14)
> + .quad .LFE16-.Ltext0 # Location list end address (*.LLST14)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST14)
> + .quad 0x0 # Location list terminator end (*.LLST14)
> +.LLST15:
> + .quad .LFB17-.Ltext0 # Location list begin address (*.LLST15)
> + .quad .LCFI42-.Ltext0 # Location list end address (*.LLST15)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI42-.Ltext0 # Location list begin address (*.LLST15)
> + .quad .LCFI43-.Ltext0 # Location list end address (*.LLST15)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI43-.Ltext0 # Location list begin address (*.LLST15)
> + .quad .LFE17-.Ltext0 # Location list end address (*.LLST15)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST15)
> + .quad 0x0 # Location list terminator end (*.LLST15)
> +.LLST16:
> + .quad .LFB18-.Ltext0 # Location list begin address (*.LLST16)
> + .quad .LCFI45-.Ltext0 # Location list end address (*.LLST16)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI45-.Ltext0 # Location list begin address (*.LLST16)
> + .quad .LCFI46-.Ltext0 # Location list end address (*.LLST16)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI46-.Ltext0 # Location list begin address (*.LLST16)
> + .quad .LFE18-.Ltext0 # Location list end address (*.LLST16)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST16)
> + .quad 0x0 # Location list terminator end (*.LLST16)
> +.LLST17:
> + .quad .LFB19-.Ltext0 # Location list begin address (*.LLST17)
> + .quad .LCFI47-.Ltext0 # Location list end address (*.LLST17)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI47-.Ltext0 # Location list begin address (*.LLST17)
> + .quad .LCFI48-.Ltext0 # Location list end address (*.LLST17)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI48-.Ltext0 # Location list begin address (*.LLST17)
> + .quad .LFE19-.Ltext0 # Location list end address (*.LLST17)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST17)
> + .quad 0x0 # Location list terminator end (*.LLST17)
> +.LLST18:
> + .quad .LFB20-.Ltext0 # Location list begin address (*.LLST18)
> + .quad .LCFI49-.Ltext0 # Location list end address (*.LLST18)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI49-.Ltext0 # Location list begin address (*.LLST18)
> + .quad .LCFI50-.Ltext0 # Location list end address (*.LLST18)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI50-.Ltext0 # Location list begin address (*.LLST18)
> + .quad .LFE20-.Ltext0 # Location list end address (*.LLST18)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST18)
> + .quad 0x0 # Location list terminator end (*.LLST18)
> +.LLST19:
> + .quad .LFB21-.Ltext0 # Location list begin address (*.LLST19)
> + .quad .LCFI51-.Ltext0 # Location list end address (*.LLST19)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI51-.Ltext0 # Location list begin address (*.LLST19)
> + .quad .LCFI52-.Ltext0 # Location list end address (*.LLST19)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI52-.Ltext0 # Location list begin address (*.LLST19)
> + .quad .LFE21-.Ltext0 # Location list end address (*.LLST19)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST19)
> + .quad 0x0 # Location list terminator end (*.LLST19)
> +.LLST20:
> + .quad .LFB22-.Ltext0 # Location list begin address (*.LLST20)
> + .quad .LCFI53-.Ltext0 # Location list end address (*.LLST20)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI53-.Ltext0 # Location list begin address (*.LLST20)
> + .quad .LCFI54-.Ltext0 # Location list end address (*.LLST20)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI54-.Ltext0 # Location list begin address (*.LLST20)
> + .quad .LFE22-.Ltext0 # Location list end address (*.LLST20)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST20)
> + .quad 0x0 # Location list terminator end (*.LLST20)
> +.LLST21:
> + .quad .LFB23-.Ltext0 # Location list begin address (*.LLST21)
> + .quad .LCFI56-.Ltext0 # Location list end address (*.LLST21)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI56-.Ltext0 # Location list begin address (*.LLST21)
> + .quad .LCFI57-.Ltext0 # Location list end address (*.LLST21)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI57-.Ltext0 # Location list begin address (*.LLST21)
> + .quad .LFE23-.Ltext0 # Location list end address (*.LLST21)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST21)
> + .quad 0x0 # Location list terminator end (*.LLST21)
> +.LLST22:
> + .quad .LFB24-.Ltext0 # Location list begin address (*.LLST22)
> + .quad .LCFI59-.Ltext0 # Location list end address (*.LLST22)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI59-.Ltext0 # Location list begin address (*.LLST22)
> + .quad .LCFI60-.Ltext0 # Location list end address (*.LLST22)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI60-.Ltext0 # Location list begin address (*.LLST22)
> + .quad .LFE24-.Ltext0 # Location list end address (*.LLST22)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST22)
> + .quad 0x0 # Location list terminator end (*.LLST22)
> +.LLST23:
> + .quad .LFB25-.Ltext0 # Location list begin address (*.LLST23)
> + .quad .LCFI62-.Ltext0 # Location list end address (*.LLST23)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI62-.Ltext0 # Location list begin address (*.LLST23)
> + .quad .LCFI63-.Ltext0 # Location list end address (*.LLST23)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI63-.Ltext0 # Location list begin address (*.LLST23)
> + .quad .LFE25-.Ltext0 # Location list end address (*.LLST23)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST23)
> + .quad 0x0 # Location list terminator end (*.LLST23)
> +.LLST24:
> + .quad .LFB26-.Ltext0 # Location list begin address (*.LLST24)
> + .quad .LCFI65-.Ltext0 # Location list end address (*.LLST24)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI65-.Ltext0 # Location list begin address (*.LLST24)
> + .quad .LCFI66-.Ltext0 # Location list end address (*.LLST24)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI66-.Ltext0 # Location list begin address (*.LLST24)
> + .quad .LFE26-.Ltext0 # Location list end address (*.LLST24)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST24)
> + .quad 0x0 # Location list terminator end (*.LLST24)
> +.LLST25:
> + .quad .LFB27-.Ltext0 # Location list begin address (*.LLST25)
> + .quad .LCFI67-.Ltext0 # Location list end address (*.LLST25)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI67-.Ltext0 # Location list begin address (*.LLST25)
> + .quad .LCFI68-.Ltext0 # Location list end address (*.LLST25)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI68-.Ltext0 # Location list begin address (*.LLST25)
> + .quad .LFE27-.Ltext0 # Location list end address (*.LLST25)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST25)
> + .quad 0x0 # Location list terminator end (*.LLST25)
> +.LLST26:
> + .quad .LFB28-.Ltext0 # Location list begin address (*.LLST26)
> + .quad .LCFI69-.Ltext0 # Location list end address (*.LLST26)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI69-.Ltext0 # Location list begin address (*.LLST26)
> + .quad .LCFI70-.Ltext0 # Location list end address (*.LLST26)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI70-.Ltext0 # Location list begin address (*.LLST26)
> + .quad .LFE28-.Ltext0 # Location list end address (*.LLST26)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST26)
> + .quad 0x0 # Location list terminator end (*.LLST26)
> +.LLST27:
> + .quad .LFB29-.Ltext0 # Location list begin address (*.LLST27)
> + .quad .LCFI71-.Ltext0 # Location list end address (*.LLST27)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI71-.Ltext0 # Location list begin address (*.LLST27)
> + .quad .LCFI72-.Ltext0 # Location list end address (*.LLST27)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI72-.Ltext0 # Location list begin address (*.LLST27)
> + .quad .LFE29-.Ltext0 # Location list end address (*.LLST27)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST27)
> + .quad 0x0 # Location list terminator end (*.LLST27)
> +.LLST28:
> + .quad .LFB30-.Ltext0 # Location list begin address (*.LLST28)
> + .quad .LCFI73-.Ltext0 # Location list end address (*.LLST28)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 8
> + .quad .LCFI73-.Ltext0 # Location list begin address (*.LLST28)
> + .quad .LCFI74-.Ltext0 # Location list end address (*.LLST28)
> + .value 0x2 # Location expression size
> + .byte 0x77 # DW_OP_breg7
> + .sleb128 16
> + .quad .LCFI74-.Ltext0 # Location list begin address (*.LLST28)
> + .quad .LFE30-.Ltext0 # Location list end address (*.LLST28)
> + .value 0x2 # Location expression size
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .quad 0x0 # Location list terminator begin (*.LLST28)
> + .quad 0x0 # Location list terminator end (*.LLST28)
> + .section .debug_info
> + .long 0xc11 # Length of Compilation Unit Info
> + .value 0x2 # DWARF version number
> + .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
> + .byte 0x8 # Pointer Size (in bytes)
> + .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
> + .ascii "GNU C 4.2.1 (SUSE Linux)\0" # DW_AT_producer
> + .byte 0x1 # DW_AT_language
> + .ascii "store.c\0" # DW_AT_name
> + .ascii "/home/vries\0" # DW_AT_comp_dir
> + .quad .Ltext0 # DW_AT_low_pc
> + .quad .Letext0 # DW_AT_high_pc
> + .long .Ldebug_line0 # DW_AT_stmt_list
> + .uleb128 0x2 # (DIE (0x4e) DW_TAG_typedef)
> + .ascii "charest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xa # DW_AT_decl_line
> + .long 0x5d # DW_AT_type
> + .uleb128 0x3 # (DIE (0x5d) DW_TAG_base_type)
> + .byte 0x1 # DW_AT_byte_size
> + .byte 0x6 # DW_AT_encoding
> + .ascii "signed char\0" # DW_AT_name
> + .uleb128 0x4 # (DIE (0x6c) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_charest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xe # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x4e # DW_AT_type
> + .quad .LFB2 # DW_AT_low_pc
> + .quad .LFE2 # DW_AT_high_pc
> + .long .LLST0 # DW_AT_frame_base
> + .long 0xb0 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x99) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xd # DW_AT_decl_line
> + .long 0x4e # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .uleb128 0x5 # (DIE (0xa4) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xd # DW_AT_decl_line
> + .long 0x4e # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x51 # DW_OP_reg1
> + .byte 0x0 # end of children of DIE 0x6c
> + .uleb128 0x4 # (DIE (0xb0) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_short\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x14 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0xf2 # DW_AT_type
> + .quad .LFB3 # DW_AT_low_pc
> + .quad .LFE3 # DW_AT_high_pc
> + .long .LLST1 # DW_AT_frame_base
> + .long 0xf2 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0xdb) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x13 # DW_AT_decl_line
> + .long 0xf2 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .uleb128 0x5 # (DIE (0xe6) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x13 # DW_AT_decl_line
> + .long 0xf2 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x51 # DW_OP_reg1
> + .byte 0x0 # end of children of DIE 0xb0
> + .uleb128 0x3 # (DIE (0xf2) DW_TAG_base_type)
> + .byte 0x2 # DW_AT_byte_size
> + .byte 0x5 # DW_AT_encoding
> + .ascii "short int\0" # DW_AT_name
> + .uleb128 0x4 # (DIE (0xff) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_int\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x1a # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x13f # DW_AT_type
> + .quad .LFB4 # DW_AT_low_pc
> + .quad .LFE4 # DW_AT_high_pc
> + .long .LLST2 # DW_AT_frame_base
> + .long 0x13f # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x128) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x19 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x55 # DW_OP_reg5
> + .uleb128 0x5 # (DIE (0x133) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x19 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x54 # DW_OP_reg4
> + .byte 0x0 # end of children of DIE 0xff
> + .uleb128 0x3 # (DIE (0x13f) DW_TAG_base_type)
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x5 # DW_AT_encoding
> + .ascii "int\0" # DW_AT_name
> + .uleb128 0x4 # (DIE (0x146) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_long\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x20 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x187 # DW_AT_type
> + .quad .LFB5 # DW_AT_low_pc
> + .quad .LFE5 # DW_AT_high_pc
> + .long .LLST3 # DW_AT_frame_base
> + .long 0x187 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x170) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x1f # DW_AT_decl_line
> + .long 0x187 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x55 # DW_OP_reg5
> + .uleb128 0x5 # (DIE (0x17b) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x1f # DW_AT_decl_line
> + .long 0x187 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x54 # DW_OP_reg4
> + .byte 0x0 # end of children of DIE 0x146
> + .uleb128 0x3 # (DIE (0x187) DW_TAG_base_type)
> + .byte 0x8 # DW_AT_byte_size
> + .byte 0x5 # DW_AT_encoding
> + .ascii "long int\0" # DW_AT_name
> + .uleb128 0x2 # (DIE (0x193) DW_TAG_typedef)
> + .ascii "longest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x24 # DW_AT_decl_line
> + .long 0x1a2 # DW_AT_type
> + .uleb128 0x3 # (DIE (0x1a2) DW_TAG_base_type)
> + .byte 0x8 # DW_AT_byte_size
> + .byte 0x5 # DW_AT_encoding
> + .ascii "long long int\0" # DW_AT_name
> + .uleb128 0x4 # (DIE (0x1b3) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_longest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x28 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x193 # DW_AT_type
> + .quad .LFB6 # DW_AT_low_pc
> + .quad .LFE6 # DW_AT_high_pc
> + .long .LLST4 # DW_AT_frame_base
> + .long 0x1f7 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x1e0) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x27 # DW_AT_decl_line
> + .long 0x193 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x55 # DW_OP_reg5
> + .uleb128 0x5 # (DIE (0x1eb) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x27 # DW_AT_decl_line
> + .long 0x193 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x54 # DW_OP_reg4
> + .byte 0x0 # end of children of DIE 0x1b3
> + .uleb128 0x4 # (DIE (0x1f7) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_float\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x2e # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x239 # DW_AT_type
> + .quad .LFB7 # DW_AT_low_pc
> + .quad .LFE7 # DW_AT_high_pc
> + .long .LLST5 # DW_AT_frame_base
> + .long 0x239 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x222) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x2d # DW_AT_decl_line
> + .long 0x239 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x63 # DW_OP_reg19
> + .uleb128 0x5 # (DIE (0x22d) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x2d # DW_AT_decl_line
> + .long 0x239 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x61 # DW_OP_reg17
> + .byte 0x0 # end of children of DIE 0x1f7
> + .uleb128 0x3 # (DIE (0x239) DW_TAG_base_type)
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x4 # DW_AT_encoding
> + .ascii "float\0" # DW_AT_name
> + .uleb128 0x4 # (DIE (0x242) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_double\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x34 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x285 # DW_AT_type
> + .quad .LFB8 # DW_AT_low_pc
> + .quad .LFE8 # DW_AT_high_pc
> + .long .LLST6 # DW_AT_frame_base
> + .long 0x285 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x26e) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x33 # DW_AT_decl_line
> + .long 0x285 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x63 # DW_OP_reg19
> + .uleb128 0x5 # (DIE (0x279) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x33 # DW_AT_decl_line
> + .long 0x285 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x61 # DW_OP_reg17
> + .byte 0x0 # end of children of DIE 0x242
> + .uleb128 0x3 # (DIE (0x285) DW_TAG_base_type)
> + .byte 0x8 # DW_AT_byte_size
> + .byte 0x4 # DW_AT_encoding
> + .ascii "double\0" # DW_AT_name
> + .uleb128 0x2 # (DIE (0x28f) DW_TAG_typedef)
> + .ascii "doublest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x38 # DW_AT_decl_line
> + .long 0x29f # DW_AT_type
> + .uleb128 0x3 # (DIE (0x29f) DW_TAG_base_type)
> + .byte 0x10 # DW_AT_byte_size
> + .byte 0x4 # DW_AT_encoding
> + .ascii "long double\0" # DW_AT_name
> + .uleb128 0x4 # (DIE (0x2ae) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_doublest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x3c # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x28f # DW_AT_type
> + .quad .LFB9 # DW_AT_low_pc
> + .quad .LFE9 # DW_AT_high_pc
> + .long .LLST7 # DW_AT_frame_base
> + .long 0x2f5 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x2dc) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x3b # DW_AT_decl_line
> + .long 0x28f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x90 # DW_OP_regx
> + .uleb128 0x22
> + .uleb128 0x5 # (DIE (0x2e8) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x3b # DW_AT_decl_line
> + .long 0x28f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x90 # DW_OP_regx
> + .uleb128 0x21
> + .byte 0x0 # end of children of DIE 0x2ae
> + .uleb128 0x4 # (DIE (0x2f5) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_charest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x44 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x4e # DW_AT_type
> + .quad .LFB10 # DW_AT_low_pc
> + .quad .LFE10 # DW_AT_high_pc
> + .long .LLST8 # DW_AT_frame_base
> + .long 0x351 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x323) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x43 # DW_AT_decl_line
> + .long 0x4e # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .uleb128 0x5 # (DIE (0x32e) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x43 # DW_AT_decl_line
> + .long 0x4e # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x51 # DW_OP_reg1
> + .uleb128 0x6 # (DIE (0x339) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x45 # DW_AT_decl_line
> + .long 0x4e # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -9
> + .uleb128 0x6 # (DIE (0x345) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x45 # DW_AT_decl_line
> + .long 0x4e # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x53 # DW_OP_reg3
> + .byte 0x0 # end of children of DIE 0x2f5
> + .uleb128 0x4 # (DIE (0x351) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_short\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x4c # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0xf2 # DW_AT_type
> + .quad .LFB11 # DW_AT_low_pc
> + .quad .LFE11 # DW_AT_high_pc
> + .long .LLST9 # DW_AT_frame_base
> + .long 0x3ab # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x37d) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x4b # DW_AT_decl_line
> + .long 0xf2 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .uleb128 0x5 # (DIE (0x388) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x4b # DW_AT_decl_line
> + .long 0xf2 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x51 # DW_OP_reg1
> + .uleb128 0x6 # (DIE (0x393) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x4d # DW_AT_decl_line
> + .long 0xf2 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -10
> + .uleb128 0x6 # (DIE (0x39f) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x4d # DW_AT_decl_line
> + .long 0xf2 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x53 # DW_OP_reg3
> + .byte 0x0 # end of children of DIE 0x351
> + .uleb128 0x4 # (DIE (0x3ab) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_int\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x54 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x13f # DW_AT_type
> + .quad .LFB12 # DW_AT_low_pc
> + .quad .LFE12 # DW_AT_high_pc
> + .long .LLST10 # DW_AT_frame_base
> + .long 0x403 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x3d5) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x53 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x55 # DW_OP_reg5
> + .uleb128 0x5 # (DIE (0x3e0) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x53 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x54 # DW_OP_reg4
> + .uleb128 0x6 # (DIE (0x3eb) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x55 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -12
> + .uleb128 0x6 # (DIE (0x3f7) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x55 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x53 # DW_OP_reg3
> + .byte 0x0 # end of children of DIE 0x3ab
> + .uleb128 0x4 # (DIE (0x403) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_long\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x5c # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x187 # DW_AT_type
> + .quad .LFB13 # DW_AT_low_pc
> + .quad .LFE13 # DW_AT_high_pc
> + .long .LLST11 # DW_AT_frame_base
> + .long 0x45c # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x42e) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x5b # DW_AT_decl_line
> + .long 0x187 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x55 # DW_OP_reg5
> + .uleb128 0x5 # (DIE (0x439) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x5b # DW_AT_decl_line
> + .long 0x187 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x54 # DW_OP_reg4
> + .uleb128 0x6 # (DIE (0x444) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x5d # DW_AT_decl_line
> + .long 0x187 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -16
> + .uleb128 0x6 # (DIE (0x450) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x5d # DW_AT_decl_line
> + .long 0x187 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x53 # DW_OP_reg3
> + .byte 0x0 # end of children of DIE 0x403
> + .uleb128 0x4 # (DIE (0x45c) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_longest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x64 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x187 # DW_AT_type
> + .quad .LFB14 # DW_AT_low_pc
> + .quad .LFE14 # DW_AT_high_pc
> + .long .LLST12 # DW_AT_frame_base
> + .long 0x4b8 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x48a) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x63 # DW_AT_decl_line
> + .long 0x193 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x55 # DW_OP_reg5
> + .uleb128 0x5 # (DIE (0x495) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x63 # DW_AT_decl_line
> + .long 0x193 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x54 # DW_OP_reg4
> + .uleb128 0x6 # (DIE (0x4a0) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x65 # DW_AT_decl_line
> + .long 0x193 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -16
> + .uleb128 0x6 # (DIE (0x4ac) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x65 # DW_AT_decl_line
> + .long 0x193 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x53 # DW_OP_reg3
> + .byte 0x0 # end of children of DIE 0x45c
> + .uleb128 0x4 # (DIE (0x4b8) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_float\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x6c # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x239 # DW_AT_type
> + .quad .LFB15 # DW_AT_low_pc
> + .quad .LFE15 # DW_AT_high_pc
> + .long .LLST13 # DW_AT_frame_base
> + .long 0x513 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x4e4) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x6b # DW_AT_decl_line
> + .long 0x239 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x61 # DW_OP_reg17
> + .uleb128 0x5 # (DIE (0x4ef) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x6b # DW_AT_decl_line
> + .long 0x239 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x62 # DW_OP_reg18
> + .uleb128 0x6 # (DIE (0x4fa) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x6d # DW_AT_decl_line
> + .long 0x239 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -8
> + .uleb128 0x6 # (DIE (0x506) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x6d # DW_AT_decl_line
> + .long 0x239 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -4
> + .byte 0x0 # end of children of DIE 0x4b8
> + .uleb128 0x4 # (DIE (0x513) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_double\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x74 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x285 # DW_AT_type
> + .quad .LFB16 # DW_AT_low_pc
> + .quad .LFE16 # DW_AT_high_pc
> + .long .LLST14 # DW_AT_frame_base
> + .long 0x56f # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x540) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x73 # DW_AT_decl_line
> + .long 0x285 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x61 # DW_OP_reg17
> + .uleb128 0x5 # (DIE (0x54b) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x73 # DW_AT_decl_line
> + .long 0x285 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x62 # DW_OP_reg18
> + .uleb128 0x6 # (DIE (0x556) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x75 # DW_AT_decl_line
> + .long 0x285 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -16
> + .uleb128 0x6 # (DIE (0x562) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x75 # DW_AT_decl_line
> + .long 0x285 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -8
> + .byte 0x0 # end of children of DIE 0x513
> + .uleb128 0x4 # (DIE (0x56f) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_doublest\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x7c # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x28f # DW_AT_type
> + .quad .LFB17 # DW_AT_low_pc
> + .quad .LFE17 # DW_AT_high_pc
> + .long .LLST15 # DW_AT_frame_base
> + .long 0x5cf # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x59e) DW_TAG_formal_parameter)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x7b # DW_AT_decl_line
> + .long 0x28f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 16
> + .uleb128 0x5 # (DIE (0x5aa) DW_TAG_formal_parameter)
> + .ascii "v\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x7b # DW_AT_decl_line
> + .long 0x28f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 32
> + .uleb128 0x6 # (DIE (0x5b6) DW_TAG_variable)
> + .ascii "l\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x7d # DW_AT_decl_line
> + .long 0x28f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -32
> + .uleb128 0x6 # (DIE (0x5c2) DW_TAG_variable)
> + .ascii "r\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x7d # DW_AT_decl_line
> + .long 0x28f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -16
> + .byte 0x0 # end of children of DIE 0x56f
> + .uleb128 0x7 # (DIE (0x5cf) DW_TAG_structure_type)
> + .ascii "s_1\0" # DW_AT_name
> + .byte 0x2 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x84 # DW_AT_decl_line
> + .long 0x5e8 # DW_AT_sibling
> + .uleb128 0x8 # (DIE (0x5db) DW_TAG_member)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x84 # DW_AT_decl_line
> + .long 0x5e8 # DW_AT_type
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x5cf
> + .uleb128 0x9 # (DIE (0x5e8) DW_TAG_array_type)
> + .long 0xf2 # DW_AT_type
> + .long 0x5f8 # DW_AT_sibling
> + .uleb128 0xa # (DIE (0x5f1) DW_TAG_subrange_type)
> + .long 0x5f8 # DW_AT_type
> + .byte 0x0 # DW_AT_upper_bound
> + .byte 0x0 # end of children of DIE 0x5e8
> + .uleb128 0xb # (DIE (0x5f8) DW_TAG_base_type)
> + .byte 0x8 # DW_AT_byte_size
> + .byte 0x7 # DW_AT_encoding
> + .uleb128 0x7 # (DIE (0x5fb) DW_TAG_structure_type)
> + .ascii "s_2\0" # DW_AT_name
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x85 # DW_AT_decl_line
> + .long 0x614 # DW_AT_sibling
> + .uleb128 0x8 # (DIE (0x607) DW_TAG_member)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x85 # DW_AT_decl_line
> + .long 0x614 # DW_AT_type
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x5fb
> + .uleb128 0x9 # (DIE (0x614) DW_TAG_array_type)
> + .long 0xf2 # DW_AT_type
> + .long 0x624 # DW_AT_sibling
> + .uleb128 0xa # (DIE (0x61d) DW_TAG_subrange_type)
> + .long 0x5f8 # DW_AT_type
> + .byte 0x1 # DW_AT_upper_bound
> + .byte 0x0 # end of children of DIE 0x614
> + .uleb128 0x7 # (DIE (0x624) DW_TAG_structure_type)
> + .ascii "s_3\0" # DW_AT_name
> + .byte 0x6 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x86 # DW_AT_decl_line
> + .long 0x63d # DW_AT_sibling
> + .uleb128 0x8 # (DIE (0x630) DW_TAG_member)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x86 # DW_AT_decl_line
> + .long 0x63d # DW_AT_type
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x624
> + .uleb128 0x9 # (DIE (0x63d) DW_TAG_array_type)
> + .long 0xf2 # DW_AT_type
> + .long 0x64d # DW_AT_sibling
> + .uleb128 0xa # (DIE (0x646) DW_TAG_subrange_type)
> + .long 0x5f8 # DW_AT_type
> + .byte 0x2 # DW_AT_upper_bound
> + .byte 0x0 # end of children of DIE 0x63d
> + .uleb128 0x7 # (DIE (0x64d) DW_TAG_structure_type)
> + .ascii "s_4\0" # DW_AT_name
> + .byte 0x8 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x87 # DW_AT_decl_line
> + .long 0x666 # DW_AT_sibling
> + .uleb128 0x8 # (DIE (0x659) DW_TAG_member)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x87 # DW_AT_decl_line
> + .long 0x666 # DW_AT_type
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x64d
> + .uleb128 0x9 # (DIE (0x666) DW_TAG_array_type)
> + .long 0xf2 # DW_AT_type
> + .long 0x676 # DW_AT_sibling
> + .uleb128 0xa # (DIE (0x66f) DW_TAG_subrange_type)
> + .long 0x5f8 # DW_AT_type
> + .byte 0x3 # DW_AT_upper_bound
> + .byte 0x0 # end of children of DIE 0x666
> + .uleb128 0x4 # (DIE (0x676) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_struct_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x8b # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x5cf # DW_AT_type
> + .quad .LFB18 # DW_AT_low_pc
> + .quad .LFE18 # DW_AT_high_pc
> + .long .LLST16 # DW_AT_frame_base
> + .long 0x6bd # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x6a4) DW_TAG_formal_parameter)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x8a # DW_AT_decl_line
> + .long 0x5cf # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -34
> + .uleb128 0x6 # (DIE (0x6b0) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x8c # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .byte 0x0 # end of children of DIE 0x676
> + .uleb128 0x4 # (DIE (0x6bd) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_struct_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x96 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x5fb # DW_AT_type
> + .quad .LFB19 # DW_AT_low_pc
> + .quad .LFE19 # DW_AT_high_pc
> + .long .LLST17 # DW_AT_frame_base
> + .long 0x704 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x6eb) DW_TAG_formal_parameter)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x95 # DW_AT_decl_line
> + .long 0x5fb # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -36
> + .uleb128 0x6 # (DIE (0x6f7) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x97 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .byte 0x0 # end of children of DIE 0x6bd
> + .uleb128 0x4 # (DIE (0x704) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_struct_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xa1 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x624 # DW_AT_type
> + .quad .LFB20 # DW_AT_low_pc
> + .quad .LFE20 # DW_AT_high_pc
> + .long .LLST18 # DW_AT_frame_base
> + .long 0x74b # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x732) DW_TAG_formal_parameter)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xa0 # DW_AT_decl_line
> + .long 0x624 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -40
> + .uleb128 0x6 # (DIE (0x73e) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xa2 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .byte 0x0 # end of children of DIE 0x704
> + .uleb128 0x4 # (DIE (0x74b) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "add_struct_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xac # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x64d # DW_AT_type
> + .quad .LFB21 # DW_AT_low_pc
> + .quad .LFE21 # DW_AT_high_pc
> + .long .LLST19 # DW_AT_frame_base
> + .long 0x792 # DW_AT_sibling
> + .uleb128 0x5 # (DIE (0x779) DW_TAG_formal_parameter)
> + .ascii "s\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xab # DW_AT_decl_line
> + .long 0x64d # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -40
> + .uleb128 0x6 # (DIE (0x785) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xad # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .byte 0x0 # end of children of DIE 0x74b
> + .uleb128 0x4 # (DIE (0x792) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_struct_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xb7 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x5cf # DW_AT_type
> + .quad .LFB22 # DW_AT_low_pc
> + .quad .LFE22 # DW_AT_high_pc
> + .long .LLST20 # DW_AT_frame_base
> + .long 0x7da # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0x7c1) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xb8 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .uleb128 0x6 # (DIE (0x7cd) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xb8 # DW_AT_decl_line
> + .long 0x5cf # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -18
> + .byte 0x0 # end of children of DIE 0x792
> + .uleb128 0x4 # (DIE (0x7da) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_struct_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xc0 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x5fb # DW_AT_type
> + .quad .LFB23 # DW_AT_low_pc
> + .quad .LFE23 # DW_AT_high_pc
> + .long .LLST21 # DW_AT_frame_base
> + .long 0x822 # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0x809) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xc1 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .uleb128 0x6 # (DIE (0x815) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xc1 # DW_AT_decl_line
> + .long 0x5fb # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -20
> + .byte 0x0 # end of children of DIE 0x7da
> + .uleb128 0x4 # (DIE (0x822) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_struct_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xc9 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x624 # DW_AT_type
> + .quad .LFB24 # DW_AT_low_pc
> + .quad .LFE24 # DW_AT_high_pc
> + .long .LLST22 # DW_AT_frame_base
> + .long 0x86a # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0x851) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xca # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .uleb128 0x6 # (DIE (0x85d) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xca # DW_AT_decl_line
> + .long 0x624 # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -48
> + .byte 0x0 # end of children of DIE 0x822
> + .uleb128 0x4 # (DIE (0x86a) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_struct_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xd2 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x64d # DW_AT_type
> + .quad .LFB25 # DW_AT_low_pc
> + .quad .LFE25 # DW_AT_high_pc
> + .long .LLST23 # DW_AT_frame_base
> + .long 0x8b2 # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0x899) DW_TAG_variable)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xd3 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x91 # DW_OP_fbreg
> + .sleb128 -20
> + .uleb128 0x6 # (DIE (0x8a5) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xd3 # DW_AT_decl_line
> + .long 0x64d # DW_AT_type
> + .byte 0x2 # DW_AT_location
> + .byte 0x76 # DW_OP_breg6
> + .sleb128 -24
> + .byte 0x0 # end of children of DIE 0x86a
> + .uleb128 0x7 # (DIE (0x8b2) DW_TAG_structure_type)
> + .ascii "f_1\0" # DW_AT_name
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdb # DW_AT_decl_line
> + .long 0x8ec # DW_AT_sibling
> + .uleb128 0xc # (DIE (0x8be) DW_TAG_member)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdb # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_bit_size
> + .byte 0x1f # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x8cd) DW_TAG_member)
> + .ascii "j\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdb # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_bit_size
> + .byte 0x1e # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x8dc) DW_TAG_member)
> + .ascii "k\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdb # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_bit_size
> + .byte 0x1d # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x8b2
> + .uleb128 0x3 # (DIE (0x8ec) DW_TAG_base_type)
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x7 # DW_AT_encoding
> + .ascii "unsigned int\0" # DW_AT_name
> + .uleb128 0x7 # (DIE (0x8fc) DW_TAG_structure_type)
> + .ascii "f_2\0" # DW_AT_name
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdc # DW_AT_decl_line
> + .long 0x936 # DW_AT_sibling
> + .uleb128 0xc # (DIE (0x908) DW_TAG_member)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdc # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x2 # DW_AT_bit_size
> + .byte 0x1e # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x917) DW_TAG_member)
> + .ascii "j\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdc # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x2 # DW_AT_bit_size
> + .byte 0x1c # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x926) DW_TAG_member)
> + .ascii "k\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdc # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x2 # DW_AT_bit_size
> + .byte 0x1a # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x8fc
> + .uleb128 0x7 # (DIE (0x936) DW_TAG_structure_type)
> + .ascii "f_3\0" # DW_AT_name
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdd # DW_AT_decl_line
> + .long 0x970 # DW_AT_sibling
> + .uleb128 0xc # (DIE (0x942) DW_TAG_member)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdd # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x3 # DW_AT_bit_size
> + .byte 0x1d # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x951) DW_TAG_member)
> + .ascii "j\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdd # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x3 # DW_AT_bit_size
> + .byte 0x1a # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x960) DW_TAG_member)
> + .ascii "k\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdd # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x3 # DW_AT_bit_size
> + .byte 0x17 # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x936
> + .uleb128 0x7 # (DIE (0x970) DW_TAG_structure_type)
> + .ascii "f_4\0" # DW_AT_name
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xde # DW_AT_decl_line
> + .long 0x9aa # DW_AT_sibling
> + .uleb128 0xc # (DIE (0x97c) DW_TAG_member)
> + .ascii "i\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xde # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x4 # DW_AT_bit_size
> + .byte 0x1c # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x98b) DW_TAG_member)
> + .ascii "j\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xde # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x4 # DW_AT_bit_size
> + .byte 0x18 # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .uleb128 0xc # (DIE (0x99a) DW_TAG_member)
> + .ascii "k\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xde # DW_AT_decl_line
> + .long 0x8ec # DW_AT_type
> + .byte 0x4 # DW_AT_byte_size
> + .byte 0x4 # DW_AT_bit_size
> + .byte 0x14 # DW_AT_bit_offset
> + .byte 0x2 # DW_AT_data_member_location
> + .byte 0x23 # DW_OP_plus_uconst
> + .uleb128 0x0
> + .byte 0x0 # end of children of DIE 0x970
> + .uleb128 0x4 # (DIE (0x9aa) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_field_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xe2 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x8b2 # DW_AT_type
> + .quad .LFB26 # DW_AT_low_pc
> + .quad .LFE26 # DW_AT_high_pc
> + .long .LLST24 # DW_AT_frame_base
> + .long 0x9e4 # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0x9d8) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xe3 # DW_AT_decl_line
> + .long 0x8b2 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .byte 0x0 # end of children of DIE 0x9aa
> + .uleb128 0x4 # (DIE (0x9e4) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_field_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xe9 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x8fc # DW_AT_type
> + .quad .LFB27 # DW_AT_low_pc
> + .quad .LFE27 # DW_AT_high_pc
> + .long .LLST25 # DW_AT_frame_base
> + .long 0xa1e # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0xa12) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xea # DW_AT_decl_line
> + .long 0x8fc # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .byte 0x0 # end of children of DIE 0x9e4
> + .uleb128 0x4 # (DIE (0xa1e) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_field_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xf0 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x936 # DW_AT_type
> + .quad .LFB28 # DW_AT_low_pc
> + .quad .LFE28 # DW_AT_high_pc
> + .long .LLST26 # DW_AT_frame_base
> + .long 0xa58 # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0xa4c) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xf1 # DW_AT_decl_line
> + .long 0x936 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .byte 0x0 # end of children of DIE 0xa1e
> + .uleb128 0x4 # (DIE (0xa58) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "wack_field_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xf7 # DW_AT_decl_line
> + .byte 0x1 # DW_AT_prototyped
> + .long 0x970 # DW_AT_type
> + .quad .LFB29 # DW_AT_low_pc
> + .quad .LFE29 # DW_AT_high_pc
> + .long .LLST27 # DW_AT_frame_base
> + .long 0xa92 # DW_AT_sibling
> + .uleb128 0x6 # (DIE (0xa86) DW_TAG_variable)
> + .ascii "u\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xf8 # DW_AT_decl_line
> + .long 0x970 # DW_AT_type
> + .byte 0x1 # DW_AT_location
> + .byte 0x50 # DW_OP_reg0
> + .byte 0x0 # end of children of DIE 0xa58
> + .uleb128 0xd # (DIE (0xa92) DW_TAG_subprogram)
> + .byte 0x1 # DW_AT_external
> + .ascii "main\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .value 0x100 # DW_AT_decl_line
> + .long 0x13f # DW_AT_type
> + .quad .LFB30 # DW_AT_low_pc
> + .quad .LFE30 # DW_AT_high_pc
> + .long .LLST28 # DW_AT_frame_base
> + .uleb128 0xe # (DIE (0xab4) DW_TAG_variable)
> + .ascii "z_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x84 # DW_AT_decl_line
> + .long 0x5cf # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad z_1
> + .uleb128 0xe # (DIE (0xaca) DW_TAG_variable)
> + .ascii "s_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x84 # DW_AT_decl_line
> + .long 0x5cf # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad s_1
> + .uleb128 0xe # (DIE (0xae0) DW_TAG_variable)
> + .ascii "z_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x85 # DW_AT_decl_line
> + .long 0x5fb # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad z_2
> + .uleb128 0xe # (DIE (0xaf6) DW_TAG_variable)
> + .ascii "s_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x85 # DW_AT_decl_line
> + .long 0x5fb # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad s_2
> + .uleb128 0xe # (DIE (0xb0c) DW_TAG_variable)
> + .ascii "z_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x86 # DW_AT_decl_line
> + .long 0x624 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad z_3
> + .uleb128 0xe # (DIE (0xb22) DW_TAG_variable)
> + .ascii "s_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x86 # DW_AT_decl_line
> + .long 0x624 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad s_3
> + .uleb128 0xe # (DIE (0xb38) DW_TAG_variable)
> + .ascii "z_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x87 # DW_AT_decl_line
> + .long 0x64d # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad z_4
> + .uleb128 0xe # (DIE (0xb4e) DW_TAG_variable)
> + .ascii "s_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0x87 # DW_AT_decl_line
> + .long 0x64d # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad s_4
> + .uleb128 0xe # (DIE (0xb64) DW_TAG_variable)
> + .ascii "f_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdb # DW_AT_decl_line
> + .long 0x8b2 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad f_1
> + .uleb128 0xe # (DIE (0xb7a) DW_TAG_variable)
> + .ascii "F_1\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdb # DW_AT_decl_line
> + .long 0x8b2 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad F_1
> + .uleb128 0xe # (DIE (0xb90) DW_TAG_variable)
> + .ascii "f_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdc # DW_AT_decl_line
> + .long 0x8fc # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad f_2
> + .uleb128 0xe # (DIE (0xba6) DW_TAG_variable)
> + .ascii "F_2\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdc # DW_AT_decl_line
> + .long 0x8fc # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad F_2
> + .uleb128 0xe # (DIE (0xbbc) DW_TAG_variable)
> + .ascii "f_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdd # DW_AT_decl_line
> + .long 0x936 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad f_3
> + .uleb128 0xe # (DIE (0xbd2) DW_TAG_variable)
> + .ascii "F_3\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xdd # DW_AT_decl_line
> + .long 0x936 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad F_3
> + .uleb128 0xe # (DIE (0xbe8) DW_TAG_variable)
> + .ascii "f_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xde # DW_AT_decl_line
> + .long 0x970 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad f_4
> + .uleb128 0xe # (DIE (0xbfe) DW_TAG_variable)
> + .ascii "F_4\0" # DW_AT_name
> + .byte 0x1 # DW_AT_decl_file (store.c)
> + .byte 0xde # DW_AT_decl_line
> + .long 0x970 # DW_AT_type
> + .byte 0x1 # DW_AT_external
> + .byte 0x9 # DW_AT_location
> + .byte 0x3 # DW_OP_addr
> + .quad F_4
> + .byte 0x0 # end of children of DIE 0xb
> + .section .debug_abbrev
> + .uleb128 0x1 # (abbrev code)
> + .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
> + .byte 0x1 # DW_children_yes
> + .uleb128 0x25 # (DW_AT_producer)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x13 # (DW_AT_language)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x1b # (DW_AT_comp_dir)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x11 # (DW_AT_low_pc)
> + .uleb128 0x1 # (DW_FORM_addr)
> + .uleb128 0x12 # (DW_AT_high_pc)
> + .uleb128 0x1 # (DW_FORM_addr)
> + .uleb128 0x10 # (DW_AT_stmt_list)
> + .uleb128 0x6 # (DW_FORM_data4)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x2 # (abbrev code)
> + .uleb128 0x16 # (TAG: DW_TAG_typedef)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x3 # (abbrev code)
> + .uleb128 0x24 # (TAG: DW_TAG_base_type)
> + .byte 0x0 # DW_children_no
> + .uleb128 0xb # (DW_AT_byte_size)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3e # (DW_AT_encoding)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x4 # (abbrev code)
> + .uleb128 0x2e # (TAG: DW_TAG_subprogram)
> + .byte 0x1 # DW_children_yes
> + .uleb128 0x3f # (DW_AT_external)
> + .uleb128 0xc # (DW_FORM_flag)
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x27 # (DW_AT_prototyped)
> + .uleb128 0xc # (DW_FORM_flag)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x11 # (DW_AT_low_pc)
> + .uleb128 0x1 # (DW_FORM_addr)
> + .uleb128 0x12 # (DW_AT_high_pc)
> + .uleb128 0x1 # (DW_FORM_addr)
> + .uleb128 0x40 # (DW_AT_frame_base)
> + .uleb128 0x6 # (DW_FORM_data4)
> + .uleb128 0x1 # (DW_AT_sibling)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x5 # (abbrev code)
> + .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x2 # (DW_AT_location)
> + .uleb128 0xa # (DW_FORM_block1)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x6 # (abbrev code)
> + .uleb128 0x34 # (TAG: DW_TAG_variable)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x2 # (DW_AT_location)
> + .uleb128 0xa # (DW_FORM_block1)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x7 # (abbrev code)
> + .uleb128 0x13 # (TAG: DW_TAG_structure_type)
> + .byte 0x1 # DW_children_yes
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0xb # (DW_AT_byte_size)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x1 # (DW_AT_sibling)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x8 # (abbrev code)
> + .uleb128 0xd # (TAG: DW_TAG_member)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x38 # (DW_AT_data_member_location)
> + .uleb128 0xa # (DW_FORM_block1)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0x9 # (abbrev code)
> + .uleb128 0x1 # (TAG: DW_TAG_array_type)
> + .byte 0x1 # DW_children_yes
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x1 # (DW_AT_sibling)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0xa # (abbrev code)
> + .uleb128 0x21 # (TAG: DW_TAG_subrange_type)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x2f # (DW_AT_upper_bound)
> + .uleb128 0xb # (DW_FORM_data1)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0xb # (abbrev code)
> + .uleb128 0x24 # (TAG: DW_TAG_base_type)
> + .byte 0x0 # DW_children_no
> + .uleb128 0xb # (DW_AT_byte_size)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3e # (DW_AT_encoding)
> + .uleb128 0xb # (DW_FORM_data1)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0xc # (abbrev code)
> + .uleb128 0xd # (TAG: DW_TAG_member)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0xb # (DW_AT_byte_size)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0xd # (DW_AT_bit_size)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0xc # (DW_AT_bit_offset)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x38 # (DW_AT_data_member_location)
> + .uleb128 0xa # (DW_FORM_block1)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0xd # (abbrev code)
> + .uleb128 0x2e # (TAG: DW_TAG_subprogram)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3f # (DW_AT_external)
> + .uleb128 0xc # (DW_FORM_flag)
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0x5 # (DW_FORM_data2)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x11 # (DW_AT_low_pc)
> + .uleb128 0x1 # (DW_FORM_addr)
> + .uleb128 0x12 # (DW_AT_high_pc)
> + .uleb128 0x1 # (DW_FORM_addr)
> + .uleb128 0x40 # (DW_AT_frame_base)
> + .uleb128 0x6 # (DW_FORM_data4)
> + .byte 0x0
> + .byte 0x0
> + .uleb128 0xe # (abbrev code)
> + .uleb128 0x34 # (TAG: DW_TAG_variable)
> + .byte 0x0 # DW_children_no
> + .uleb128 0x3 # (DW_AT_name)
> + .uleb128 0x8 # (DW_FORM_string)
> + .uleb128 0x3a # (DW_AT_decl_file)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x3b # (DW_AT_decl_line)
> + .uleb128 0xb # (DW_FORM_data1)
> + .uleb128 0x49 # (DW_AT_type)
> + .uleb128 0x13 # (DW_FORM_ref4)
> + .uleb128 0x3f # (DW_AT_external)
> + .uleb128 0xc # (DW_FORM_flag)
> + .uleb128 0x2 # (DW_AT_location)
> + .uleb128 0xa # (DW_FORM_block1)
> + .byte 0x0
> + .byte 0x0
> + .byte 0x0
> + .section .debug_pubnames,"",@progbits
> + .long 0x259 # Length of Public Names Info
> + .value 0x2 # DWARF Version
> + .long .Ldebug_info0 # Offset of Compilation Unit Info
> + .long 0xc15 # Compilation Unit Length
> + .long 0x6c # DIE offset
> + .ascii "add_charest\0" # external name
> + .long 0xb0 # DIE offset
> + .ascii "add_short\0" # external name
> + .long 0xff # DIE offset
> + .ascii "add_int\0" # external name
> + .long 0x146 # DIE offset
> + .ascii "add_long\0" # external name
> + .long 0x1b3 # DIE offset
> + .ascii "add_longest\0" # external name
> + .long 0x1f7 # DIE offset
> + .ascii "add_float\0" # external name
> + .long 0x242 # DIE offset
> + .ascii "add_double\0" # external name
> + .long 0x2ae # DIE offset
> + .ascii "add_doublest\0" # external name
> + .long 0x2f5 # DIE offset
> + .ascii "wack_charest\0" # external name
> + .long 0x351 # DIE offset
> + .ascii "wack_short\0" # external name
> + .long 0x3ab # DIE offset
> + .ascii "wack_int\0" # external name
> + .long 0x403 # DIE offset
> + .ascii "wack_long\0" # external name
> + .long 0x45c # DIE offset
> + .ascii "wack_longest\0" # external name
> + .long 0x4b8 # DIE offset
> + .ascii "wack_float\0" # external name
> + .long 0x513 # DIE offset
> + .ascii "wack_double\0" # external name
> + .long 0x56f # DIE offset
> + .ascii "wack_doublest\0" # external name
> + .long 0x676 # DIE offset
> + .ascii "add_struct_1\0" # external name
> + .long 0x6bd # DIE offset
> + .ascii "add_struct_2\0" # external name
> + .long 0x704 # DIE offset
> + .ascii "add_struct_3\0" # external name
> + .long 0x74b # DIE offset
> + .ascii "add_struct_4\0" # external name
> + .long 0x792 # DIE offset
> + .ascii "wack_struct_1\0" # external name
> + .long 0x7da # DIE offset
> + .ascii "wack_struct_2\0" # external name
> + .long 0x822 # DIE offset
> + .ascii "wack_struct_3\0" # external name
> + .long 0x86a # DIE offset
> + .ascii "wack_struct_4\0" # external name
> + .long 0x9aa # DIE offset
> + .ascii "wack_field_1\0" # external name
> + .long 0x9e4 # DIE offset
> + .ascii "wack_field_2\0" # external name
> + .long 0xa1e # DIE offset
> + .ascii "wack_field_3\0" # external name
> + .long 0xa58 # DIE offset
> + .ascii "wack_field_4\0" # external name
> + .long 0xa92 # DIE offset
> + .ascii "main\0" # external name
> + .long 0xab4 # DIE offset
> + .ascii "z_1\0" # external name
> + .long 0xaca # DIE offset
> + .ascii "s_1\0" # external name
> + .long 0xae0 # DIE offset
> + .ascii "z_2\0" # external name
> + .long 0xaf6 # DIE offset
> + .ascii "s_2\0" # external name
> + .long 0xb0c # DIE offset
> + .ascii "z_3\0" # external name
> + .long 0xb22 # DIE offset
> + .ascii "s_3\0" # external name
> + .long 0xb38 # DIE offset
> + .ascii "z_4\0" # external name
> + .long 0xb4e # DIE offset
> + .ascii "s_4\0" # external name
> + .long 0xb64 # DIE offset
> + .ascii "f_1\0" # external name
> + .long 0xb7a # DIE offset
> + .ascii "F_1\0" # external name
> + .long 0xb90 # DIE offset
> + .ascii "f_2\0" # external name
> + .long 0xba6 # DIE offset
> + .ascii "F_2\0" # external name
> + .long 0xbbc # DIE offset
> + .ascii "f_3\0" # external name
> + .long 0xbd2 # DIE offset
> + .ascii "F_3\0" # external name
> + .long 0xbe8 # DIE offset
> + .ascii "f_4\0" # external name
> + .long 0xbfe # DIE offset
> + .ascii "F_4\0" # external name
> + .long 0x0
> + .section .debug_aranges,"",@progbits
> + .long 0x2c # Length of Address Ranges Info
> + .value 0x2 # DWARF Version
> + .long .Ldebug_info0 # Offset of Compilation Unit Info
> + .byte 0x8 # Size of Address
> + .byte 0x0 # Size of Segment Descriptor
> + .value 0x0 # Pad to 16 byte boundary
> + .value 0x0
> + .quad .Ltext0 # Address
> + .quad .Letext0-.Ltext0 # Length
> + .quad 0x0
> + .quad 0x0
> + .ident "GCC: (GNU) 4.2.1 (SUSE Linux)"
> + .section .note.GNU-stack,"",@progbits
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
2019-08-29 18:07 ` Andrew Burgess
@ 2019-09-02 11:00 ` Tom de Vries
2019-09-02 18:20 ` Andrew Burgess
0 siblings, 1 reply; 6+ messages in thread
From: Tom de Vries @ 2019-09-02 11:00 UTC (permalink / raw)
To: Andrew Burgess; +Cc: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 2931 bytes --]
[ was: Re: [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test ]
On 29-08-19 20:07, Andrew Burgess wrote:
> * Tom de Vries <tdevries@suse.de> [2019-08-29 19:47:12 +0200]:
>
>> Hi,
>>
>> The test-case gdb.base/store.exp fails with gcc 7.4.0:
>> ...
>> nr of unexpected failures 27
>> ...
>> and with gcc 4.8.5:
>> ...
>> nr of unexpected failures 9
>> ...
>>
>> The test-case relies on "the compiler taking heed of requests for values to be
>> stored in registers", which appearantly isn't the case anymore for
>> modern gcc.
>
> Could you expand on this a little more. I took a quick look and it
> appears more that variables just have missing location information.
You're right, I jumped to a conclusion here, sorry for not being more
careful.
> Sure the test marks the variables with the 'register' keyword, but
> surely GDB should still pass the test even if the variable is placed
> on the stack?
>
Agreed (and indeed, not obeing the 'register' hint, emulated by "#define
register" makes the test pass).
>>
>> Fix this by changing this into an assembly file test-case, and generating the
>> assembly file using gcc 4.2.1.
>>
>> Tested on x86_64-linux.
>>
>> OK for trunk?
>
> No. What about architectures other than x86-64?
>
> I took a quick look, and maybe I missed something, but I don't think
> that there are any architecture specific assembler tests in gdb.base/
> and I don't think we should be adding any.
>
> Maybe we should add a version of this test into gdb.arch along with
> the assembler file for x86-64.
>
> On a slightly different note, I've run into this test before, and I'm
> pretty sure that the test is broken, it's been a while since I dug
> into this but consider these snippets:
>
> ...
>
> float
> add_float (register float u, register float v)
> {
> return u + v;
> }
>
> ...
>
> wack_float (register float u, register float v)
> {
> register float l = u, r = v;
> l = add_float (l, r);
> return l + r;
> }
>
> ...
>
> Part of the test involves breaking on 'add_float' then going 'up' to
> 'wack_float' and printing 'l'. GDB expects an answer.
>
> My problem with this is that on many architectures, even at
> optimisation level 0 'l' is dead, or at least non-recoverable at the
> point of the call to add_float due to being placed in a caller saved
> argument register.
>
I've investigated the FAILs related to the wack_float function, and the
test-case expects to access and modify l, but it can't because there's
no DW_AT_location for l, which AFAIU is valid behaviour of gcc for a
register variable at -O0.
So, ISTM the FAILs need to be fixed by marking the failing tests as
unsupported, in case l shows up as <optimized out>.
> Anyway, I agree with you that this test is in need of some clean up,
> I'm just not convinced on this approach yet.
>
Better like this?
Thanks,
- Tom
[-- Attachment #2: 0001-gdb-testsuite-Allow-some-tests-in-gdb.base-store.exp-to-be-unsupported.patch --]
[-- Type: text/x-patch, Size: 4854 bytes --]
[gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
The test-case gdb.base/store.exp fails with gcc 7.4.0:
...
nr of unexpected failures 27
...
The first FAIL:
...
110 l = add_float (l, r);
(gdb) PASS: gdb.base/store.exp: continue to wack_float
print l
$21 = <optimized out>
FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
...
relates to this bit in the test-case (compiled at -O0):
...
106 float
107 wack_float (register float u, register float v)
108 {
109 register float l = u, r = v;
110 l = add_float (l, r);
111 return l + r;
112 }
...
and it expects to be able to read and modify variable l before executing line
110, but it already fails to read the value, because l has no DW_AT_location
attribute in the debug info.
Variable l is declared with the register keyword, and GCC implements the
register keyword at -O0 like so:
...
the compiler allocates distinct stack memory for all variables that do not
have the register storage-class specifier; if register is specified, the
variable may have a shorter lifespan than the code would indicate and may
never be placed in memory.
...
The fact that l has no DW_AT_location attribute, matches with the documented
"variable may have a shorter lifespan that code would indicate", (though it
is the most extreme case of it) so the gcc behaviour is valid. We can of
course improve gcc to generate better debuginfo (filed gcc PR91611), but
this not a wrong-debug problem.
[ The test-case passes with gcc 4.2.1, but for the failing test discussed
above, it passes simply because it doesn't store l in a register. ]
With the debug info missing for l, reading and setting l is unsupported, so
fix the FAIL by marking the test UNSUPPORTED instead.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-08-29 Tom de Vries <tdevries@suse.de>
* gdb.base/store.exp: Allow register variables to be optimized out at
-O0.
---
gdb/testsuite/gdb.base/store.exp | 65 +++++++++++++++++++++++++++-------------
1 file changed, 45 insertions(+), 20 deletions(-)
diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
index c5a7584101..9c19ce15a7 100644
--- a/gdb/testsuite/gdb.base/store.exp
+++ b/gdb/testsuite/gdb.base/store.exp
@@ -55,18 +55,29 @@ proc check_set { t l r new add } {
}
}
- gdb_test "print l" " = ${l}" \
- "${prefix}; print old l, expecting ${l}"
- gdb_test "print r" " = ${r}" \
- "${prefix}; print old r, expecting ${r}"
- gdb_test_no_output "set variable l = 4" \
- "${prefix}; setting l to 4"
- gdb_test "print l" " = ${new}" \
- "${prefix}; print new l, expecting ${new}"
- gdb_test "next" "return l \\+ r;" \
- "${prefix}; next over add call"
- gdb_test "print l" " = ${add}" \
- "${prefix}; print incremented l, expecting ${add}"
+ set supported 1
+ set test "${prefix}; print old l, expecting ${l}"
+ gdb_test_multiple "print l" "$test" {
+ -re " = <optimized out>\r\n$gdb_prompt $" {
+ unsupported $test
+ set supported 0
+ }
+ -re " = ${l}\r\n$gdb_prompt $" {
+ pass $test
+ }
+ }
+ if { $supported } {
+ gdb_test "print r" " = ${r}" \
+ "${prefix}; print old r, expecting ${r}"
+ gdb_test_no_output "set variable l = 4" \
+ "${prefix}; setting l to 4"
+ gdb_test "print l" " = ${new}" \
+ "${prefix}; print new l, expecting ${new}"
+ gdb_test "next" "return l \\+ r;" \
+ "${prefix}; next over add call"
+ gdb_test "print l" " = ${add}" \
+ "${prefix}; print incremented l, expecting ${add}"
+ }
}
check_set "charest" "-1 .*" "-2 .*" "4 ..004." "2 ..002."
@@ -81,20 +92,34 @@ check_set "doublest" "-1" "-2" "4" "2"
#
proc up_set { t l r new } {
+ global gdb_prompt
+
set prefix "upvar ${t} l"
gdb_test "tbreak add_${t}"
gdb_test "continue" "return u . v;" \
"continue to add_${t}"
gdb_test "up" "l = add_${t} .l, r.;" \
"${prefix}; up"
- gdb_test "print l" " = ${l}" \
- "${prefix}; print old l, expecting ${l}"
- gdb_test "print r" " = ${r}" \
- "${prefix}; print old r, expecting ${r}"
- gdb_test_no_output "set variable l = 4" \
- "${prefix}; set l to 4"
- gdb_test "print l" " = ${new}" \
- "${prefix}; print new l, expecting ${new}"
+
+ set supported 1
+ set test "${prefix}; print old l, expecting ${l}"
+ gdb_test_multiple "print l" "$test" {
+ -re " = <optimized out>\r\n$gdb_prompt $" {
+ unsupported $test
+ set supported 0
+ }
+ -re " = ${l}\r\n$gdb_prompt $" {
+ pass $test
+ }
+ }
+ if { $supported } {
+ gdb_test "print r" " = ${r}" \
+ "${prefix}; print old r, expecting ${r}"
+ gdb_test_no_output "set variable l = 4" \
+ "${prefix}; set l to 4"
+ gdb_test "print l" " = ${new}" \
+ "${prefix}; print new l, expecting ${new}"
+ }
}
up_set "charest" "-1 .*" "-2 .*" "4 ..004."
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
2019-09-02 11:00 ` [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported Tom de Vries
@ 2019-09-02 18:20 ` Andrew Burgess
2019-09-03 13:13 ` Tom de Vries
0 siblings, 1 reply; 6+ messages in thread
From: Andrew Burgess @ 2019-09-02 18:20 UTC (permalink / raw)
To: Tom de Vries; +Cc: gdb-patches
* Tom de Vries <tdevries@suse.de> [2019-09-02 13:00:21 +0200]:
> [ was: Re: [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test ]
>
> On 29-08-19 20:07, Andrew Burgess wrote:
> > * Tom de Vries <tdevries@suse.de> [2019-08-29 19:47:12 +0200]:
> >
> >> Hi,
> >>
> >> The test-case gdb.base/store.exp fails with gcc 7.4.0:
> >> ...
> >> nr of unexpected failures 27
> >> ...
> >> and with gcc 4.8.5:
> >> ...
> >> nr of unexpected failures 9
> >> ...
> >>
> >> The test-case relies on "the compiler taking heed of requests for values to be
> >> stored in registers", which appearantly isn't the case anymore for
> >> modern gcc.
> >
> > Could you expand on this a little more. I took a quick look and it
> > appears more that variables just have missing location information.
>
> You're right, I jumped to a conclusion here, sorry for not being more
> careful.
>
> > Sure the test marks the variables with the 'register' keyword, but
> > surely GDB should still pass the test even if the variable is placed
> > on the stack?
> >
>
> Agreed (and indeed, not obeing the 'register' hint, emulated by "#define
> register" makes the test pass).
>
> >>
> >> Fix this by changing this into an assembly file test-case, and generating the
> >> assembly file using gcc 4.2.1.
> >>
> >> Tested on x86_64-linux.
> >>
> >> OK for trunk?
> >
> > No. What about architectures other than x86-64?
> >
> > I took a quick look, and maybe I missed something, but I don't think
> > that there are any architecture specific assembler tests in gdb.base/
> > and I don't think we should be adding any.
> >
> > Maybe we should add a version of this test into gdb.arch along with
> > the assembler file for x86-64.
> >
> > On a slightly different note, I've run into this test before, and I'm
> > pretty sure that the test is broken, it's been a while since I dug
> > into this but consider these snippets:
> >
> > ...
> >
> > float
> > add_float (register float u, register float v)
> > {
> > return u + v;
> > }
> >
> > ...
> >
> > wack_float (register float u, register float v)
> > {
> > register float l = u, r = v;
> > l = add_float (l, r);
> > return l + r;
> > }
> >
> > ...
> >
> > Part of the test involves breaking on 'add_float' then going 'up' to
> > 'wack_float' and printing 'l'. GDB expects an answer.
> >
> > My problem with this is that on many architectures, even at
> > optimisation level 0 'l' is dead, or at least non-recoverable at the
> > point of the call to add_float due to being placed in a caller saved
> > argument register.
> >
>
> I've investigated the FAILs related to the wack_float function, and the
> test-case expects to access and modify l, but it can't because there's
> no DW_AT_location for l, which AFAIU is valid behaviour of gcc for a
> register variable at -O0.
I don't understand why this should be the case. DWARF is perfectly
able to describe the location of something in a register, so why would
it be valid for GCC to skip emitting location information for
something just because it's in a register?
>
> So, ISTM the FAILs need to be fixed by marking the failing tests as
> unsupported, in case l shows up as <optimized out>.
I guess unsupported, but maybe KFAIL with an associated GCC bug would
be better?
Consider this GDB session to explain my thinking:
(gdb) break wack_float
Breakpoint 1 at 0x4005c8: file /path/to/gdb/src/gdb/testsuite/gdb.base/store.c, line 109.
(gdb) r
Starting program: /path/to/gdb/build/gdb/testsuite/outputs/gdb.base/store/store
Breakpoint 1, wack_float (u=-1, v=-2) at /path/to/gdb/src/gdb/testsuite/gdb.base/store.c:109
109 register float l = u, r = v;
(gdb) n
110 l = add_float (l, r);
(gdb) p u
$1 = -1
(gdb) p l
$2 = <optimized out>
(gdb)
We know where 'u' is, as I see it there's no reason why GCC couldn't
emit location information for 'l' that is identical to that for 'u'.
[ OK, if we're going to be supper picky then GCC could declare 'u'
dead after line 109 and then have only 'l' exist after that, but at
-O0 I'd probably hope that both 'u' and 'l' would remain alive for
the entire life of the function. ]
Thanks,
Andrew
>
> > Anyway, I agree with you that this test is in need of some clean up,
> > I'm just not convinced on this approach yet.
> >
>
> Better like this?
>
> Thanks,
> - Tom
> [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
>
> The test-case gdb.base/store.exp fails with gcc 7.4.0:
> ...
> nr of unexpected failures 27
> ...
>
> The first FAIL:
> ...
> 110 l = add_float (l, r);
> (gdb) PASS: gdb.base/store.exp: continue to wack_float
> print l
> $21 = <optimized out>
> FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
> ...
> relates to this bit in the test-case (compiled at -O0):
> ...
> 106 float
> 107 wack_float (register float u, register float v)
> 108 {
> 109 register float l = u, r = v;
> 110 l = add_float (l, r);
> 111 return l + r;
> 112 }
> ...
> and it expects to be able to read and modify variable l before executing line
> 110, but it already fails to read the value, because l has no DW_AT_location
> attribute in the debug info.
>
> Variable l is declared with the register keyword, and GCC implements the
> register keyword at -O0 like so:
> ...
> the compiler allocates distinct stack memory for all variables that do not
> have the register storage-class specifier; if register is specified, the
> variable may have a shorter lifespan than the code would indicate and may
> never be placed in memory.
> ...
>
> The fact that l has no DW_AT_location attribute, matches with the documented
> "variable may have a shorter lifespan that code would indicate", (though it
> is the most extreme case of it) so the gcc behaviour is valid. We can of
> course improve gcc to generate better debuginfo (filed gcc PR91611), but
> this not a wrong-debug problem.
>
> [ The test-case passes with gcc 4.2.1, but for the failing test discussed
> above, it passes simply because it doesn't store l in a register. ]
>
> With the debug info missing for l, reading and setting l is unsupported, so
> fix the FAIL by marking the test UNSUPPORTED instead.
>
> Tested on x86_64-linux.
>
> gdb/testsuite/ChangeLog:
>
> 2019-08-29 Tom de Vries <tdevries@suse.de>
>
> * gdb.base/store.exp: Allow register variables to be optimized out at
> -O0.
>
> ---
> gdb/testsuite/gdb.base/store.exp | 65 +++++++++++++++++++++++++++-------------
> 1 file changed, 45 insertions(+), 20 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
> index c5a7584101..9c19ce15a7 100644
> --- a/gdb/testsuite/gdb.base/store.exp
> +++ b/gdb/testsuite/gdb.base/store.exp
> @@ -55,18 +55,29 @@ proc check_set { t l r new add } {
> }
> }
>
> - gdb_test "print l" " = ${l}" \
> - "${prefix}; print old l, expecting ${l}"
> - gdb_test "print r" " = ${r}" \
> - "${prefix}; print old r, expecting ${r}"
> - gdb_test_no_output "set variable l = 4" \
> - "${prefix}; setting l to 4"
> - gdb_test "print l" " = ${new}" \
> - "${prefix}; print new l, expecting ${new}"
> - gdb_test "next" "return l \\+ r;" \
> - "${prefix}; next over add call"
> - gdb_test "print l" " = ${add}" \
> - "${prefix}; print incremented l, expecting ${add}"
> + set supported 1
> + set test "${prefix}; print old l, expecting ${l}"
> + gdb_test_multiple "print l" "$test" {
> + -re " = <optimized out>\r\n$gdb_prompt $" {
> + unsupported $test
> + set supported 0
> + }
> + -re " = ${l}\r\n$gdb_prompt $" {
> + pass $test
> + }
> + }
> + if { $supported } {
> + gdb_test "print r" " = ${r}" \
> + "${prefix}; print old r, expecting ${r}"
> + gdb_test_no_output "set variable l = 4" \
> + "${prefix}; setting l to 4"
> + gdb_test "print l" " = ${new}" \
> + "${prefix}; print new l, expecting ${new}"
> + gdb_test "next" "return l \\+ r;" \
> + "${prefix}; next over add call"
> + gdb_test "print l" " = ${add}" \
> + "${prefix}; print incremented l, expecting ${add}"
> + }
> }
>
> check_set "charest" "-1 .*" "-2 .*" "4 ..004." "2 ..002."
> @@ -81,20 +92,34 @@ check_set "doublest" "-1" "-2" "4" "2"
> #
>
> proc up_set { t l r new } {
> + global gdb_prompt
> +
> set prefix "upvar ${t} l"
> gdb_test "tbreak add_${t}"
> gdb_test "continue" "return u . v;" \
> "continue to add_${t}"
> gdb_test "up" "l = add_${t} .l, r.;" \
> "${prefix}; up"
> - gdb_test "print l" " = ${l}" \
> - "${prefix}; print old l, expecting ${l}"
> - gdb_test "print r" " = ${r}" \
> - "${prefix}; print old r, expecting ${r}"
> - gdb_test_no_output "set variable l = 4" \
> - "${prefix}; set l to 4"
> - gdb_test "print l" " = ${new}" \
> - "${prefix}; print new l, expecting ${new}"
> +
> + set supported 1
> + set test "${prefix}; print old l, expecting ${l}"
> + gdb_test_multiple "print l" "$test" {
> + -re " = <optimized out>\r\n$gdb_prompt $" {
> + unsupported $test
> + set supported 0
> + }
> + -re " = ${l}\r\n$gdb_prompt $" {
> + pass $test
> + }
> + }
> + if { $supported } {
> + gdb_test "print r" " = ${r}" \
> + "${prefix}; print old r, expecting ${r}"
> + gdb_test_no_output "set variable l = 4" \
> + "${prefix}; set l to 4"
> + gdb_test "print l" " = ${new}" \
> + "${prefix}; print new l, expecting ${new}"
> + }
> }
>
> up_set "charest" "-1 .*" "-2 .*" "4 ..004."
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
2019-09-02 18:20 ` Andrew Burgess
@ 2019-09-03 13:13 ` Tom de Vries
2019-09-12 19:43 ` Andrew Burgess
0 siblings, 1 reply; 6+ messages in thread
From: Tom de Vries @ 2019-09-03 13:13 UTC (permalink / raw)
To: Andrew Burgess; +Cc: gdb-patches
On 02-09-19 20:20, Andrew Burgess wrote:
> * Tom de Vries <tdevries@suse.de> [2019-09-02 13:00:21 +0200]:
>
>> [ was: Re: [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test ]
>>
>> On 29-08-19 20:07, Andrew Burgess wrote:
>>> * Tom de Vries <tdevries@suse.de> [2019-08-29 19:47:12 +0200]:
>>>
>>>> Hi,
>>>>
>>>> The test-case gdb.base/store.exp fails with gcc 7.4.0:
>>>> ...
>>>> nr of unexpected failures 27
>>>> ...
>>>> and with gcc 4.8.5:
>>>> ...
>>>> nr of unexpected failures 9
>>>> ...
>>>>
>>>> The test-case relies on "the compiler taking heed of requests for values to be
>>>> stored in registers", which appearantly isn't the case anymore for
>>>> modern gcc.
>>>
>>> Could you expand on this a little more. I took a quick look and it
>>> appears more that variables just have missing location information.
>>
>> You're right, I jumped to a conclusion here, sorry for not being more
>> careful.
>>
>>> Sure the test marks the variables with the 'register' keyword, but
>>> surely GDB should still pass the test even if the variable is placed
>>> on the stack?
>>>
>>
>> Agreed (and indeed, not obeing the 'register' hint, emulated by "#define
>> register" makes the test pass).
>>
>>>>
>>>> Fix this by changing this into an assembly file test-case, and generating the
>>>> assembly file using gcc 4.2.1.
>>>>
>>>> Tested on x86_64-linux.
>>>>
>>>> OK for trunk?
>>>
>>> No. What about architectures other than x86-64?
>>>
>>> I took a quick look, and maybe I missed something, but I don't think
>>> that there are any architecture specific assembler tests in gdb.base/
>>> and I don't think we should be adding any.
>>>
>>> Maybe we should add a version of this test into gdb.arch along with
>>> the assembler file for x86-64.
>>>
>>> On a slightly different note, I've run into this test before, and I'm
>>> pretty sure that the test is broken, it's been a while since I dug
>>> into this but consider these snippets:
>>>
>>> ...
>>>
>>> float
>>> add_float (register float u, register float v)
>>> {
>>> return u + v;
>>> }
>>>
>>> ...
>>>
>>> wack_float (register float u, register float v)
>>> {
>>> register float l = u, r = v;
>>> l = add_float (l, r);
>>> return l + r;
>>> }
>>>
>>> ...
>>>
>>> Part of the test involves breaking on 'add_float' then going 'up' to
>>> 'wack_float' and printing 'l'. GDB expects an answer.
>>>
>>> My problem with this is that on many architectures, even at
>>> optimisation level 0 'l' is dead, or at least non-recoverable at the
>>> point of the call to add_float due to being placed in a caller saved
>>> argument register.
>>>
>>
>> I've investigated the FAILs related to the wack_float function, and the
>> test-case expects to access and modify l, but it can't because there's
>> no DW_AT_location for l, which AFAIU is valid behaviour of gcc for a
>> register variable at -O0.
>
> I don't understand why this should be the case. DWARF is perfectly
> able to describe the location of something in a register, so why would
> it be valid for GCC to skip emitting location information for
> something just because it's in a register?
>
My reasoning is as follows:
At -O0, gcc generates accurate debug info for normal variables. If the
info is incorrect, that classifies as wrong-debug. If the info is
missing, that classifies as wrong-debug.
At > -O0, gcc does a best a effort to annotate normal variables with
accurate debug info. If the info is incorrect, that classifies as
wrong-debug. If the info is missing, that classifies as a "could be
improved, but not a bug" .
At -O0, gcc handles register-keyword variables like so (
https://gcc.gnu.org/onlinedocs/gcc/Hints-implementation.html#Hints-implementation
):
...
When -O0 is in use, the compiler allocates distinct stack memory for all
variables that do not have the register storage-class specifier; if
register is specified, the variable may have a shorter lifespan than the
code would indicate and may never be placed in memory.
...
I read this as meaning: gcc treats register-keyword variables at -O0 as
regular variables at > -O0. So, if the debug info is missing, that
classifies as a "could be improved, but not a bug".
Hence my conclusion: yes, debug info can be improved, but we can't say
the debug info is invalid. Just the fact that it can be improved doesn't
make it invalid.
>>
>> So, ISTM the FAILs need to be fixed by marking the failing tests as
>> unsupported, in case l shows up as <optimized out>.
>
> I guess unsupported, but maybe KFAIL with an associated GCC bug would
> be better?
>
My understanding of KFAIL/XFAIL etc is based on old dejagnu docs (
https://opensource.apple.com/source/gdb/gdb-325/src/dejagnu/doc/dejagnu.texi.auto.html
):
...
KFAIL
A test is known to fail in some environment(s) due to a known bug
in the tool being tested (identified by a bug id string).
...
So, the tool being tested is gdb, and I don't see a gdb bug here, so on
that basis I say it's not a KFAIL.
Looking at UNSUPPORTED:
...
A test depends on a conditionally available feature that does not exist
(in the configured testing environment)."
...
that seems a better match.
> Consider this GDB session to explain my thinking:
>
> (gdb) break wack_float
> Breakpoint 1 at 0x4005c8: file /path/to/gdb/src/gdb/testsuite/gdb.base/store.c, line 109.
> (gdb) r
> Starting program: /path/to/gdb/build/gdb/testsuite/outputs/gdb.base/store/store
>
> Breakpoint 1, wack_float (u=-1, v=-2) at /path/to/gdb/src/gdb/testsuite/gdb.base/store.c:109
> 109 register float l = u, r = v;
> (gdb) n
> 110 l = add_float (l, r);
> (gdb) p u
> $1 = -1
> (gdb) p l
> $2 = <optimized out>
> (gdb)
>
> We know where 'u' is, as I see it there's no reason why GCC couldn't
> emit location information for 'l' that is identical to that for 'u'.
>
Right, there is no reason why GCC couldn't emit location information for
'l', if the generated code allows that, but that's not relevant. What is
relevant is the fact that is doesn't, and we have to deal with that in
the gdb testsuite. The current way of dealing with this is FAILing the
test, which indicates a problem in gdb, which is not the case.
Thanks,
- Tom
> [ OK, if we're going to be supper picky then GCC could declare 'u'
> dead after line 109 and then have only 'l' exist after that, but at
> -O0 I'd probably hope that both 'u' and 'l' would remain alive for
> the entire life of the function. ]
>
> Thanks,
> Andrew
>
>
>
>
>
>
>>
>>> Anyway, I agree with you that this test is in need of some clean up,
>>> I'm just not convinced on this approach yet.
>>>
>>
>> Better like this?
>>
>> Thanks,
>> - Tom
>
>> [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
>>
>> The test-case gdb.base/store.exp fails with gcc 7.4.0:
>> ...
>> nr of unexpected failures 27
>> ...
>>
>> The first FAIL:
>> ...
>> 110 l = add_float (l, r);
>> (gdb) PASS: gdb.base/store.exp: continue to wack_float
>> print l
>> $21 = <optimized out>
>> FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
>> ...
>> relates to this bit in the test-case (compiled at -O0):
>> ...
>> 106 float
>> 107 wack_float (register float u, register float v)
>> 108 {
>> 109 register float l = u, r = v;
>> 110 l = add_float (l, r);
>> 111 return l + r;
>> 112 }
>> ...
>> and it expects to be able to read and modify variable l before executing line
>> 110, but it already fails to read the value, because l has no DW_AT_location
>> attribute in the debug info.
>>
>> Variable l is declared with the register keyword, and GCC implements the
>> register keyword at -O0 like so:
>> ...
>> the compiler allocates distinct stack memory for all variables that do not
>> have the register storage-class specifier; if register is specified, the
>> variable may have a shorter lifespan than the code would indicate and may
>> never be placed in memory.
>> ...
>>
>> The fact that l has no DW_AT_location attribute, matches with the documented
>> "variable may have a shorter lifespan that code would indicate", (though it
>> is the most extreme case of it) so the gcc behaviour is valid. We can of
>> course improve gcc to generate better debuginfo (filed gcc PR91611), but
>> this not a wrong-debug problem.
>>
>> [ The test-case passes with gcc 4.2.1, but for the failing test discussed
>> above, it passes simply because it doesn't store l in a register. ]
>>
>> With the debug info missing for l, reading and setting l is unsupported, so
>> fix the FAIL by marking the test UNSUPPORTED instead.
>>
>> Tested on x86_64-linux.
>>
>> gdb/testsuite/ChangeLog:
>>
>> 2019-08-29 Tom de Vries <tdevries@suse.de>
>>
>> * gdb.base/store.exp: Allow register variables to be optimized out at
>> -O0.
>>
>> ---
>> gdb/testsuite/gdb.base/store.exp | 65 +++++++++++++++++++++++++++-------------
>> 1 file changed, 45 insertions(+), 20 deletions(-)
>>
>> diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
>> index c5a7584101..9c19ce15a7 100644
>> --- a/gdb/testsuite/gdb.base/store.exp
>> +++ b/gdb/testsuite/gdb.base/store.exp
>> @@ -55,18 +55,29 @@ proc check_set { t l r new add } {
>> }
>> }
>>
>> - gdb_test "print l" " = ${l}" \
>> - "${prefix}; print old l, expecting ${l}"
>> - gdb_test "print r" " = ${r}" \
>> - "${prefix}; print old r, expecting ${r}"
>> - gdb_test_no_output "set variable l = 4" \
>> - "${prefix}; setting l to 4"
>> - gdb_test "print l" " = ${new}" \
>> - "${prefix}; print new l, expecting ${new}"
>> - gdb_test "next" "return l \\+ r;" \
>> - "${prefix}; next over add call"
>> - gdb_test "print l" " = ${add}" \
>> - "${prefix}; print incremented l, expecting ${add}"
>> + set supported 1
>> + set test "${prefix}; print old l, expecting ${l}"
>> + gdb_test_multiple "print l" "$test" {
>> + -re " = <optimized out>\r\n$gdb_prompt $" {
>> + unsupported $test
>> + set supported 0
>> + }
>> + -re " = ${l}\r\n$gdb_prompt $" {
>> + pass $test
>> + }
>> + }
>> + if { $supported } {
>> + gdb_test "print r" " = ${r}" \
>> + "${prefix}; print old r, expecting ${r}"
>> + gdb_test_no_output "set variable l = 4" \
>> + "${prefix}; setting l to 4"
>> + gdb_test "print l" " = ${new}" \
>> + "${prefix}; print new l, expecting ${new}"
>> + gdb_test "next" "return l \\+ r;" \
>> + "${prefix}; next over add call"
>> + gdb_test "print l" " = ${add}" \
>> + "${prefix}; print incremented l, expecting ${add}"
>> + }
>> }
>>
>> check_set "charest" "-1 .*" "-2 .*" "4 ..004." "2 ..002."
>> @@ -81,20 +92,34 @@ check_set "doublest" "-1" "-2" "4" "2"
>> #
>>
>> proc up_set { t l r new } {
>> + global gdb_prompt
>> +
>> set prefix "upvar ${t} l"
>> gdb_test "tbreak add_${t}"
>> gdb_test "continue" "return u . v;" \
>> "continue to add_${t}"
>> gdb_test "up" "l = add_${t} .l, r.;" \
>> "${prefix}; up"
>> - gdb_test "print l" " = ${l}" \
>> - "${prefix}; print old l, expecting ${l}"
>> - gdb_test "print r" " = ${r}" \
>> - "${prefix}; print old r, expecting ${r}"
>> - gdb_test_no_output "set variable l = 4" \
>> - "${prefix}; set l to 4"
>> - gdb_test "print l" " = ${new}" \
>> - "${prefix}; print new l, expecting ${new}"
>> +
>> + set supported 1
>> + set test "${prefix}; print old l, expecting ${l}"
>> + gdb_test_multiple "print l" "$test" {
>> + -re " = <optimized out>\r\n$gdb_prompt $" {
>> + unsupported $test
>> + set supported 0
>> + }
>> + -re " = ${l}\r\n$gdb_prompt $" {
>> + pass $test
>> + }
>> + }
>> + if { $supported } {
>> + gdb_test "print r" " = ${r}" \
>> + "${prefix}; print old r, expecting ${r}"
>> + gdb_test_no_output "set variable l = 4" \
>> + "${prefix}; set l to 4"
>> + gdb_test "print l" " = ${new}" \
>> + "${prefix}; print new l, expecting ${new}"
>> + }
>> }
>>
>> up_set "charest" "-1 .*" "-2 .*" "4 ..004."
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
2019-09-03 13:13 ` Tom de Vries
@ 2019-09-12 19:43 ` Andrew Burgess
0 siblings, 0 replies; 6+ messages in thread
From: Andrew Burgess @ 2019-09-12 19:43 UTC (permalink / raw)
To: Tom de Vries; +Cc: gdb-patches
* Tom de Vries <tdevries@suse.de> [2019-09-03 15:13:14 +0200]:
1;5004;0c
> On 02-09-19 20:20, Andrew Burgess wrote:
> > * Tom de Vries <tdevries@suse.de> [2019-09-02 13:00:21 +0200]:
> >
> >> [ was: Re: [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test ]
> >>
> >> On 29-08-19 20:07, Andrew Burgess wrote:
> >>> * Tom de Vries <tdevries@suse.de> [2019-08-29 19:47:12 +0200]:
> >>>
> >>>> Hi,
> >>>>
> >>>> The test-case gdb.base/store.exp fails with gcc 7.4.0:
> >>>> ...
> >>>> nr of unexpected failures 27
> >>>> ...
> >>>> and with gcc 4.8.5:
> >>>> ...
> >>>> nr of unexpected failures 9
> >>>> ...
> >>>>
> >>>> The test-case relies on "the compiler taking heed of requests for values to be
> >>>> stored in registers", which appearantly isn't the case anymore for
> >>>> modern gcc.
> >>>
> >>> Could you expand on this a little more. I took a quick look and it
> >>> appears more that variables just have missing location information.
> >>
> >> You're right, I jumped to a conclusion here, sorry for not being more
> >> careful.
> >>
> >>> Sure the test marks the variables with the 'register' keyword, but
> >>> surely GDB should still pass the test even if the variable is placed
> >>> on the stack?
> >>>
> >>
> >> Agreed (and indeed, not obeing the 'register' hint, emulated by "#define
> >> register" makes the test pass).
> >>
> >>>>
> >>>> Fix this by changing this into an assembly file test-case, and generating the
> >>>> assembly file using gcc 4.2.1.
> >>>>
> >>>> Tested on x86_64-linux.
> >>>>
> >>>> OK for trunk?
> >>>
> >>> No. What about architectures other than x86-64?
> >>>
> >>> I took a quick look, and maybe I missed something, but I don't think
> >>> that there are any architecture specific assembler tests in gdb.base/
> >>> and I don't think we should be adding any.
> >>>
> >>> Maybe we should add a version of this test into gdb.arch along with
> >>> the assembler file for x86-64.
> >>>
> >>> On a slightly different note, I've run into this test before, and I'm
> >>> pretty sure that the test is broken, it's been a while since I dug
> >>> into this but consider these snippets:
> >>>
> >>> ...
> >>>
> >>> float
> >>> add_float (register float u, register float v)
> >>> {
> >>> return u + v;
> >>> }
> >>>
> >>> ...
> >>>
> >>> wack_float (register float u, register float v)
> >>> {
> >>> register float l = u, r = v;
> >>> l = add_float (l, r);
> >>> return l + r;
> >>> }
> >>>
> >>> ...
> >>>
> >>> Part of the test involves breaking on 'add_float' then going 'up' to
> >>> 'wack_float' and printing 'l'. GDB expects an answer.
> >>>
> >>> My problem with this is that on many architectures, even at
> >>> optimisation level 0 'l' is dead, or at least non-recoverable at the
> >>> point of the call to add_float due to being placed in a caller saved
> >>> argument register.
> >>>
> >>
> >> I've investigated the FAILs related to the wack_float function, and the
> >> test-case expects to access and modify l, but it can't because there's
> >> no DW_AT_location for l, which AFAIU is valid behaviour of gcc for a
> >> register variable at -O0.
> >
> > I don't understand why this should be the case. DWARF is perfectly
> > able to describe the location of something in a register, so why would
> > it be valid for GCC to skip emitting location information for
> > something just because it's in a register?
> >
>
> My reasoning is as follows:
>
> At -O0, gcc generates accurate debug info for normal variables. If the
> info is incorrect, that classifies as wrong-debug. If the info is
> missing, that classifies as wrong-debug.
>
> At > -O0, gcc does a best a effort to annotate normal variables with
> accurate debug info. If the info is incorrect, that classifies as
> wrong-debug. If the info is missing, that classifies as a "could be
> improved, but not a bug" .
>
> At -O0, gcc handles register-keyword variables like so (
> https://gcc.gnu.org/onlinedocs/gcc/Hints-implementation.html#Hints-implementation
> ):
> ...
> When -O0 is in use, the compiler allocates distinct stack memory for all
> variables that do not have the register storage-class specifier; if
> register is specified, the variable may have a shorter lifespan than the
> code would indicate and may never be placed in memory.
> ...
>
> I read this as meaning: gcc treats register-keyword variables at -O0 as
> regular variables at > -O0. So, if the debug info is missing, that
> classifies as a "could be improved, but not a bug".
>
> Hence my conclusion: yes, debug info can be improved, but we can't say
> the debug info is invalid. Just the fact that it can be improved doesn't
> make it invalid.
>
> >>
> >> So, ISTM the FAILs need to be fixed by marking the failing tests as
> >> unsupported, in case l shows up as <optimized out>.
> >
> > I guess unsupported, but maybe KFAIL with an associated GCC bug would
> > be better?
> >
>
> My understanding of KFAIL/XFAIL etc is based on old dejagnu docs (
> https://opensource.apple.com/source/gdb/gdb-325/src/dejagnu/doc/dejagnu.texi.auto.html
> ):
> ...
> KFAIL
> A test is known to fail in some environment(s) due to a known bug
> in the tool being tested (identified by a bug id string).
> ...
>
> So, the tool being tested is gdb, and I don't see a gdb bug here, so on
> that basis I say it's not a KFAIL.
>
> Looking at UNSUPPORTED:
> ...
> A test depends on a conditionally available feature that does not exist
> (in the configured testing environment)."
> ...
> that seems a better match.
>
> > Consider this GDB session to explain my thinking:
> >
> > (gdb) break wack_float
> > Breakpoint 1 at 0x4005c8: file /path/to/gdb/src/gdb/testsuite/gdb.base/store.c, line 109.
> > (gdb) r
> > Starting program: /path/to/gdb/build/gdb/testsuite/outputs/gdb.base/store/store
> >
> > Breakpoint 1, wack_float (u=-1, v=-2) at /path/to/gdb/src/gdb/testsuite/gdb.base/store.c:109
> > 109 register float l = u, r = v;
> > (gdb) n
> > 110 l = add_float (l, r);
> > (gdb) p u
> > $1 = -1
> > (gdb) p l
> > $2 = <optimized out>
> > (gdb)
> >
> > We know where 'u' is, as I see it there's no reason why GCC couldn't
> > emit location information for 'l' that is identical to that for 'u'.
> >
>
> Right, there is no reason why GCC couldn't emit location information for
> 'l', if the generated code allows that, but that's not relevant. What is
> relevant is the fact that is doesn't, and we have to deal with that in
> the gdb testsuite. The current way of dealing with this is FAILing the
> test, which indicates a problem in gdb, which is not the case.
OK, I'm convinced. Thanks for taking the time to go into this detail
for me. I'm happy with your last version of this patch to go in.
Thanks,
Andrew
>
> Thanks,
> - Tom
>
> > [ OK, if we're going to be supper picky then GCC could declare 'u'
> > dead after line 109 and then have only 'l' exist after that, but at
> > -O0 I'd probably hope that both 'u' and 'l' would remain alive for
> > the entire life of the function. ]
> >
> > Thanks,
> > Andrew
> >
> >
> >
> >
> >
> >
> >>
> >>> Anyway, I agree with you that this test is in need of some clean up,
> >>> I'm just not convinced on this approach yet.
> >>>
> >>
> >> Better like this?
> >>
> >> Thanks,
> >> - Tom
> >
> >> [gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported
> >>
> >> The test-case gdb.base/store.exp fails with gcc 7.4.0:
> >> ...
> >> nr of unexpected failures 27
> >> ...
> >>
> >> The first FAIL:
> >> ...
> >> 110 l = add_float (l, r);
> >> (gdb) PASS: gdb.base/store.exp: continue to wack_float
> >> print l
> >> $21 = <optimized out>
> >> FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
> >> ...
> >> relates to this bit in the test-case (compiled at -O0):
> >> ...
> >> 106 float
> >> 107 wack_float (register float u, register float v)
> >> 108 {
> >> 109 register float l = u, r = v;
> >> 110 l = add_float (l, r);
> >> 111 return l + r;
> >> 112 }
> >> ...
> >> and it expects to be able to read and modify variable l before executing line
> >> 110, but it already fails to read the value, because l has no DW_AT_location
> >> attribute in the debug info.
> >>
> >> Variable l is declared with the register keyword, and GCC implements the
> >> register keyword at -O0 like so:
> >> ...
> >> the compiler allocates distinct stack memory for all variables that do not
> >> have the register storage-class specifier; if register is specified, the
> >> variable may have a shorter lifespan than the code would indicate and may
> >> never be placed in memory.
> >> ...
> >>
> >> The fact that l has no DW_AT_location attribute, matches with the documented
> >> "variable may have a shorter lifespan that code would indicate", (though it
> >> is the most extreme case of it) so the gcc behaviour is valid. We can of
> >> course improve gcc to generate better debuginfo (filed gcc PR91611), but
> >> this not a wrong-debug problem.
> >>
> >> [ The test-case passes with gcc 4.2.1, but for the failing test discussed
> >> above, it passes simply because it doesn't store l in a register. ]
> >>
> >> With the debug info missing for l, reading and setting l is unsupported, so
> >> fix the FAIL by marking the test UNSUPPORTED instead.
> >>
> >> Tested on x86_64-linux.
> >>
> >> gdb/testsuite/ChangeLog:
> >>
> >> 2019-08-29 Tom de Vries <tdevries@suse.de>
> >>
> >> * gdb.base/store.exp: Allow register variables to be optimized out at
> >> -O0.
> >>
> >> ---
> >> gdb/testsuite/gdb.base/store.exp | 65 +++++++++++++++++++++++++++-------------
> >> 1 file changed, 45 insertions(+), 20 deletions(-)
> >>
> >> diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
> >> index c5a7584101..9c19ce15a7 100644
> >> --- a/gdb/testsuite/gdb.base/store.exp
> >> +++ b/gdb/testsuite/gdb.base/store.exp
> >> @@ -55,18 +55,29 @@ proc check_set { t l r new add } {
> >> }
> >> }
> >>
> >> - gdb_test "print l" " = ${l}" \
> >> - "${prefix}; print old l, expecting ${l}"
> >> - gdb_test "print r" " = ${r}" \
> >> - "${prefix}; print old r, expecting ${r}"
> >> - gdb_test_no_output "set variable l = 4" \
> >> - "${prefix}; setting l to 4"
> >> - gdb_test "print l" " = ${new}" \
> >> - "${prefix}; print new l, expecting ${new}"
> >> - gdb_test "next" "return l \\+ r;" \
> >> - "${prefix}; next over add call"
> >> - gdb_test "print l" " = ${add}" \
> >> - "${prefix}; print incremented l, expecting ${add}"
> >> + set supported 1
> >> + set test "${prefix}; print old l, expecting ${l}"
> >> + gdb_test_multiple "print l" "$test" {
> >> + -re " = <optimized out>\r\n$gdb_prompt $" {
> >> + unsupported $test
> >> + set supported 0
> >> + }
> >> + -re " = ${l}\r\n$gdb_prompt $" {
> >> + pass $test
> >> + }
> >> + }
> >> + if { $supported } {
> >> + gdb_test "print r" " = ${r}" \
> >> + "${prefix}; print old r, expecting ${r}"
> >> + gdb_test_no_output "set variable l = 4" \
> >> + "${prefix}; setting l to 4"
> >> + gdb_test "print l" " = ${new}" \
> >> + "${prefix}; print new l, expecting ${new}"
> >> + gdb_test "next" "return l \\+ r;" \
> >> + "${prefix}; next over add call"
> >> + gdb_test "print l" " = ${add}" \
> >> + "${prefix}; print incremented l, expecting ${add}"
> >> + }
> >> }
> >>
> >> check_set "charest" "-1 .*" "-2 .*" "4 ..004." "2 ..002."
> >> @@ -81,20 +92,34 @@ check_set "doublest" "-1" "-2" "4" "2"
> >> #
> >>
> >> proc up_set { t l r new } {
> >> + global gdb_prompt
> >> +
> >> set prefix "upvar ${t} l"
> >> gdb_test "tbreak add_${t}"
> >> gdb_test "continue" "return u . v;" \
> >> "continue to add_${t}"
> >> gdb_test "up" "l = add_${t} .l, r.;" \
> >> "${prefix}; up"
> >> - gdb_test "print l" " = ${l}" \
> >> - "${prefix}; print old l, expecting ${l}"
> >> - gdb_test "print r" " = ${r}" \
> >> - "${prefix}; print old r, expecting ${r}"
> >> - gdb_test_no_output "set variable l = 4" \
> >> - "${prefix}; set l to 4"
> >> - gdb_test "print l" " = ${new}" \
> >> - "${prefix}; print new l, expecting ${new}"
> >> +
> >> + set supported 1
> >> + set test "${prefix}; print old l, expecting ${l}"
> >> + gdb_test_multiple "print l" "$test" {
> >> + -re " = <optimized out>\r\n$gdb_prompt $" {
> >> + unsupported $test
> >> + set supported 0
> >> + }
> >> + -re " = ${l}\r\n$gdb_prompt $" {
> >> + pass $test
> >> + }
> >> + }
> >> + if { $supported } {
> >> + gdb_test "print r" " = ${r}" \
> >> + "${prefix}; print old r, expecting ${r}"
> >> + gdb_test_no_output "set variable l = 4" \
> >> + "${prefix}; set l to 4"
> >> + gdb_test "print l" " = ${new}" \
> >> + "${prefix}; print new l, expecting ${new}"
> >> + }
> >> }
> >>
> >> up_set "charest" "-1 .*" "-2 .*" "4 ..004."
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-09-12 19:43 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-29 17:47 [PATCH][gdb/testsuite] Rewrite gdb.base/store.exp into .s test Tom de Vries
2019-08-29 18:07 ` Andrew Burgess
2019-09-02 11:00 ` [PATCH][gdb/testsuite] Allow some tests in gdb.base/store.exp to be unsupported Tom de Vries
2019-09-02 18:20 ` Andrew Burgess
2019-09-03 13:13 ` Tom de Vries
2019-09-12 19:43 ` Andrew Burgess
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox