]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.arch/i386-disp-step.S
Update copyright year range in header of all files managed by GDB
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.arch / i386-disp-step.S
CommitLineData
1d506c26 1/* Copyright 2009-2024 Free Software Foundation, Inc.
35669430
DE
2
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.
7
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.
12
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/>.
15
16 This file is part of the gdb testsuite.
17 It tests displaced stepping over various insns that require special
18 handling. */
19
20 .text
21
22 .global main
23main:
24 nop
25
1903f0e6
DE
26/***********************************************/
27
28/* Test call/ret. */
35669430 29
1903f0e6 30 nop
35669430
DE
31 .global test_call
32test_call:
33 call test_call_subr
34 nop
35 .global test_ret_end
36test_ret_end:
37 nop
38
1903f0e6
DE
39/***********************************************/
40
41/* Absolute jump with leading prefixes.
42 These don't occur in normal code, but gdb should still DTRT. */
43
44 nop
45 .global test_prefixed_abs_jump
46test_prefixed_abs_jump:
47 ds
48 jmp *test_prefixed_abs_jump_addr
49 .data
50test_prefixed_abs_jump_addr:
51 .4byte test_prefixed_abs_jump_target
52 .text
53test_prefixed_abs_jump_target:
54 nop
55 .global test_prefixed_abs_jump_end
56test_prefixed_abs_jump_end:
57 nop
58
59/***********************************************/
60
61/* Test syscall. */
35669430 62
35669430 63 mov $0x14,%eax /* getpid */
1903f0e6 64 .global test_syscall
35669430
DE
65test_syscall:
66 int $0x80
67 nop
1903f0e6 68 .global test_syscall_end
35669430
DE
69test_syscall_end:
70 nop
71
1903f0e6
DE
72/***********************************************/
73
74/* Test syscall again, this time with a prefix.
75 These don't occur in normal code, but gdb should still DTRT. */
76
77 mov $0x14,%eax /* getpid */
78 .global test_prefixed_syscall
79test_prefixed_syscall:
80 repnz
81 int $0x80
82 nop
83 .global test_prefixed_syscall_end
84test_prefixed_syscall_end:
85 nop
86
87/***********************************************/
88
89/* Test stepping over int3.
90 The prefixes are pointless, but it's possible, so we exercise it. */
91
92 nop
93 .global test_int3
94test_int3:
95 repz
96 repz
97 int3
98 nop
99 .global test_int3_end
100test_int3_end:
101 nop
102
103/***********************************************/
104
35669430
DE
105/* all done */
106
107 pushl $0
108 call exit
109 hlt
110
111/***********************************************/
112
113/* subroutine to help test call/ret */
114
115test_call_subr:
116 nop
117 .global test_call_end
118test_call_end:
119 nop
120
121 .global test_ret
122test_ret:
123 ret
0f2cd53c 124 .section .note.GNU-stack,"",@progbits