added callbacks and adapted interfaces for abstract machine specification
authorChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Thu, 2 Nov 2006 09:30:04 +0000 (09:30 +0000)
committerChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Thu, 2 Nov 2006 09:30:04 +0000 (09:30 +0000)
ir/be/arm/arm_new_nodes.c
ir/be/arm/arm_new_nodes.h
ir/be/arm/bearch_arm.c
ir/be/firm/bearch_firm.c
ir/be/mips/bearch_mips.c
ir/be/mips/mips_new_nodes.c
ir/be/mips/mips_new_nodes.h
ir/be/ppc32/bearch_ppc32.c
ir/be/ppc32/ppc32_new_nodes.c
ir/be/ppc32/ppc32_new_nodes.h

index e1a5b7a..c8bb884 100644 (file)
@@ -499,7 +499,7 @@ arm_shift_modifier get_arm_shift_modifier(ir_node *node) {
 
 /* Set the ARM machine node attributes to default values. */
 void init_arm_attributes(ir_node *node, int flags, const arm_register_req_t ** in_reqs,
-                                                const arm_register_req_t ** out_reqs, const be_execution_unit_t **execution_units,
+                                                const arm_register_req_t ** out_reqs, const be_execution_unit_t ***execution_units,
                                                 int n_res, unsigned latency) {
        arm_attr_t *attr = get_arm_attr(node);
        attr->in_req           = in_reqs;
index 497d109..e453f09 100644 (file)
@@ -8,7 +8,6 @@
 
 #include "arm_nodes_attr.h"
 #include "bearch_arm_t.h"
-#include "gen_arm_machine.h"
 
 /***************************************************************************************************
  *        _   _                   _       __        _                    _   _               _
@@ -105,7 +104,7 @@ int get_arm_n_res(const ir_node *node);
  * Set the ARM machine node attributes to default values.
  */
 void init_arm_attributes(ir_node *node, int flags, const arm_register_req_t ** in_reqs,
-                         const arm_register_req_t ** out_reqs, const be_execution_unit_t **execution_units, int n_res, unsigned latency);
+                         const arm_register_req_t ** out_reqs, const be_execution_unit_t ***execution_units, int n_res, unsigned latency);
 
 /**
  * Returns the tarval
index 2ba456b..78ccaad 100644 (file)
@@ -27,6 +27,7 @@
 #include "../besched_t.h"
 #include "../be.h"
 #include "../beabi.h"
+#include "../bemachine.h"
 
 #include "bearch_arm_t.h"
 
@@ -1074,6 +1075,18 @@ static int arm_get_reg_class_alignment(const void *self, const arch_register_cla
        return get_mode_size_bytes(mode);
 }
 
+static const be_execution_unit_t ***arm_get_allowed_execution_units(const void *self, const ir_node *irn) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
+static const be_machine_t *arm_get_machine(const void *self) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
 /**
  * Returns the libFirm configuration parameter for this backend.
  */
@@ -1148,6 +1161,8 @@ const arch_isa_if_t arm_isa_if = {
        arm_get_list_sched_selector,
        arm_get_reg_class_alignment,
        arm_get_libfirm_params,
+       arm_get_allowed_execution_units,
+       arm_get_machine,
 #ifdef WITH_LIBCORE
        arm_register_options
 #endif
index 4d54676..f940b56 100644 (file)
@@ -610,6 +610,18 @@ static int firm_get_reg_class_alignment(const void *self, const arch_register_cl
        return get_mode_size_bytes(mode);
 }
 
+static const be_execution_unit_t ***firm_get_allowed_execution_units(const void *self, const ir_node *irn) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
+static const be_machine_t *firm_get_machine(const void *self) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
 /**
  * Returns the libFirm configuration parameter for this backend.
  */
@@ -652,6 +664,8 @@ const arch_isa_if_t firm_isa = {
        firm_get_list_sched_selector,
        firm_get_reg_class_alignment,
        firm_get_libfirm_params,
+       firm_get_allowed_execution_units,
+       firm_get_machine,
 #ifdef WITH_LIBCORE
        firm_register_options,
 #endif
index e7eb08c..a2ce576 100644 (file)
@@ -26,6 +26,7 @@
 #include "../besched_t.h"
 #include "../be.h"
 #include "../beabi.h"
+#include "../bemachine.h"
 
 #include "bearch_mips_t.h"
 
@@ -930,6 +931,18 @@ static int mips_get_reg_class_alignment(const void *self, const arch_register_cl
        return get_mode_size_bytes(mode);
 }
 
+static const be_execution_unit_t ***mips_get_allowed_execution_units(const void *self, const ir_node *irn) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
+static const be_machine_t *mips_get_machine(const void *self) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
 /**
  * Returns the libFirm configuration parameter for this backend.
  */
@@ -972,6 +985,8 @@ const arch_isa_if_t mips_isa_if = {
        mips_get_list_sched_selector,
        mips_get_reg_class_alignment,
        mips_get_libfirm_params,
+       mips_get_allowed_execution_units,
+       mips_get_machine,
 #ifdef WITH_LIBCORE
        mips_register_options
 #endif
index 3b5473b..8522ed1 100644 (file)
@@ -387,7 +387,8 @@ int get_mips_n_res(const ir_node *node) {
  * Initializes the nodes attributes.
  */
 void init_mips_attributes(ir_node *node, arch_irn_flags_t flags, const mips_register_req_t **in_reqs,
-                                                  const mips_register_req_t **out_reqs, const be_execution_unit_t **execution_units,
+                                                  const mips_register_req_t **out_reqs,
+                                                                                                 const be_execution_unit_t ***execution_units,
                                                                                                  int n_res, unsigned latency)
 {
        mips_attr_t *attr = get_mips_attr(node);
index 39721d5..370f23e 100644 (file)
@@ -7,7 +7,6 @@
  */
 
 #include "mips_nodes_attr.h"
-#include "gen_mips_machine.h"
 
 /***************************************************************************************************
  *        _   _                   _       __        _                    _   _               _
@@ -100,7 +99,7 @@ int get_mips_n_res(const ir_node *node);
  * Initializes the nodes attributes.
  */
 void init_mips_attributes(ir_node *node, arch_irn_flags_t flags, const mips_register_req_t **in_reqs,
-        const mips_register_req_t **out_reqs, const be_execution_unit_t **execution_units, int n_res, unsigned latency);
+        const mips_register_req_t **out_reqs, const be_execution_unit_t ***execution_units, int n_res, unsigned latency);
 
 /**
  * Initialize transform ops for the mips opcodes
index 6dd6b78..2fca423 100644 (file)
@@ -22,6 +22,7 @@
 #include "../besched_t.h"
 #include "../be.h"
 #include "../beabi.h"
+#include "../bemachine.h"
 
 #include "pset.h"
 
@@ -864,6 +865,18 @@ static int ppc32_get_reg_class_alignment(const void *self, const arch_register_c
        return get_mode_size_bytes(mode);
 }
 
+static const be_execution_unit_t ***ppc32_get_allowed_execution_units(const void *self, const ir_node *irn) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
+static const be_machine_t *ppc32_get_machine(const void *self) {
+       /* TODO */
+       assert(0);
+       return NULL;
+}
+
 /**
  * Returns the libFirm configuration parameter for this backend.
  */
@@ -906,6 +919,8 @@ const arch_isa_if_t ppc32_isa_if = {
        ppc32_get_list_sched_selector,
        ppc32_get_reg_class_alignment,
        ppc32_get_libfirm_params,
+       ppc32_get_allowed_execution_units,
+       ppc32_get_machine,
 #ifdef WITH_LIBCORE
        ppc32_register_options
 #endif
index d4411d6..70f3d68 100644 (file)
@@ -514,7 +514,7 @@ ppc32_attr_offset_mode get_ppc32_offset_mode(const ir_node *node) {
  */
 void init_ppc32_attributes(ir_node *node, int flags,
                                                 const ppc32_register_req_t **in_reqs, const ppc32_register_req_t **out_reqs,
-                                                const be_execution_unit_t **execution_units,
+                                                const be_execution_unit_t ***execution_units,
                                                 int n_res, unsigned latency) {
        ppc32_attr_t *attr = get_ppc32_attr(node);
 
index a910e0f..326e842 100644 (file)
@@ -7,7 +7,6 @@
  */
 
 #include "ppc32_nodes_attr.h"
-#include "gen_ppc32_machine.h"
 
 /***************************************************************************************************
  *        _   _                   _       __        _                    _   _               _
@@ -120,7 +119,7 @@ ppc32_attr_offset_mode get_ppc32_offset_mode(const ir_node *node);
 
 void init_ppc32_attributes(ir_node *node, int flags,
                                                 const ppc32_register_req_t **in_reqs, const ppc32_register_req_t **out_reqs,
-                                                const be_execution_unit_t **execution_units,
+                                                const be_execution_unit_t ***execution_units,
                                                 int n_res, unsigned latency);
 
 void ppc32_register_additional_opcodes(int opcode_num);