Moved assertion into if clause
[libfirm] / ir / be / ia32 / ia32_spec.pl
index f43c63d..64673b0 100644 (file)
@@ -28,10 +28,15 @@ $arch = "ia32";
 #   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"
-#   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",
 # },
 #
@@ -51,6 +56,8 @@ $arch = "ia32";
 #   H   irop_flag_highlevel
 #   c   irop_flag_constlike
 #   K   irop_flag_keep
+#   NB  irop_flag_dump_noblock
+#   NI  irop_flag_dump_noinput
 #
 # irn_flags: special node flags, OPTIONAL (default is 0)
 # following irn_flags are supported:
@@ -316,6 +323,7 @@ Immediate => {
        reg_req   => { out => [ "gp_NOREG" ] },
        attr      => "ir_entity *symconst, int symconst_sign, long offset",
        attr_type => "ia32_immediate_attr_t",
+       hash_func => "ia32_hash_Immediate",
        latency   => 0,
        mode      => $mode_gp,
 },
@@ -1178,7 +1186,7 @@ GetEIP => {
 
 Unknown_GP => {
        state     => "pinned",
-       op_flags  => "c",
+       op_flags  => "c|NB",
        irn_flags => "I",
        reg_req   => { out => [ "gp_UKNWN" ] },
        units     => [],
@@ -1189,7 +1197,7 @@ Unknown_GP => {
 
 Unknown_VFP => {
        state     => "pinned",
-       op_flags  => "c",
+       op_flags  => "c|NB",
        irn_flags => "I",
        reg_req   => { out => [ "vfp_UKNWN" ] },
        units     => [],
@@ -1201,7 +1209,7 @@ Unknown_VFP => {
 
 Unknown_XMM => {
        state     => "pinned",
-       op_flags  => "c",
+       op_flags  => "c|NB",
        irn_flags => "I",
        reg_req   => { out => [ "xmm_UKNWN" ] },
        units     => [],
@@ -1212,7 +1220,7 @@ Unknown_XMM => {
 
 NoReg_GP => {
        state     => "pinned",
-       op_flags  => "c",
+       op_flags  => "c|NB|NI",
        irn_flags => "I",
        reg_req   => { out => [ "gp_NOREG" ] },
        units     => [],
@@ -1223,7 +1231,7 @@ NoReg_GP => {
 
 NoReg_VFP => {
        state     => "pinned",
-       op_flags  => "c",
+       op_flags  => "c|NB|NI",
        irn_flags => "I",
        reg_req   => { out => [ "vfp_NOREG" ] },
        units     => [],
@@ -1235,7 +1243,7 @@ NoReg_VFP => {
 
 NoReg_XMM => {
        state     => "pinned",
-       op_flags  => "c",
+       op_flags  => "c|NB|NI",
        irn_flags => "I",
        reg_req   => { out => [ "xmm_NOREG" ] },
        units     => [],