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
|
#ifndef __MONO_JIT_ICALLS_H__
#define __MONO_JIT_ICALLS_H__
#include <math.h>
#include "mini.h"
void* mono_ldftn (MonoMethod *method);
void* mono_ldvirtfn (MonoObject *obj, MonoMethod *method);
void* mono_ldvirtfn_gshared (MonoObject *obj, MonoMethod *method);
void mono_helper_stelem_ref_check (MonoArray *array, MonoObject *val);
gint64 mono_llmult (gint64 a, gint64 b);
guint64 mono_llmult_ovf_un (guint64 a, guint64 b);
guint64 mono_llmult_ovf (gint64 a, gint64 b);
gint32 mono_idiv (gint32 a, gint32 b);
guint32 mono_idiv_un (guint32 a, guint32 b);
gint32 mono_irem (gint32 a, gint32 b);
guint32 mono_irem_un (guint32 a, guint32 b);
gint32 mono_imul (gint32 a, gint32 b);
gint32 mono_imul_ovf (gint32 a, gint32 b);
gint32 mono_imul_ovf_un (guint32 a, guint32 b);
double mono_fdiv (double a, double b);
gint64 mono_lldiv (gint64 a, gint64 b);
gint64 mono_llrem (gint64 a, gint64 b);
guint64 mono_lldiv_un (guint64 a, guint64 b);
guint64 mono_llrem_un (guint64 a, guint64 b);
guint64 mono_lshl (guint64 a, gint32 shamt);
guint64 mono_lshr_un (guint64 a, gint32 shamt);
gint64 mono_lshr (gint64 a, gint32 shamt);
MonoArray *mono_array_new_va (MonoMethod *cm, ...);
MonoArray *mono_array_new_1 (MonoMethod *cm, guint32 length);
MonoArray *mono_array_new_2 (MonoMethod *cm, guint32 length1, guint32 length2);
MonoArray *mono_array_new_3 (MonoMethod *cm, guint32 length1, guint32 length2, guint32 length3);
MonoArray *mono_array_new_4 (MonoMethod *cm, guint32 length1, guint32 length2, guint32 length3, guint32 length4);
gpointer mono_class_static_field_address (MonoDomain *domain, MonoClassField *field);
gpointer mono_ldtoken_wrapper (MonoImage *image, int token, MonoGenericContext *context);
gpointer mono_ldtoken_wrapper_generic_shared (MonoImage *image, int token, MonoMethod *method);
guint64 mono_fconv_u8 (double v);
guint64 mono_rconv_u8 (float v);
gint64 mono_fconv_i8 (double v);
guint32 mono_fconv_u4 (double v);
gint64 mono_fconv_ovf_i8 (double v);
guint64 mono_fconv_ovf_u8 (double v);
gint64 mono_rconv_i8 (float v);
gint64 mono_rconv_ovf_i8 (float v);
guint64 mono_rconv_ovf_u8 (float v);
double mono_lconv_to_r8 (gint64 a);
double mono_conv_to_r8 (gint32 a);
double mono_conv_to_r4 (gint32 a);
float mono_lconv_to_r4 (gint64 a);
double mono_conv_to_r8_un (guint32 a);
double mono_lconv_to_r8_un (guint64 a);
#if defined(__native_client_codegen__) || defined(__native_client__)
double mono_fmod(double a, double b);
#endif
gpointer mono_helper_compile_generic_method (MonoObject *obj, MonoMethod *method, gpointer *this_arg);
MonoString*
ves_icall_mono_ldstr (MonoDomain *domain, MonoImage *image, guint32 idx);
MonoString *mono_helper_ldstr (MonoImage *image, guint32 idx);
MonoString *mono_helper_ldstr_mscorlib (guint32 idx);
MonoObject *mono_helper_newobj_mscorlib (guint32 idx);
double mono_fsub (double a, double b);
double mono_fadd (double a, double b);
double mono_fmul (double a, double b);
double mono_fneg (double a);
double mono_fconv_r4 (double a);
gint8 mono_fconv_i1 (double a);
gint16 mono_fconv_i2 (double a);
gint32 mono_fconv_i4 (double a);
guint8 mono_fconv_u1 (double a);
guint16 mono_fconv_u2 (double a);
gboolean mono_fcmp_eq (double a, double b);
gboolean mono_fcmp_ge (double a, double b);
gboolean mono_fcmp_gt (double a, double b);
gboolean mono_fcmp_le (double a, double b);
gboolean mono_fcmp_lt (double a, double b);
gboolean mono_fcmp_ne_un (double a, double b);
gboolean mono_fcmp_ge_un (double a, double b);
gboolean mono_fcmp_gt_un (double a, double b);
gboolean mono_fcmp_le_un (double a, double b);
gboolean mono_fcmp_lt_un (double a, double b);
gboolean mono_fceq (double a, double b);
gboolean mono_fcgt (double a, double b);
gboolean mono_fcgt_un (double a, double b);
gboolean mono_fclt (double a, double b);
gboolean mono_fclt_un (double a, double b);
gboolean mono_isfinite (double a);
double mono_fload_r4 (float *ptr);
void mono_fstore_r4 (double val, float *ptr);
guint32 mono_fload_r4_arg (double val);
void mono_break (void);
MonoException *mono_create_corlib_exception_0 (guint32 token);
MonoException *mono_create_corlib_exception_1 (guint32 token, MonoString *arg);
MonoException *mono_create_corlib_exception_2 (guint32 token, MonoString *arg1, MonoString *arg2);
MonoObject* mono_object_castclass_unbox (MonoObject *obj, MonoClass *klass);
gpointer mono_get_native_calli_wrapper (MonoImage *image, MonoMethodSignature *sig, gpointer func);
MonoObject*
mono_object_isinst_with_cache (MonoObject *obj, MonoClass *klass, gpointer *cache);
MonoObject*
mono_object_castclass_with_cache (MonoObject *obj, MonoClass *klass, gpointer *cache);
void
ves_icall_runtime_class_init (MonoVTable *vtable);
void
mono_generic_class_init (MonoVTable *vtable);
void
ves_icall_mono_delegate_ctor (MonoObject *this_obj, MonoObject *target, gpointer addr);
MonoObject*
mono_gsharedvt_constrained_call (gpointer mp, MonoMethod *cmethod, MonoClass *klass, gboolean deref_arg, gpointer *args);
void mono_gsharedvt_value_copy (gpointer dest, gpointer src, MonoClass *klass);
gpointer mono_fill_class_rgctx (MonoVTable *vtable, int index);
gpointer mono_fill_method_rgctx (MonoMethodRuntimeGenericContext *mrgctx, int index);
gpointer mono_resolve_iface_call_gsharedvt (MonoObject *this_obj, int imt_slot, MonoMethod *imt_method, gpointer *out_arg);
gpointer mono_resolve_vcall_gsharedvt (MonoObject *this_obj, int imt_slot, MonoMethod *imt_method, gpointer *out_arg);
MonoFtnDesc* mono_resolve_generic_virtual_call (MonoVTable *vt, int slot, MonoMethod *imt_method);
MonoFtnDesc* mono_resolve_generic_virtual_iface_call (MonoVTable *vt, int imt_slot, MonoMethod *imt_method);
gpointer mono_init_vtable_slot (MonoVTable *vtable, int slot);
void mono_llvmonly_init_delegate (MonoDelegate *del);
void mono_llvmonly_init_delegate_virtual (MonoDelegate *del, MonoObject *target, MonoMethod *method);
MonoObject* mono_get_assembly_object (MonoImage *image);
MonoObject* mono_get_method_object (MonoMethod *method);
double mono_ckfinite (double d);
void mono_throw_method_access (MonoMethod *callee, MonoMethod *caller);
void mono_dummy_jit_icall (void);
#endif /* __MONO_JIT_ICALLS_H__ */
|