2005-12-12 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / mini.h
index 0585fb360fe5cbeba9b7fd0b82e1578be999a27f..c61cf21b82339a61a03a66ffa32e529bbb1da42e 100644 (file)
@@ -84,6 +84,11 @@ enum {
                (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);   \
@@ -95,6 +100,7 @@ enum {
 
 typedef struct MonoInst MonoInst;
 typedef struct MonoCallInst MonoCallInst;
+typedef struct MonoCallArgParm MonoCallArgParm;
 typedef struct MonoEdge MonoEdge;
 typedef struct MonoMethodVar MonoMethodVar;
 typedef struct MonoBasicBlock MonoBasicBlock;
@@ -285,6 +291,13 @@ struct MonoCallInst {
 #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