updated for new hooks
[libfirm] / ir / st / exc.h
index 9ab6910..826b270 100644 (file)
@@ -1,19 +1,23 @@
-/* Copyright (c) 2002 by Universität Karlsruhe (TH).  All Rights Reserved */
 /*
-** Time-stamp: <Friday, 26.07.2002 15:43:30h liekweg@i44pc11.info.uni-karlsruhe.de>
-*/
+ * Project:     libFIRM
+ * File name:   ir/st/exc.h
+ * Purpose:     Helper functions for jack exceptions.
+ * Author:      Florian Liekweg
+ * Modified by:
+ * Created:     4.3.2002
+ * CVS-ID:      $Id$
+ * Copyright:   (c) 2002-2003 Universität Karlsruhe
+ * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ */
 
-/***
+
+/**
    NAME
      exc
    PURPOSE
      Helper functions for exceptions
-   NOTES
+   S
      not quite complete
-   HISTORY
-     liekweg - Mar 4, 2002: Created.
-   CVS:
-     $Id$
 ***/
 
 # include "irnode.h"
 # include "irop.h"
 # include "irouts.h"
 
-# include <bool.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+       extern "C" {
+#endif
 
 typedef enum {
   exc_invalid = 0,                                     /* not yet computed */
@@ -43,6 +51,8 @@ typedef enum {
   exc_max                                              /* maximum value of enum for 'bounds checking' */
 } exc_t;
 
+
+
 const char *exc_to_string (exc_t);
 
 bool is_handler_entry (ir_graph*, ir_node*);
@@ -50,5 +60,21 @@ bool is_region_entry  (ir_graph*, ir_node*);
 bool is_handler_block (ir_graph*, ir_node*);
 bool is_cont_entry    (ir_graph*, ir_node*);
 
+void     set_Block_exc     (ir_node*, exc_t);
+exc_t    get_Block_exc     (ir_node*);
+
+void     set_Node_exc      (ir_node*, exc_t);
+exc_t    get_Node_exc      (ir_node*);
+
+/* handler handling  @@@ ajacs specific -- not supported  */
+void     set_Block_handler (ir_node*, ir_node*);
+ir_node* get_Block_handler (ir_node*);
+
+void     set_Node_handler  (ir_node*, ir_node*);
+ir_node* get_Node_handler  (ir_node*);
+
+#ifdef __cplusplus
+}
+#endif
 
 # endif /* def _EXC_H_ */