array: Add and use NEW_ARR_DZ().
[libfirm] / ir / be / bedwarf.h
index a795f60..49f4cc4 100644 (file)
 
 #include "beabi.h"
 
+typedef struct parameter_dbg_info_t {
+       const ir_entity       *entity;
+       const arch_register_t *reg;
+} parameter_dbg_info_t;
+
 /** initialize and open debug handle */
 void be_dwarf_open(void);
 
@@ -39,8 +44,12 @@ void be_dwarf_unit_begin(const char *filename);
 /** end compilation unit */
 void be_dwarf_unit_end(void);
 
-/** debug for a method begin */
-void be_dwarf_method_begin(const ir_entity *ent);
+/** output debug info necessary right before defining a method */
+void be_dwarf_method_before(const ir_entity *ent,
+                            const parameter_dbg_info_t *infos);
+
+/** output debug info right before beginning to output assembly instructions */
+void be_dwarf_method_begin(void);
 
 /** debug for a method end */
 void be_dwarf_method_end(void);
@@ -52,4 +61,19 @@ void be_dwarf_variable(const ir_entity *ent);
  * assembly instructions */
 void be_dwarf_location(dbg_info *dbgi);
 
+/** set base register that points to callframe */
+void be_dwarf_callframe_register(const arch_register_t *reg);
+
+/** set offset from base register that points to the callframe.
+ * Note: callframe is defined as in the dwarf documentation here which is the
+ * stackpointer before the call has happened. (Which would be the beginning of
+ * the between type in our backend) */
+void be_dwarf_callframe_offset(int offset);
+
+/**
+ * Indicate at which offset (relative to the CFA) a caller saved register has
+ * been saved.
+ */
+void be_dwarf_callframe_spilloffset(const arch_register_t *reg, int offset);
+
 #endif