2007-07-19 Mark Probst <mark.probst@gmail.com>
[mono.git] / mono / mini / jit-icalls.h
1 #ifndef __MONO_JIT_ICALLS_H__
2 #define __MONO_JIT_ICALLS_H__
3
4 #include <math.h>
5
6 #include "mini.h"
7
8 void* mono_ldftn (MonoMethod *method) MONO_INTERNAL;
9
10 void* mono_ldftn_nosync (MonoMethod *method) MONO_INTERNAL;
11
12 void* mono_ldvirtfn (MonoObject *obj, MonoMethod *method) MONO_INTERNAL;
13
14 void mono_helper_stelem_ref_check (MonoArray *array, MonoObject *val) MONO_INTERNAL;
15
16 gint64 mono_llmult (gint64 a, gint64 b) MONO_INTERNAL;
17
18 guint64 mono_llmult_ovf_un (guint64 a, guint64 b) MONO_INTERNAL;
19
20 guint64 mono_llmult_ovf (gint64 a, gint64 b) MONO_INTERNAL;
21
22 gint32 mono_idiv (gint32 a, gint32 b) MONO_INTERNAL;
23
24 guint32 mono_idiv_un (guint32 a, guint32 b) MONO_INTERNAL;
25
26 gint32 mono_irem (gint32 a, gint32 b) MONO_INTERNAL;
27
28 guint32 mono_irem_un (guint32 a, guint32 b) MONO_INTERNAL;
29
30 gint32 mono_imul (gint32 a, gint32 b) MONO_INTERNAL;
31
32 gint32 mono_imul_ovf (gint32 a, gint32 b) MONO_INTERNAL;
33
34 gint32 mono_imul_ovf_un (guint32 a, guint32 b) MONO_INTERNAL;
35
36 double mono_fdiv (double a, double b) MONO_INTERNAL;
37
38 gint64 mono_lldiv (gint64 a, gint64 b) MONO_INTERNAL;
39
40 gint64 mono_llrem (gint64 a, gint64 b) MONO_INTERNAL;
41
42 guint64 mono_lldiv_un (guint64 a, guint64 b) MONO_INTERNAL;
43
44 guint64 mono_llrem_un (guint64 a, guint64 b) MONO_INTERNAL;
45
46 guint64 mono_lshl (guint64 a, gint32 shamt) MONO_INTERNAL;
47
48 guint64 mono_lshr_un (guint64 a, gint32 shamt) MONO_INTERNAL;
49
50 gint64 mono_lshr (gint64 a, gint32 shamt) MONO_INTERNAL;
51
52 MonoArray *mono_array_new_va (MonoMethod *cm, ...) MONO_INTERNAL;
53
54 gpointer mono_class_static_field_address (MonoDomain *domain, MonoClassField *field) MONO_INTERNAL;
55
56 gpointer mono_ldtoken_wrapper (MonoImage *image, int token, MonoGenericContext *context) MONO_INTERNAL;
57
58 guint64 mono_fconv_u8 (double v) MONO_INTERNAL;
59
60 gint64 mono_fconv_i8 (double v) MONO_INTERNAL;
61
62 guint32 mono_fconv_u4 (double v) MONO_INTERNAL;
63
64 gint64 mono_fconv_ovf_i8 (double v) MONO_INTERNAL;
65
66 guint64 mono_fconv_ovf_u8 (double v) MONO_INTERNAL;
67
68 double mono_lconv_to_r8 (gint64 a) MONO_INTERNAL;
69
70 double mono_conv_to_r8 (gint32 a) MONO_INTERNAL;
71
72 double mono_conv_to_r4 (gint32 a) MONO_INTERNAL;
73
74 float mono_lconv_to_r4 (gint64 a) MONO_INTERNAL;
75
76 double mono_conv_to_r8_un (guint32 a) MONO_INTERNAL;
77
78 double mono_lconv_to_r8_un (guint64 a) MONO_INTERNAL;
79
80 gpointer mono_helper_compile_generic_method (MonoObject *obj, MonoMethod *method, MonoGenericContext *context, gpointer *this_arg) MONO_INTERNAL;
81
82 MonoString *mono_helper_ldstr (MonoImage *image, guint32 idx) MONO_INTERNAL;
83
84 MonoString *mono_helper_ldstr_mscorlib (guint32 idx) MONO_INTERNAL;
85
86 MonoObject *mono_helper_newobj_mscorlib (guint32 idx) MONO_INTERNAL;
87
88 double mono_fsub (double a, double b) MONO_INTERNAL;
89
90 double mono_fadd (double a, double b) MONO_INTERNAL;
91
92 double mono_fmul (double a, double b) MONO_INTERNAL;
93
94 double mono_fneg (double a) MONO_INTERNAL;
95
96 double mono_fconv_r4 (double a) MONO_INTERNAL;
97
98 gint8 mono_fconv_i1 (double a) MONO_INTERNAL;
99
100 gint16 mono_fconv_i2 (double a) MONO_INTERNAL;
101
102 gint32 mono_fconv_i4 (double a) MONO_INTERNAL;
103
104 guint8 mono_fconv_u1 (double a) MONO_INTERNAL;
105
106 guint16 mono_fconv_u2 (double a) MONO_INTERNAL;
107
108 gboolean mono_fcmp_eq (double a, double b) MONO_INTERNAL;
109
110 gboolean mono_fcmp_ge (double a, double b) MONO_INTERNAL;
111
112 gboolean mono_fcmp_gt (double a, double b) MONO_INTERNAL;
113
114 gboolean mono_fcmp_le (double a, double b) MONO_INTERNAL;
115
116 gboolean mono_fcmp_lt (double a, double b) MONO_INTERNAL;
117
118 gboolean mono_fcmp_ne_un (double a, double b) MONO_INTERNAL;
119
120 gboolean mono_fcmp_ge_un (double a, double b) MONO_INTERNAL;
121
122 gboolean mono_fcmp_gt_un (double a, double b) MONO_INTERNAL;
123
124 gboolean mono_fcmp_le_un (double a, double b) MONO_INTERNAL;
125
126 gboolean mono_fcmp_lt_un (double a, double b) MONO_INTERNAL;
127
128 gboolean mono_fceq (double a, double b) MONO_INTERNAL;
129
130 gboolean mono_fcgt (double a, double b) MONO_INTERNAL;
131
132 gboolean mono_fcgt_un (double a, double b) MONO_INTERNAL;
133
134 gboolean mono_fclt (double a, double b) MONO_INTERNAL;
135
136 gboolean mono_fclt_un (double a, double b) MONO_INTERNAL;
137
138 double   mono_fload_r4 (float *ptr);
139
140 void     mono_fstore_r4 (double val, float *ptr);
141
142 guint32  mono_fload_r4_arg (double val);
143
144 #endif /* __MONO_JIT_ICALLS_H__ */
145