GDB: trad-frame: Store length of value_bytes in trad_frame_saved_reg
[binutils-gdb.git] / gdb / testsuite / gdb.arch / i386-disp-step.S
blob1171f279058ba18cc344b4ca99e050c483711fd4
1 /* Copyright 2009-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    This file is part of the gdb testsuite.
17    It tests displaced stepping over various insns that require special
18    handling.  */
20         .text
22         .global main
23 main:
24         nop
26 /***********************************************/
28 /* Test call/ret.  */
30         nop
31         .global test_call
32 test_call:
33         call test_call_subr
34         nop
35         .global test_ret_end
36 test_ret_end:
37         nop
39 /***********************************************/
41 /* Absolute jump with leading prefixes.
42    These don't occur in normal code, but gdb should still DTRT.  */
44         nop
45         .global test_prefixed_abs_jump
46 test_prefixed_abs_jump:
47         ds
48         jmp *test_prefixed_abs_jump_addr
49         .data
50 test_prefixed_abs_jump_addr:
51         .4byte test_prefixed_abs_jump_target
52         .text
53 test_prefixed_abs_jump_target:
54         nop
55         .global test_prefixed_abs_jump_end
56 test_prefixed_abs_jump_end:
57         nop
59 /***********************************************/
61 /* Test syscall.  */
63         mov $0x14,%eax /* getpid */
64         .global test_syscall
65 test_syscall:
66         int $0x80
67         nop
68         .global test_syscall_end
69 test_syscall_end:
70         nop
72 /***********************************************/
74 /* Test syscall again, this time with a prefix.
75    These don't occur in normal code, but gdb should still DTRT.  */
77         mov $0x14,%eax /* getpid */
78         .global test_prefixed_syscall
79 test_prefixed_syscall:
80         repnz
81         int $0x80
82         nop
83         .global test_prefixed_syscall_end
84 test_prefixed_syscall_end:
85         nop
87 /***********************************************/
89 /* Test stepping over int3.
90    The prefixes are pointless, but it's possible, so we exercise it.  */
92         nop
93         .global test_int3
94 test_int3:
95         repz
96         repz
97         int3
98         nop
99         .global test_int3_end
100 test_int3_end:
101         nop
103 /***********************************************/
105 /* all done */
107         pushl $0
108         call exit
109         hlt
111 /***********************************************/
113 /* subroutine to help test call/ret */
115 test_call_subr:
116         nop
117         .global test_call_end
118 test_call_end:
119         nop
121         .global test_ret
122 test_ret:
123         ret
124         .section        .note.GNU-stack,"",@progbits