5 #ifndef __INTERPRETER_MINTOPS_H
6 #define __INTERPRETER_MINTOPS_H
29 #define OPDEF(a,b,c,d) \
32 #include "mintops.def"
37 #if NO_UNALIGNED_ACCESS
38 # if G_BYTE_ORDER == G_LITTLE_ENDIAN
39 #define READ32(x) (((guint16 *)(x)) [0] | ((guint16 *)(x)) [1] << 16)
40 #define READ64(x) ((guint64)((guint16 *)(x)) [0] | \
41 (guint64)((guint16 *)(x)) [1] << 16 | \
42 (guint64)((guint16 *)(x)) [2] << 32 | \
43 (guint64)((guint16 *)(x)) [3] << 48)
45 #define READ32(x) (((guint16 *)(x)) [0] << 16 | ((guint16 *)(x)) [1])
46 #define READ64(x) ((guint64)((guint16 *)(x)) [0] << 48 | \
47 (guint64)((guint16 *)(x)) [1] << 32 | \
48 (guint64)((guint16 *)(x)) [2] << 16 | \
49 (guint64)((guint16 *)(x)) [3])
51 #else /* unaligned access OK */
52 #define READ32(x) (*(guint32 *)(x))
53 #define READ64(x) (*(guint64 *)(x))
56 extern const char *mono_interp_opname[];
57 extern unsigned char mono_interp_oplen[];
58 extern MintOpArgType mono_interp_opargtype[];
59 extern const guint16 *mono_interp_dis_mintop(const unsigned short *base, const guint16 *ip);