OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [gdb/] [testsuite/] [gdb.arch/] [amd64-disp-step.S] - Blame information for rev 833

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 227 jeremybenn
/* Copyright 2009, 2010 Free Software Foundation, Inc.
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 .
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
23
main:
24
        nop
25
 
26
/***********************************************/
27
 
28
/* test call/ret */
29
 
30
        .global test_call
31
test_call:
32
        call test_call_subr
33
        nop
34
        .global test_ret_end
35
test_ret_end:
36
        nop
37
 
38
/***********************************************/
39
 
40
/* test abs-jmp/rep-ret */
41
 
42
test_abs_jmp_setup:
43
        mov $test_abs_jmp_return,%rdx
44
        push %rdx
45
        mov $test_abs_jmp_subr,%rdx
46
        .global test_abs_jmp
47
test_abs_jmp:
48
        jmp *%rdx
49
test_abs_jmp_return:
50
        nop
51
        .global test_rep_ret_end
52
test_rep_ret_end:
53
        nop
54
 
55
/***********************************************/
56
 
57
/* test syscall */
58
 
59
        .global test_syscall
60
        mov $0x27,%eax /* getpid */
61
test_syscall:
62
        syscall
63
        nop
64
test_syscall_end:
65
        nop
66
 
67
/***********************************************/
68
 
69
/* Test stepping over int3.
70
   The prefixes are pointless, but it's possible, so we exercise it.  */
71
 
72
        nop
73
        .global test_int3
74
test_int3:
75
        repz
76
        repz
77
        int3
78
        nop
79
        .global test_int3_end
80
test_int3_end:
81
        nop
82
 
83
/***********************************************/
84
 
85
/* test rip-relative
86
   GDB picks a spare register to hold the rip-relative address.
87
   Exercise all the possibilities (rax-rdi, sans rsp).  */
88
 
89
        .global test_rip_rax
90
test_rip_rax:
91
        add answer(%rip),%rax
92
        .global test_rip_rax_end
93
test_rip_rax_end:
94
        nop
95
 
96
        .global test_rip_rbx
97
test_rip_rbx:
98
        add answer(%rip),%rbx
99
        .global test_rip_rbx_end
100
test_rip_rbx_end:
101
        nop
102
 
103
        .global test_rip_rcx
104
test_rip_rcx:
105
        add answer(%rip),%rcx
106
        .global test_rip_rcx_end
107
test_rip_rcx_end:
108
        nop
109
 
110
        .global test_rip_rdx
111
test_rip_rdx:
112
        add answer(%rip),%rdx
113
        .global test_rip_rdx_end
114
test_rip_rdx_end:
115
        nop
116
 
117
        .global test_rip_rbp
118
test_rip_rbp:
119
        add answer(%rip),%rbp
120
        .global test_rip_rbp_end
121
test_rip_rbp_end:
122
        nop
123
 
124
        .global test_rip_rsi
125
test_rip_rsi:
126
        add answer(%rip),%rsi
127
        .global test_rip_rsi_end
128
test_rip_rsi_end:
129
        nop
130
 
131
        .global test_rip_rdi
132
test_rip_rdi:
133
        add answer(%rip),%rdi
134
        .global test_rip_rdi_end
135
test_rip_rdi_end:
136
        nop
137
 
138
        /* skip over test data */
139
        jmp done
140
 
141
/* test rip-relative data */
142
 
143
answer: .8byte 42
144
 
145
/***********************************************/
146
 
147
/* all done */
148
 
149
done:
150
        mov $0,%rdi
151
        call exit
152
        hlt
153
 
154
/***********************************************/
155
 
156
/* subroutine to help test call/ret */
157
 
158
test_call_subr:
159
        nop
160
        .global test_call_end
161
test_call_end:
162
        nop
163
 
164
        .global test_ret
165
test_ret:
166
        ret
167
 
168
/***********************************************/
169
 
170
/* subroutine to help test abs-jmp/rep-ret */
171
 
172
test_abs_jmp_subr:
173
        nop
174
        .global test_abs_jmp_end
175
test_abs_jmp_end:
176
        nop
177
 
178
        .global test_rep_ret
179
test_rep_ret:
180
        repz
181
        ret

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.