1 #ifndef __INTERPRETER_MINTOPS_H
2 #define __INTERPRETER_MINTOPS_H
25 #define OPDEF(a,b,c,d) \
28 #include "mintops.def"
33 #if NO_UNALIGNED_ACCESS
34 # if G_BYTE_ORDER == G_LITTLE_ENDIAN
35 #define READ32(x) (((guint16 *)(x)) [0] | ((guint16 *)(x)) [1] << 16)
36 #define READ64(x) ((guint64)((guint16 *)(x)) [0] | \
37 (guint64)((guint16 *)(x)) [1] << 16 | \
38 (guint64)((guint16 *)(x)) [2] << 32 | \
39 (guint64)((guint16 *)(x)) [3] << 48)
41 #define READ32(x) (((guint16 *)(x)) [0] << 16 | ((guint16 *)(x)) [1])
42 #define READ64(x) ((guint64)((guint16 *)(x)) [0] << 48 | \
43 (guint64)((guint16 *)(x)) [1] << 32 | \
44 (guint64)((guint16 *)(x)) [2] << 16 | \
45 (guint64)((guint16 *)(x)) [3])
47 #else /* unaligned access OK */
48 #define READ32(x) (*(guint32 *)(x))
49 #define READ64(x) (*(guint64 *)(x))
52 extern const char *mono_interp_opname
[];
53 extern unsigned char mono_interp_oplen
[];
54 extern MintOpArgType mono_interp_opargtype
[];
55 extern const guint16
*mono_interp_dis_mintop(const unsigned short *base
, const guint16
*ip
);