libhd
5.0
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
src
x86emu
x86emu
prim_ops.h
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* Realmode X86 Emulator Library
4
*
5
* Copyright (C) 1996-1999 SciTech Software, Inc.
6
* Copyright (C) David Mosberger-Tang
7
* Copyright (C) 1999 Egbert Eich
8
*
9
* ========================================================================
10
*
11
* Permission to use, copy, modify, distribute, and sell this software and
12
* its documentation for any purpose is hereby granted without fee,
13
* provided that the above copyright notice appear in all copies and that
14
* both that copyright notice and this permission notice appear in
15
* supporting documentation, and that the name of the authors not be used
16
* in advertising or publicity pertaining to distribution of the software
17
* without specific, written prior permission. The authors makes no
18
* representations about the suitability of this software for any purpose.
19
* It is provided "as is" without express or implied warranty.
20
*
21
* THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
22
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
23
* EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
24
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
25
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
26
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27
* PERFORMANCE OF THIS SOFTWARE.
28
*
29
* ========================================================================
30
*
31
* Language: ANSI C
32
* Environment: Any
33
* Developer: Kendall Bennett
34
*
35
* Description: Header file for primitive operation functions.
36
*
37
****************************************************************************/
38
39
#ifndef __X86EMU_PRIM_OPS_H
40
#define __X86EMU_PRIM_OPS_H
41
42
#include "
x86emu/prim_asm.h
"
43
44
#ifdef __cplusplus
45
extern
"C"
{
/* Use "C" linkage when in C++ mode */
46
#endif
47
48
u16
aaa_word
(
u16
d);
49
u16
aas_word
(
u16
d);
50
u16
aad_word
(
u16
d);
51
u16
aam_word
(
u8
d);
52
u8
adc_byte
(
u8
d,
u8
s);
53
u16
adc_word
(
u16
d,
u16
s);
54
u32
adc_long
(
u32
d,
u32
s);
55
u8
add_byte
(
u8
d,
u8
s);
56
u16
add_word
(
u16
d,
u16
s);
57
u32
add_long
(
u32
d,
u32
s);
58
u8
and_byte
(
u8
d,
u8
s);
59
u16
and_word
(
u16
d,
u16
s);
60
u32
and_long
(
u32
d,
u32
s);
61
u8
cmp_byte
(
u8
d,
u8
s);
62
u16
cmp_word
(
u16
d,
u16
s);
63
u32
cmp_long
(
u32
d,
u32
s);
64
u8
daa_byte
(
u8
d);
65
u8
das_byte
(
u8
d);
66
u8
dec_byte
(
u8
d);
67
u16
dec_word
(
u16
d);
68
u32
dec_long
(
u32
d);
69
u8
inc_byte
(
u8
d);
70
u16
inc_word
(
u16
d);
71
u32
inc_long
(
u32
d);
72
u8
or_byte
(
u8
d,
u8
s);
73
u16
or_word
(
u16
d,
u16
s);
74
u32
or_long
(
u32
d,
u32
s);
75
u8
neg_byte
(
u8
s);
76
u16
neg_word
(
u16
s);
77
u32
neg_long
(
u32
s);
78
u8
not_byte
(
u8
s);
79
u16
not_word
(
u16
s);
80
u32
not_long
(
u32
s);
81
u8
rcl_byte
(
u8
d,
u8
s);
82
u16
rcl_word
(
u16
d,
u8
s);
83
u32
rcl_long
(
u32
d,
u8
s);
84
u8
rcr_byte
(
u8
d,
u8
s);
85
u16
rcr_word
(
u16
d,
u8
s);
86
u32
rcr_long
(
u32
d,
u8
s);
87
u8
rol_byte
(
u8
d,
u8
s);
88
u16
rol_word
(
u16
d,
u8
s);
89
u32
rol_long
(
u32
d,
u8
s);
90
u8
ror_byte
(
u8
d,
u8
s);
91
u16
ror_word
(
u16
d,
u8
s);
92
u32
ror_long
(
u32
d,
u8
s);
93
u8
shl_byte
(
u8
d,
u8
s);
94
u16
shl_word
(
u16
d,
u8
s);
95
u32
shl_long
(
u32
d,
u8
s);
96
u8
shr_byte
(
u8
d,
u8
s);
97
u16
shr_word
(
u16
d,
u8
s);
98
u32
shr_long
(
u32
d,
u8
s);
99
u8
sar_byte
(
u8
d,
u8
s);
100
u16
sar_word
(
u16
d,
u8
s);
101
u32
sar_long
(
u32
d,
u8
s);
102
u16
shld_word
(
u16
d,
u16
fill,
u8
s);
103
u32
shld_long
(
u32
d,
u32
fill,
u8
s);
104
u16
shrd_word
(
u16
d,
u16
fill,
u8
s);
105
u32
shrd_long
(
u32
d,
u32
fill,
u8
s);
106
u8
sbb_byte
(
u8
d,
u8
s);
107
u16
sbb_word
(
u16
d,
u16
s);
108
u32
sbb_long
(
u32
d,
u32
s);
109
u8
sub_byte
(
u8
d,
u8
s);
110
u16
sub_word
(
u16
d,
u16
s);
111
u32
sub_long
(
u32
d,
u32
s);
112
void
test_byte
(
u8
d,
u8
s);
113
void
test_word
(
u16
d,
u16
s);
114
void
test_long
(
u32
d,
u32
s);
115
u8
xor_byte
(
u8
d,
u8
s);
116
u16
xor_word
(
u16
d,
u16
s);
117
u32
xor_long
(
u32
d,
u32
s);
118
void
imul_byte
(
u8
s);
119
void
imul_word
(
u16
s);
120
void
imul_long
(
u32
s);
121
void
imul_long_direct
(
u32
*res_lo,
u32
* res_hi,
u32
d,
u32
s);
122
void
mul_byte
(
u8
s);
123
void
mul_word
(
u16
s);
124
void
mul_long
(
u32
s);
125
void
idiv_byte
(
u8
s);
126
void
idiv_word
(
u16
s);
127
void
idiv_long
(
u32
s);
128
void
div_byte
(
u8
s);
129
void
div_word
(
u16
s);
130
void
div_long
(
u32
s);
131
void
ins
(
int
size);
132
void
outs
(
int
size);
133
u16
mem_access_word
(
int
addr);
134
void
push_word
(
u16
w);
135
void
push_long
(
u32
w);
136
u16
pop_word
(
void
);
137
u32
pop_long
(
void
);
138
139
#ifdef __cplusplus
140
}
/* End of "C" linkage for C++ */
141
#endif
142
143
#endif
/* __X86EMU_PRIM_OPS_H */