1da0c48c4Sopenharmony_ci#! /bin/sh
2da0c48c4Sopenharmony_ci# Copyright (C) 2020 Red Hat, Inc.
3da0c48c4Sopenharmony_ci# This file is part of elfutils.
4da0c48c4Sopenharmony_ci#
5da0c48c4Sopenharmony_ci# This file is free software; you can redistribute it and/or modify
6da0c48c4Sopenharmony_ci# it under the terms of the GNU General Public License as published by
7da0c48c4Sopenharmony_ci# the Free Software Foundation; either version 3 of the License, or
8da0c48c4Sopenharmony_ci# (at your option) any later version.
9da0c48c4Sopenharmony_ci#
10da0c48c4Sopenharmony_ci# elfutils is distributed in the hope that it will be useful, but
11da0c48c4Sopenharmony_ci# WITHOUT ANY WARRANTY; without even the implied warranty of
12da0c48c4Sopenharmony_ci# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13da0c48c4Sopenharmony_ci# GNU General Public License for more details.
14da0c48c4Sopenharmony_ci#
15da0c48c4Sopenharmony_ci# You should have received a copy of the GNU General Public License
16da0c48c4Sopenharmony_ci# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17da0c48c4Sopenharmony_ci
18da0c48c4Sopenharmony_ci. $srcdir/test-subr.sh
19da0c48c4Sopenharmony_ci
20da0c48c4Sopenharmony_ci# See run-readelf-n.sh
21da0c48c4Sopenharmony_citestfiles testfile-gnu-property-note-aarch64
22da0c48c4Sopenharmony_ci
23da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=frames testfile-gnu-property-note-aarch64 <<\EOF
24da0c48c4Sopenharmony_ci
25da0c48c4Sopenharmony_ciCall frame search table section [17] '.eh_frame_hdr':
26da0c48c4Sopenharmony_ci version:          1
27da0c48c4Sopenharmony_ci eh_frame_ptr_enc: 0x1b (sdata4 pcrel)
28da0c48c4Sopenharmony_ci fde_count_enc:    0x3 (udata4)
29da0c48c4Sopenharmony_ci table_enc:        0x3b (sdata4 datarel)
30da0c48c4Sopenharmony_ci eh_frame_ptr:     0x44 (offset: 0x758)
31da0c48c4Sopenharmony_ci fde_count:        7
32da0c48c4Sopenharmony_ci Table:
33da0c48c4Sopenharmony_ci  0xfffffe70 (offset:  0x580) -> 0x5c fde=[    14]
34da0c48c4Sopenharmony_ci  0xfffffea0 (offset:  0x5b0) -> 0x70 fde=[    28]
35da0c48c4Sopenharmony_ci  0xfffffee0 (offset:  0x5f0) -> 0x84 fde=[    3c]
36da0c48c4Sopenharmony_ci  0xffffff20 (offset:  0x630) -> 0xac fde=[    64]
37da0c48c4Sopenharmony_ci  0xffffff28 (offset:  0x638) -> 0xc0 fde=[    78]
38da0c48c4Sopenharmony_ci  0xffffff40 (offset:  0x650) -> 0xd8 fde=[    90]
39da0c48c4Sopenharmony_ci  0xffffffc0 (offset:  0x6d0) -> 0x110 fde=[    c8]
40da0c48c4Sopenharmony_ci
41da0c48c4Sopenharmony_ciCall frame information section [18] '.eh_frame' at offset 0x758:
42da0c48c4Sopenharmony_ci
43da0c48c4Sopenharmony_ci [     0] CIE length=16
44da0c48c4Sopenharmony_ci   CIE_id:                   0
45da0c48c4Sopenharmony_ci   version:                  1
46da0c48c4Sopenharmony_ci   augmentation:             "zR"
47da0c48c4Sopenharmony_ci   code_alignment_factor:    4
48da0c48c4Sopenharmony_ci   data_alignment_factor:    -8
49da0c48c4Sopenharmony_ci   return_address_register:  30
50da0c48c4Sopenharmony_ci   Augmentation data:        0x1b (FDE address encoding: sdata4 pcrel)
51da0c48c4Sopenharmony_ci
52da0c48c4Sopenharmony_ci   Program:
53da0c48c4Sopenharmony_ci     def_cfa r31 (sp) at offset 0
54da0c48c4Sopenharmony_ci
55da0c48c4Sopenharmony_ci [    14] FDE length=16 cie=[     0]
56da0c48c4Sopenharmony_ci   CIE_pointer:              24
57da0c48c4Sopenharmony_ci   initial_location:         0x0000000000400580 (offset: 0x580)
58da0c48c4Sopenharmony_ci   address_range:            0x30 (end offset: 0x5b0)
59da0c48c4Sopenharmony_ci
60da0c48c4Sopenharmony_ci   Program:
61da0c48c4Sopenharmony_ci     nop
62da0c48c4Sopenharmony_ci     nop
63da0c48c4Sopenharmony_ci     nop
64da0c48c4Sopenharmony_ci
65da0c48c4Sopenharmony_ci [    28] FDE length=16 cie=[     0]
66da0c48c4Sopenharmony_ci   CIE_pointer:              44
67da0c48c4Sopenharmony_ci   initial_location:         0x00000000004005b0 (offset: 0x5b0)
68da0c48c4Sopenharmony_ci   address_range:            0x3c (end offset: 0x5ec)
69da0c48c4Sopenharmony_ci
70da0c48c4Sopenharmony_ci   Program:
71da0c48c4Sopenharmony_ci     nop
72da0c48c4Sopenharmony_ci     nop
73da0c48c4Sopenharmony_ci     nop
74da0c48c4Sopenharmony_ci
75da0c48c4Sopenharmony_ci [    3c] FDE length=36 cie=[     0]
76da0c48c4Sopenharmony_ci   CIE_pointer:              64
77da0c48c4Sopenharmony_ci   initial_location:         0x00000000004005f0 (offset: 0x5f0)
78da0c48c4Sopenharmony_ci   address_range:            0x38 (end offset: 0x628)
79da0c48c4Sopenharmony_ci
80da0c48c4Sopenharmony_ci   Program:
81da0c48c4Sopenharmony_ci     advance_loc 1 to 0x5f4
82da0c48c4Sopenharmony_ci     AARCH64_negate_ra_state
83da0c48c4Sopenharmony_ci     advance_loc 1 to 0x5f8
84da0c48c4Sopenharmony_ci     def_cfa_offset 32
85da0c48c4Sopenharmony_ci     offset r29 (x29) at cfa-32
86da0c48c4Sopenharmony_ci     offset r30 (x30) at cfa-24
87da0c48c4Sopenharmony_ci     advance_loc 2 to 0x600
88da0c48c4Sopenharmony_ci     offset r19 (x19) at cfa-16
89da0c48c4Sopenharmony_ci     advance_loc 8 to 0x620
90da0c48c4Sopenharmony_ci     restore r30 (x30)
91da0c48c4Sopenharmony_ci     restore r29 (x29)
92da0c48c4Sopenharmony_ci     restore r19 (x19)
93da0c48c4Sopenharmony_ci     def_cfa_offset 0
94da0c48c4Sopenharmony_ci     advance_loc 1 to 0x624
95da0c48c4Sopenharmony_ci     AARCH64_negate_ra_state
96da0c48c4Sopenharmony_ci     nop
97da0c48c4Sopenharmony_ci     nop
98da0c48c4Sopenharmony_ci     nop
99da0c48c4Sopenharmony_ci
100da0c48c4Sopenharmony_ci [    64] FDE length=16 cie=[     0]
101da0c48c4Sopenharmony_ci   CIE_pointer:              104
102da0c48c4Sopenharmony_ci   initial_location:         0x0000000000400630 (offset: 0x630)
103da0c48c4Sopenharmony_ci   address_range:            0x8 (end offset: 0x638)
104da0c48c4Sopenharmony_ci
105da0c48c4Sopenharmony_ci   Program:
106da0c48c4Sopenharmony_ci     nop
107da0c48c4Sopenharmony_ci     nop
108da0c48c4Sopenharmony_ci     nop
109da0c48c4Sopenharmony_ci
110da0c48c4Sopenharmony_ci [    78] FDE length=20 cie=[     0]
111da0c48c4Sopenharmony_ci   CIE_pointer:              124
112da0c48c4Sopenharmony_ci   initial_location:         0x0000000000400638 (offset: 0x638)
113da0c48c4Sopenharmony_ci   address_range:            0xc (end offset: 0x644)
114da0c48c4Sopenharmony_ci
115da0c48c4Sopenharmony_ci   Program:
116da0c48c4Sopenharmony_ci     nop
117da0c48c4Sopenharmony_ci     nop
118da0c48c4Sopenharmony_ci     nop
119da0c48c4Sopenharmony_ci     nop
120da0c48c4Sopenharmony_ci     nop
121da0c48c4Sopenharmony_ci     nop
122da0c48c4Sopenharmony_ci     nop
123da0c48c4Sopenharmony_ci
124da0c48c4Sopenharmony_ci [    90] FDE length=52 cie=[     0]
125da0c48c4Sopenharmony_ci   CIE_pointer:              148
126da0c48c4Sopenharmony_ci   initial_location:         0x0000000000400650 (offset: 0x650)
127da0c48c4Sopenharmony_ci   address_range:            0x80 (end offset: 0x6d0)
128da0c48c4Sopenharmony_ci
129da0c48c4Sopenharmony_ci   Program:
130da0c48c4Sopenharmony_ci     advance_loc 1 to 0x654
131da0c48c4Sopenharmony_ci     AARCH64_negate_ra_state
132da0c48c4Sopenharmony_ci     advance_loc 1 to 0x658
133da0c48c4Sopenharmony_ci     def_cfa_offset 64
134da0c48c4Sopenharmony_ci     offset r29 (x29) at cfa-64
135da0c48c4Sopenharmony_ci     offset r30 (x30) at cfa-56
136da0c48c4Sopenharmony_ci     advance_loc 2 to 0x660
137da0c48c4Sopenharmony_ci     offset r19 (x19) at cfa-48
138da0c48c4Sopenharmony_ci     offset r20 (x20) at cfa-40
139da0c48c4Sopenharmony_ci     advance_loc 3 to 0x66c
140da0c48c4Sopenharmony_ci     offset r21 (x21) at cfa-32
141da0c48c4Sopenharmony_ci     offset r22 (x22) at cfa-24
142da0c48c4Sopenharmony_ci     advance_loc 5 to 0x680
143da0c48c4Sopenharmony_ci     offset r23 (x23) at cfa-16
144da0c48c4Sopenharmony_ci     offset r24 (x24) at cfa-8
145da0c48c4Sopenharmony_ci     advance_loc 18 to 0x6c8
146da0c48c4Sopenharmony_ci     restore r30 (x30)
147da0c48c4Sopenharmony_ci     restore r29 (x29)
148da0c48c4Sopenharmony_ci     restore r23 (x23)
149da0c48c4Sopenharmony_ci     restore r24 (x24)
150da0c48c4Sopenharmony_ci     restore r21 (x21)
151da0c48c4Sopenharmony_ci     restore r22 (x22)
152da0c48c4Sopenharmony_ci     restore r19 (x19)
153da0c48c4Sopenharmony_ci     restore r20 (x20)
154da0c48c4Sopenharmony_ci     def_cfa_offset 0
155da0c48c4Sopenharmony_ci     advance_loc 1 to 0x6cc
156da0c48c4Sopenharmony_ci     AARCH64_negate_ra_state
157da0c48c4Sopenharmony_ci     nop
158da0c48c4Sopenharmony_ci     nop
159da0c48c4Sopenharmony_ci
160da0c48c4Sopenharmony_ci [    c8] FDE length=16 cie=[     0]
161da0c48c4Sopenharmony_ci   CIE_pointer:              204
162da0c48c4Sopenharmony_ci   initial_location:         0x00000000004006d0 (offset: 0x6d0)
163da0c48c4Sopenharmony_ci   address_range:            0x8 (end offset: 0x6d8)
164da0c48c4Sopenharmony_ci
165da0c48c4Sopenharmony_ci   Program:
166da0c48c4Sopenharmony_ci     nop
167da0c48c4Sopenharmony_ci     nop
168da0c48c4Sopenharmony_ci     nop
169da0c48c4Sopenharmony_ci
170da0c48c4Sopenharmony_ci [    dc] Zero terminator
171da0c48c4Sopenharmony_ciEOF
172da0c48c4Sopenharmony_ci
173da0c48c4Sopenharmony_ciexit 0
174