(dest)->inst.opcode = (op); \
} while (0)
+#define MONO_INST_NEW_CALL_ARG(cfg,dest,op) do { \
+ (dest) = mono_mempool_alloc0 ((cfg)->mempool, sizeof (MonoCallArgParm)); \
+ (dest)->ins.opcode = (op); \
+ } while (0)
+
#define MONO_ADD_INS(b,inst) do { \
if ((b)->last_ins) { \
(b)->last_ins->next = (inst); \
typedef struct MonoInst MonoInst;
typedef struct MonoCallInst MonoCallInst;
+typedef struct MonoCallArgParm MonoCallArgParm;
typedef struct MonoEdge MonoEdge;
typedef struct MonoMethodVar MonoMethodVar;
typedef struct MonoBasicBlock MonoBasicBlock;
#endif
};
+struct MonoCallArgParm {
+ MonoInst ins;
+ gint32 size;
+ gint32 offset;
+ gint32 offPrm;
+};
+
/*
* flags for MonoInst
* Note: some of the values overlap, because they can't appear