sparc: initial support for Alloc/Free nodes
[libfirm] / ir / be / sparc / sparc_spec.pl
index 4de1ed0..592c65a 100644 (file)
@@ -420,25 +420,27 @@ Restore => {
 },
 
 RestoreZero => {
-       emit => '. restore',
        reg_req => { in => [ "frame_pointer" ], out => [ "sp:I|S" ] },
        ins     => [ "frame_pointer" ],
        outs    => [ "stack" ],
+       emit    => '. restore',
        mode    => $mode_gp,
 },
 
 SubSP => {
-       reg_req   => { in => [ "sp", "gp", "none" ], out => [ "sp:I|S", "gp", "none" ] },
-       ins       => [ "stack", "size", "mem" ],
-       outs      => [ "stack", "addr", "M" ],
-       emit      => ". sub %S0, %S1, %D0\n",
+       reg_req => { in => [ "sp", "gp" ], out => [ "sp:I|S" ] },
+       ins     => [ "stack", "size" ],
+       outs    => [ "stack" ],
+       emit    => ". sub %S0, %S1, %D0\n",
+       mode    => $mode_gp,
 },
 
 AddSP => {
-       reg_req   => { in => [ "sp", "gp", "none" ], out => [ "sp:I|S", "none" ] },
-       ins       => [ "stack", "size", "mem" ],
-       outs      => [ "stack", "M" ],
-       emit      => ". add %S0, %S1, %D0\n",
+       reg_req => { in => [ "sp", "gp" ], out => [ "sp:I|S" ] },
+       ins     => [ "stack", "size" ],
+       outs    => [ "stack" ],
+       emit    => ". add %S0, %S1, %D0\n",
+       mode    => $mode_gp,
 },
 
 FrameAddr => {
@@ -520,7 +522,7 @@ Call => {
                imm => {
                        attr       => "ir_entity *entity, int32_t offset, bool aggregate_return",
                        custominit => "\tsparc_set_attr_imm(res, entity, offset);".
-                                     "\tif (aggregate_return) arch_irn_add_flags(res, sparc_arch_irn_flag_aggregate_return);",
+                                     "\tif (aggregate_return) arch_add_irn_flags(res, sparc_arch_irn_flag_aggregate_return);",
                        arity     => "variable",
                        out_arity => "variable",
                },
@@ -528,7 +530,7 @@ Call => {
                        attr       => "bool aggregate_return",
                        arity      => "variable",
                        out_arity  => "variable",
-                       custominit => "\tif (aggregate_return) arch_irn_add_flags(res, sparc_arch_irn_flag_aggregate_return);",
+                       custominit => "\tif (aggregate_return) arch_add_irn_flags(res, sparc_arch_irn_flag_aggregate_return);",
                }
        },
 },