Merge pull request #1548 from akoeplinger/stubs
[mono.git] / mono / mini / mini.h
index 5f02bc56e1ad707a1165c1ac4fda0781a4fc3d22..1e789fbddcf6abf6e753698f47d22f1434818ac4 100755 (executable)
@@ -704,13 +704,28 @@ typedef enum {
        LLVMArgVtypeByVal,
        LLVMArgVtypeRetAddr, /* On on cinfo->ret */
        LLVMArgGSharedVt,
+       /* Vtype passed as one int array argument */
+       LLVMArgAsIArgs,
+       /* Vtype passed as a set of fp arguments */
+       LLVMArgAsFpArgs
 } LLVMArgStorage;
 
 typedef struct {
        LLVMArgStorage storage;
 
-       /* Only if storage == ArgValuetypeInReg */
-       LLVMArgStorage pair_storage [2];
+       /*
+        * Only if storage == ArgValuetypeInReg/LLVMArgAsFpArgs.
+        * This contains how the parts of the vtype are passed.
+        */
+       LLVMArgStorage pair_storage [8];
+       /*
+        * Only if storage == LLVMArgAsIArgs/LLVMArgAsFpArgs.
+        * If storage == LLVMArgAsFpArgs, this is the number of arguments
+        * used to pass the value.
+        */
+       int nslots;
+       /* Only if storage == LLVMArgAsFpArgs (4/8) */
+       int esize;
 } LLVMArgInfo;
 
 typedef struct {