]> git.sur5r.net Git - cc65/blobdiff - src/cc65/funcdesc.h
Wrapper functions use all registers
[cc65] / src / cc65 / funcdesc.h
index 7186c3ee88fbdec7a99d5dfe1857a50a6b162d34..a04ffb14a4bf037395bfe7e22083646318e7599f 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                               funcdesc.h                                 */
+/*                                funcdesc.h                                 */
 /*                                                                           */
-/*          Function descriptor structure for the cc65 C compiler           */
+/*           Function descriptor structure for the cc65 C compiler           */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
 
 
 /*****************************************************************************/
-/*                             struct FuncDesc                              */
+/*                              struct FuncDesc                              */
 /*****************************************************************************/
 
 
 
 /* Masks for the Flags field in FuncDesc */
-#define FD_NONE                        0x0000U /* No flags                          */
-#define FD_EMPTY                       0x0001U /* Function with empty param list    */
-#define FD_VOID_PARAM          0x0002U /* Function with a void param list   */
-#define FD_VARIADIC            0x0004U /* Function with variable param list */
-#define FD_OLDSTYLE                    0x0010U /* Old style (K&R) function          */
-#define FD_OLDSTYLE_INTRET     0x0020U /* K&R func has implicit int return  */
-#define FD_UNNAMED_PARAMS              0x0040U /* Function has unnamed params       */
+#define FD_NONE                 0x0000U /* No flags                          */
+#define FD_EMPTY                0x0001U /* Function with empty param list    */
+#define FD_VOID_PARAM           0x0002U /* Function with a void param list   */
+#define FD_VARIADIC             0x0004U /* Function with variable param list */
+#define FD_OLDSTYLE             0x0010U /* Old style (K&R) function          */
+#define FD_OLDSTYLE_INTRET      0x0020U /* K&R func has implicit int return  */
+#define FD_UNNAMED_PARAMS       0x0040U /* Function has unnamed params       */
+#define FD_CALL_WRAPPER         0x0080U /* This function is used as a wrapper */
 
 /* Bits that must be ignored when comparing funcs */
-#define FD_IGNORE       (FD_OLDSTYLE | FD_OLDSTYLE_INTRET | FD_UNNAMED_PARAMS)
+#define FD_IGNORE       (FD_OLDSTYLE | FD_OLDSTYLE_INTRET | FD_UNNAMED_PARAMS | FD_CALL_WRAPPER)
 
 
 
 /* Function descriptor */
 typedef struct FuncDesc FuncDesc;
 struct FuncDesc {
-    unsigned           Flags;          /* Bitmapped flags FD_...            */
-    struct SymTable*   SymTab;         /* Symbol table                      */
-    struct SymTable*           TagTab;         /* Symbol table for structs/enums    */
-    unsigned           ParamCount;     /* Number of parameters              */
-    unsigned           ParamSize;      /* Size of the parameters            */
-    struct SymEntry*   LastParam;      /* Pointer to last parameter         */
+    unsigned            Flags;          /* Bitmapped flags FD_...            */
+    struct SymTable*    SymTab;         /* Symbol table                      */
+    struct SymTable*    TagTab;         /* Symbol table for structs/enums    */
+    unsigned            ParamCount;     /* Number of parameters              */
+    unsigned            ParamSize;      /* Size of the parameters            */
+    struct SymEntry*    LastParam;      /* Pointer to last parameter         */
+    struct SymEntry*    WrappedCall;    /* Pointer to the WrappedCall        */
+    unsigned char       WrappedCallData;/* The WrappedCall's user data       */
 };
 
 
 
 /*****************************************************************************/
-/*                                  Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
@@ -86,7 +89,5 @@ void FreeFuncDesc (FuncDesc* D);
 
 
 /* End of funcdesc.h */
-#endif
-
-
 
+#endif