Remove arch_get_allocatable_regs().
[libfirm] / ir / be / mips / mips_spec.pl
index e93e2be..2cc8789 100644 (file)
@@ -21,11 +21,19 @@ $new_emit_syntax = 1;
 #                    { "type" => "type 2", "name" => "name 2" },
 #                    ...
 #                  ],
-#   "comment"   => "any comment for constructor",
+#   comment   => "any comment for constructor",
 #   reg_req   => { in => [ "reg_class|register" ], out => [ "reg_class|register|in_rX" ] },
-#   "cmp_attr"  => "c source code for comparing node attributes",
+#   cmp_attr  => "c source code for comparing node attributes",
+#   outs      => { "out1", "out2" } # optional, creates pn_op_out1, ... consts
+#   ins       => { "in1", "in2" }   # optional, creates n_op_in1, ... consts
+#   mode      => "mode_Iu"          # optional, predefines the mode
 #   emit      => "emit code with templates",
-#   "rd_constructor" => "c source code which constructs an ir_node"
+#   attr      => "attitional attribute arguments for constructor",
+#   init_attr => "emit attribute initialization template",
+#   rd_constructor => "c source code which constructs an ir_node",
+#   hash_func => "name of the hash function for this operation",
+#   latency   => "latency of this operation (can be float)"
+#   attr_type => "name of the attribute struct",
 # },
 #
 # ... # (all nodes you need to describe)
@@ -89,7 +97,7 @@ $new_emit_syntax = 1;
 # NOTE: Last entry of each class is the largest Firm-Mode a register can hold\
 %reg_classes = (
        "gp" => [
-               { name => "zero", type => 4+2 },  # always zero
+               { name => "zero", type => 4 },  # always zero
                { name => "at", type => 4 }, # reserved for assembler
                { name => "v0", realname => "2", type => 1 }, # first return value
                { name => "v1", realname => "3", type => 1 }, # second return value
@@ -127,19 +135,19 @@ $new_emit_syntax = 1;
 ); # %reg_classes
 
 %emit_templates = (
-    S0  => "${arch}_emit_source_register(env, node, 0);",
-    S1  => "${arch}_emit_source_register(env, node, 1);",
-    S2  => "${arch}_emit_source_register(env, node, 2);",
-       SI1 => "${arch}_emit_source_register_or_immediate(env, node, 1);",
-    D0  => "${arch}_emit_dest_register(env, node, 0);",
-    D1  => "${arch}_emit_dest_register(env, node, 1);",
-    D2  => "${arch}_emit_dest_register(env, node, 2);",
-       A0  => "${arch}_emit_load_store_address(env, node, 0);",
-       I   => "${arch}_emit_immediate_suffix(env, node, 1);",
-       C   => "${arch}_emit_immediate(env, node);",
-       JumpTarget => "${arch}_emit_jump_target(env, node);",
-       JumpTarget1 => "${arch}_emit_jump_target_proj(env, node, 1);",
-       JumpOrFallthrough => "${arch}_emit_jump_or_fallthrough(env, node, 0);",
+    S0  => "${arch}_emit_source_register(node, 0);",
+    S1  => "${arch}_emit_source_register(node, 1);",
+    S2  => "${arch}_emit_source_register(node, 2);",
+       SI1 => "${arch}_emit_source_register_or_immediate(node, 1);",
+    D0  => "${arch}_emit_dest_register(node, 0);",
+    D1  => "${arch}_emit_dest_register(node, 1);",
+    D2  => "${arch}_emit_dest_register(node, 2);",
+       A0  => "${arch}_emit_load_store_address(node, 0);",
+       I   => "${arch}_emit_immediate_suffix(node, 1);",
+       C   => "${arch}_emit_immediate(node);",
+       JumpTarget => "${arch}_emit_jump_target(node);",
+       JumpTarget1 => "${arch}_emit_jump_target_proj(node, 1);",
+       JumpOrFallthrough => "${arch}_emit_jump_or_fallthrough(node, 0);",
 );
 
 $default_attr_type = "mips_attr_t";
@@ -148,12 +156,12 @@ $default_copy_attr = "mips_copy_attr";
 $mode_gp = "mode_Iu";
 
 %init_attr = (
-       mips_attr_t            => "\tinit_mips_attributes(res, flags, in_reqs, out_reqs, exec_units, n_res, latency);",
+       mips_attr_t            => "\tinit_mips_attributes(res, flags, in_reqs, out_reqs, exec_units, n_res);",
 
-       mips_immediate_attr_t  => "\tinit_mips_attributes(res, flags, in_reqs, out_reqs, exec_units, n_res, latency);\n".
+       mips_immediate_attr_t  => "\tinit_mips_attributes(res, flags, in_reqs, out_reqs, exec_units, n_res);\n".
                                 "\tinit_mips_immediate_attributes(res, imm_type, entity, val);",
 
-       mips_load_store_attr_t => "\tinit_mips_attributes(res, flags, in_reqs, out_reqs, exec_units, n_res, latency);\n".
+       mips_load_store_attr_t => "\tinit_mips_attributes(res, flags, in_reqs, out_reqs, exec_units, n_res);\n".
                                 "\tinit_mips_load_store_attributes(res, entity, offset);",
 );