Re: ld plugin bfd_make_readable leak
[binutils-gdb.git] / gdb / testsuite / gdb.arch / riscv-unwind-long-insn.S
blobb8a35e8c58a94769936d911b3dce448950e65918
1 /* Copyright 2019-2024 Free Software Foundation, Inc.
3    This program is free software; you can redistribute it and/or modify
4    it under the terms of the GNU General Public License as published by
5    the Free Software Foundation; either version 3 of the License, or
6    (at your option) any later version.
8    This program is distributed in the hope that it will be useful,
9    but WITHOUT ANY WARRANTY; without even the implied warranty of
10    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11    GNU General Public License for more details.
13    You should have received a copy of the GNU General Public License
14    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16         .option nopic
17         .text
19         .align  1
20         .globl  bar
21         .type   bar, @function
22 bar:
23         tail       1f
24         .size   bar, .-func
26         .align  1
27         .globl  func
28         .type   func, @function
29 func:
30         /* A fake instruction of either 6 or 8 bytes.  This is never
31            executed, but the prologue scanner will try to decode it.
32            These long instructions are ISA extensions, use .byte rather
33            than an actual instruction mnemonic so that the test can be
34            compiled with a toolchain that doesn't include any long
35            instruction extensions.  */
36 #if BAD_INSN_LEN == 6
37         /* A fake 6 byte instruction.  */
38         .byte 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00
39 #elif BAD_INSN_LEN == 8
40         /* A fake 8 byte instruction.  */
41         .byte 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
42 #else
43 #error unexpected bad instruction length
44 #endif
47         addi    sp,sp,-16
48 #if __SIZEOF_POINTER__ == 8
49         sd      s0,8(sp)
50 #else
51         sw      s0,8(sp)
52 #endif
53         addi    s0,sp,16
54         nop
55 #if __SIZEOF_POINTER__ == 8
56         ld      s0,8(sp)
57 #else
58         lw      s0,8(sp)
59 #endif
60         addi    sp,sp,16
61         jr      ra
62         .size   func, .-func
63         .section        .note.GNU-stack,"",@progbits