source: trunk/src/NTDLL/regfunc.asm@ 10367

Last change on this file since 10367 was 9992, checked in by sandervl, 22 years ago

PF: GCC 3.2.1 updates + NTDLL resync

File size: 3.7 KB
Line 
1; $Id: regfunc.asm,v 1.6 2003-04-08 12:47:07 sandervl Exp $
2
3;/*
4; * register functions in NTDLL
5; *
6; * Copyright 1999 Patrick Haller
7; *
8; *
9; * Project Odin Software License can be found in LICENSE.TXT
10; *
11; */
12.586P
13 NAME regfunc
14
15CODE32 SEGMENT DWORD PUBLIC USE32 'CODE'
16 align 4
17
18; ----------------------------------------------------------------------------
19
20 public _chkstk
21 public _alloca_probe; _alloca_probe seems to be the same as _chkstk
22 public DbgBreakPoint
23
24
25; ----------------------------------------------------------------------------
26
27
28; ----------------------------------------------------------------------------
29
30
31; ----------------------------------------------------------------------------
32; Name : _chkstk
33; Purpose :
34; Parameters:
35; Variables :
36; Result :
37; Remark :
38; Status : VERIFIED
39;
40; Author : Patrick Haller [Mon, 1999/11/08 23:44]
41; ----------------------------------------------------------------------------
42_chkstk proc near
43
44arg_0 = byte ptr 8
45
46 push ecx ; _alloca_probe
47 cmp eax, 1000h
48 lea ecx, [esp+arg_0]
49 jb short _chkstk_1
50
51_chkstk_2:
52 sub ecx, 1000h
53 sub eax, 1000h
54 test [ecx], eax
55 cmp eax, 1000h
56 jnb short _chkstk_2
57
58_chkstk_1:
59 sub ecx, eax
60 mov eax, esp
61 test [ecx], eax
62 mov esp, ecx
63 mov ecx, [eax]
64 mov eax, [eax+4]
65 push eax
66 retn
67_chkstk endp
68
69
70; ----------------------------------------------------------------------------
71; Name : _alloca_probe
72; Purpose :
73; Parameters:
74; Variables :
75; Result :
76; Remark :
77; Status : VERIFIED
78;
79; Author : Patrick Haller [Mon, 1999/11/08 23:44]
80; ----------------------------------------------------------------------------
81_alloca_probe proc near
82
83arg_0 = byte ptr 8
84
85 push ecx ; _alloca_probe
86 cmp eax, 1000h
87 lea ecx, [esp+arg_0]
88 jb short _alloca_probe_1
89
90_alloca_probe_2:
91 sub ecx, 1000h
92 sub eax, 1000h
93 test [ecx], eax
94 cmp eax, 1000h
95 jnb short _alloca_probe_2
96
97_alloca_probe_1:
98 sub ecx, eax
99 mov eax, esp
100 test [ecx], eax
101 mov esp, ecx
102 mov ecx, [eax]
103 mov eax, [eax+4]
104 push eax
105 retn
106_alloca_probe endp
107
108
109; ----------------------------------------------------------------------------
110; Name : DbgBreakPoint
111; Purpose :
112; Parameters:
113; Variables :
114; Result :
115; Remark : NTDLL.20
116; Status : VERIFIED
117;
118; Author : Patrick Haller [Mon, 1999/11/08 23:44]
119; ----------------------------------------------------------------------------
120DbgBreakPoint proc near
121 int 3 ; Trap to Debugger
122 retn
123DbgBreakPoint endp
124
125
126; ----------------------------------------------------------------------------
127; Name : DbgUserBreakPoint
128; Purpose :
129; Parameters:
130; Variables :
131; Result :
132; Remark : NTDLL.28
133; Status : VERIFIED
134;
135; Author : Patrick Haller [Mon, 1999/11/08 23:44]
136; ----------------------------------------------------------------------------
137DbgUserBreakPoint proc near
138 int 3 ; Trap to Debugger
139 retn
140DbgUserBreakPoint endp
141
142
143; ----------------------------------------------------------------------------
144CODE32 ENDS
145
146 END
Note: See TracBrowser for help on using the repository browser.