simplify and speedup belady/loopana a bit
[libfirm] / ir / be / arm / arm_spec.pl
index 5c9fe4e..3adff66 100644 (file)
@@ -28,10 +28,14 @@ $new_emit_syntax = 1;
 #   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",
+#   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",
-#   attr      => "attitional attribute arguments for constructor"
-#   init_attr => "emit attribute initialization template"
+#   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",
 # },
@@ -578,6 +582,17 @@ CmpBra => {
        attr_type => "arm_CondJmp_attr_t",
 },
 
+TstBra => {
+       op_flags  => "L|X|Y",
+       state     => "pinned",
+       comment   => "construct conditional branch: TST A, B && JMPxx LABEL",
+       mode      => "mode_T",
+       attr      => "int proj_num",
+       init_attr => "\tset_arm_CondJmp_proj_num(res, proj_num);",
+       reg_req   => { "in" => [ "gp", "gp" ], "out" => [ "none", "none"] },
+       attr_type => "arm_CondJmp_attr_t",
+},
+
 SwitchJmp => {
        op_flags  => "L|X|Y",
        state     => "pinned",
@@ -676,7 +691,7 @@ StoreStackM4Inc => {
        op_flags  => "L|F",
        irn_flags => "R",
        state     => "exc_pinned",
-       comment   => "construct Store: Store(ptr, val, mem) = ST ptr,val",
+       comment   => "construct Store: Push 4 Registers = ST ptr,val",
        reg_req   => { "in" => [ "sp", "gp", "gp", "gp", "gp", "none" ], "out" => [ "gp", "none" ] },
        emit      => '. stmfd %S0!, {%S1, %S2, %S3, %S4}',
        outs      => [ "ptr", "M" ],