Moved creation of ia32_LdTls into common transformer.
authorSebastian Buchwald <Sebastian.Buchwald@kit.edu>
Tue, 19 Aug 2008 11:11:29 +0000 (11:11 +0000)
committerSebastian Buchwald <Sebastian.Buchwald@kit.edu>
Tue, 19 Aug 2008 11:11:29 +0000 (11:11 +0000)
[r21255]

ir/be/ia32/ia32_common_transform.c
ir/be/ia32/ia32_common_transform.h
ir/be/ia32/ia32_transform.c

index 5245bb9..658d393 100644 (file)
@@ -727,6 +727,31 @@ ir_node *gen_CopyB(ir_node *node) {
        return res;
 }
 
+ir_node *gen_Proj_tls(ir_node *node) {
+       ir_node  *block = NULL;
+       ir_graph *irg   = current_ir_graph;
+       dbg_info *dbgi  = NULL;
+       ir_node  *res   = NULL;
+
+       switch (be_transformer) {
+               case TRANSFORMER_DEFAULT:
+                       block = be_transform_node(get_nodes_block(node));
+                       break;
+
+#ifdef FIRM_GRGEN_BE
+               case TRANSFORMER_PBQP:
+                       block = get_nodes_block(node);
+                       break;
+#endif
+
+               default: panic("invalid transformer");
+       }
+
+       res   = new_rd_ia32_LdTls(dbgi, irg, block, mode_Iu);
+
+       return res;
+}
+
 ir_node *gen_Unknown(ir_node *node)
 {
        ir_mode *mode = get_irn_mode(node);
index 8c1b62c..6334f35 100644 (file)
@@ -91,7 +91,12 @@ ir_node *gen_ASM(ir_node *node);
  *
  * @return The transformed node.
  */
-ir_node *gen_CopyB(ir_node *node) ;
+ir_node *gen_CopyB(ir_node *node);
+
+/**
+ * Transform the Thread Local Storage Proj.
+ */
+ir_node *gen_Proj_tls(ir_node *node);
 
 /**
  * This function just sets the register for the Unknown node
index 594c781..c5efe50 100644 (file)
@@ -4316,18 +4316,6 @@ static ir_node *gen_Proj_Quot(ir_node *node) {
        return new_rd_Unknown(irg, mode);
 }
 
-/**
- * Transform the Thread Local Storage Proj.
- */
-static ir_node *gen_Proj_tls(ir_node *node) {
-       ir_node  *block = be_transform_node(get_nodes_block(node));
-       ir_graph *irg   = current_ir_graph;
-       dbg_info *dbgi  = NULL;
-       ir_node  *res   = new_rd_ia32_LdTls(dbgi, irg, block, mode_Iu);
-
-       return res;
-}
-
 static ir_node *gen_be_Call(ir_node *node) {
        ir_node *res = be_duplicate_node(node);
        be_node_add_flags(res, -1, arch_irn_flags_modify_flags);