File: op_bkpt.s

package info (click to toggle)
fis-gtm 6.2-000-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 30,784 kB
  • ctags: 42,554
  • sloc: ansic: 358,483; asm: 4,847; csh: 4,574; sh: 2,261; awk: 200; makefile: 86; sed: 13
file content (264 lines) | stat: -rw-r--r-- 4,559 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
#################################################################
#								#
#	Copyright 2001, 2010 Fidelity Information Services, Inc	#
#								#
#	This source code contains the intellectual property	#
#	of its copyright holder(s), and is made available	#
#	under a license.  If you do not know the terms of	#
#	the license, please stop and do not read further.	#
#								#
#################################################################

#	PAGE	,132
	.title	op_bkpt.s

#	.386
#	.MODEL	FLAT, C

.include "linkage.si"
	.INCLUDE "g_msf.si"

	.sbttl	opp_zstepret
#	PAGE	+
	.DATA
.extern	frame_pointer
.extern	zstep_level

	.text
.extern	gtm_fetch
.extern	op_retarg
.extern	op_zbreak
.extern	op_zst_break
.extern	op_zst_over
.extern	op_zstepret
.extern	opp_ret

# PUBLIC	opp_zstepret
ENTRY opp_zstepret
	movl	frame_pointer,%eax
	movw	msf_typ_off(%eax),%dx
	testw	$1,%dx
	je	l1
	movl	zstep_level,%edx
	cmpl	%eax, %edx
	jg	l1
	call	op_zstepret
l1:	jmp	opp_ret
# opp_zstepret ENDP

# PUBLIC	opp_zstepretarg
ENTRY opp_zstepretarg
	pushl	%eax
	pushl	%edx
	movl	frame_pointer,%eax
	movw	msf_typ_off(%eax),%dx
	testw	$1,%dx
	je	l2
	movl	zstep_level,%edx
	cmpl	%eax, %edx
	jg	l2
	call	op_zstepret
l2:	popl	%edx
	popl	%eax
	jmp	op_retarg
# opp_zstepretarg ENDP

# PUBLIC	op_zbfetch
ENTRY op_zbfetch
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	call	gtm_fetch
	popl	%eax
#	lea	esp, [esp][eax*4]
	leal	(%esp,%eax,4),%esp
	pushl	frame_pointer
	call	op_zbreak
	addl	$4,%esp
	getframe
	ret
# op_zbfetch ENDP

# PUBLIC	op_zbstart
ENTRY op_zbstart
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	pushl	%edx
	call	op_zbreak
	addl	$4,%esp
	getframe
	ret
# op_zbstart ENDP

# PUBLIC	op_zstepfetch
ENTRY op_zstepfetch
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	call	gtm_fetch
	popl	%eax
#	lea	esp, [esp][eax*4]
	leal	(%esp,%eax,4),%esp
	call	op_zst_break
	getframe
	ret
# op_zstepfetch ENDP

# PUBLIC	op_zstepstart
ENTRY op_zstepstart
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	call	op_zst_break
	getframe
	ret
# op_zstepstart ENDP

# PUBLIC	op_zstzbfetch
ENTRY op_zstzbfetch
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	call	gtm_fetch
	popl	%eax
#	lea	esp, [esp][eax*4]
	leal	(%esp,%eax,4),%esp
	pushl	frame_pointer
	call	op_zbreak
	addl	$4,%esp
	call	op_zst_break
	getframe
	ret
# op_zstzbfetch ENDP

# PUBLIC	op_zstzbstart
ENTRY op_zstzbstart
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	pushl	%edx
	call	op_zbreak
	addl	$4,%esp
	call	op_zst_break
	getframe
	ret
# op_zstzbstart ENDP

# PUBLIC	op_zstzb_fet_over
ENTRY op_zstzb_fet_over
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	call	gtm_fetch
	popl	%eax
#	lea	esp, [esp][eax*4]
	leal	(%esp,%eax,4),%esp
	pushl	frame_pointer
	call	op_zbreak
	addl	$4,%esp
	movl	zstep_level,%edx
	cmpl	frame_pointer,%edx
	jle	l3
	cmpl	$0,%eax
	jne	l5
	jmp	l4

l3:	call	op_zst_break
l4:	getframe
	ret

l5:	call	op_zst_over
	movl	frame_pointer,%edx
	pushl	msf_mpc_off(%edx)
	ret
# op_zstzb_fet_over ENDP

# PUBLIC	op_zstzb_st_over
ENTRY op_zstzb_st_over
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	pushl	%edx
	call	op_zbreak
	addl	$4,%esp
	movl	zstep_level,%edx
	cmpl	frame_pointer,%edx
	jle	l6
	cmpl	$0,%eax
	jne	l8
	jmp	l7

l6:	call	op_zst_break
l7:	getframe
	ret

l8:	call	op_zst_over
	movl	frame_pointer,%edx
	pushl	msf_mpc_off(%edx)
	ret
# op_zstzb_st_over ENDP

# PUBLIC	op_zst_fet_over
ENTRY op_zst_fet_over
	movl	frame_pointer,%edx
	popl	msf_mpc_off(%edx)
	call	gtm_fetch
	popl	%eax
#	lea	esp, [esp][eax*4]
	leal	(%esp,%eax,4),%esp
	movl	zstep_level,%edx
	cmpl	frame_pointer,%edx
	jg	l9
	call	op_zst_break
	getframe
	ret

l9:	call	op_zst_over
	movl	frame_pointer,%edx
	pushl	msf_mpc_off(%edx)
	ret
# op_zst_fet_over ENDP

# PUBLIC	op_zst_st_over
ENTRY op_zst_st_over
	movl	frame_pointer,%eax
	popl	msf_mpc_off(%eax)
	movl	zstep_level,%edx
	cmpl	%eax,%edx
	jg	l10
	call	op_zst_break
	getframe
	ret

l10:	call	op_zst_over
	movl	frame_pointer,%edx
	pushl	msf_mpc_off(%edx)
	ret
# op_zst_st_over ENDP

# PUBLIC	opp_zst_over_ret
ENTRY opp_zst_over_ret
	movl	frame_pointer,%eax
	movw	msf_typ_off(%eax),%dx
	testw	$1,%dx
	je	l11
	movl	zstep_level,%edx
	movl	msf_old_frame_off(%eax),%eax
	cmpl	%eax,%edx
	jg	l11
	call	op_zstepret
l11:	jmp	opp_ret
# opp_zst_over_ret ENDP

# PUBLIC	opp_zst_over_retarg
ENTRY opp_zst_over_retarg
	pushl	%eax
	pushl	%edx
	movl	frame_pointer,%eax
	movw	msf_typ_off(%eax),%dx
	testw	$1,%dx
	je	l12
	movl	zstep_level,%edx
	movl	msf_old_frame_off(%eax),%eax
	cmpl	%eax,%edx
	jg	l12
	call	op_zstepret
l12:	popl	%edx
	popl	%eax
	jmp	op_retarg
# opp_zst_over_retarg ENDP

# END