The big committ:
[libfirm] / ir / be / mips / mips_spec.pl
index 13ae13e..9a926b1 100644 (file)
@@ -6,7 +6,9 @@
 
 $arch = "mips";
 
-$comment_string = "#";
+# this strings mark the beginning and the end of a comment in emit
+$comment_string     = "#";
+$comment_string_end = "";
 
 # The node description is done as a perl hash initializer with the
 # following structure:
@@ -89,45 +91,47 @@ $comment_string = "#";
 #   4 - ignore (do not assign this register)
 # 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 => "at", type => 4 }, # reserved for assembler
-                         { name => "v0", type => 1 }, # first return value
-                         { name => "v1", type => 1 }, # second return value
-                         { name => "a0", type => 1 }, # first argument
-                         { name => "a1", type => 1 }, # second argument
-                         { name => "a2", type => 1 }, # third argument
-                         { name => "a3", type => 1 }, # fourth argument
-                         { name => "t0", type => 1 },
-                         { name => "t1", type => 1 },
-                         { name => "t2", type => 1 },
-                         { name => "t3", type => 1 },
-                         { name => "t4", type => 1 },
-                         { name => "t5", type => 1 },
-                         { name => "t6", type => 1 },
-                         { name => "t7", type => 1 },
-                         { name => "s0", type => 2 },
-                         { name => "s1", type => 2 },
-                         { name => "s2", type => 2 },
-                         { name => "s3", type => 2 },
-                         { name => "s4", type => 2 },
-                         { name => "s5", type => 2 },
-                         { name => "s6", type => 2 },
-                         { name => "s7", type => 2 },
-                         { name => "t8", type => 1 },
-                         { name => "t9", type => 1 },
-                         { name => "k0", type => 4 }, # reserved for OS
-                         { name => "k1", type => 4 }, # reserved for OS
-                         { name => "gp", type => 4 }, # general purpose
-                         { name => "sp", type => 4+2 }, # stack pointer
-                         { name => "fp", type => 4+2 }, # frame pointer
-                         { name => "ra", type => 2+1 }, # return address. This is also caller save, because
-                                                                                                                       # the jla instruction that is used for calls modifies
-                                                                                                                       # the ra register. It is callee save too, because at the last
-                                                                                                                       # command of a function (the ja $ra) it needs to have it's
-                                                                                                                       # old value.
-                         { mode => "mode_P" }
-                       ],
+       "gp" => [
+               { name => "zero", type => 4+2 },  # always zero
+               { name => "at", type => 4 }, # reserved for assembler
+               { name => "v0", type => 1 }, # first return value
+               { name => "v1", type => 1 }, # second return value
+               { name => "a0", type => 1 }, # first argument
+               { name => "a1", type => 1 }, # second argument
+               { name => "a2", type => 1 }, # third argument
+               { name => "a3", type => 1 }, # fourth argument
+               { name => "t0", type => 1 },
+               { name => "t1", type => 1 },
+               { name => "t2", type => 1 },
+               { name => "t3", type => 1 },
+               { name => "t4", type => 1 },
+               { name => "t5", type => 1 },
+               { name => "t6", type => 1 },
+               { name => "t7", type => 1 },
+               { name => "s0", type => 2 },
+               { name => "s1", type => 2 },
+               { name => "s2", type => 2 },
+               { name => "s3", type => 2 },
+               { name => "s4", type => 2 },
+               { name => "s5", type => 2 },
+               { name => "s6", type => 2 },
+               { name => "s7", type => 2 },
+               { name => "t8", type => 1 },
+               { name => "t9", type => 1 },
+               { name => "k0", type => 4 }, # reserved for OS
+               { name => "k1", type => 4 }, # reserved for OS
+               { name => "gp", type => 4 }, # general purpose
+               { name => "sp", type => 4+2 }, # stack pointer
+               { name => "fp", type => 4+2 }, # frame pointer
+               { name => "ra", type => 2+1 }, # return address. This is also caller
+                                       # save, because the jla instruction that
+                                              # is used for calls modifies the ra
+                                              # register. It is callee save too,
+                                              # because at the last command of a
+                                              # function (the ja $ra) it needs to have
+                                              # it's old value.
+               { mode => "mode_P" }
+       ],
 ); # %reg_classes
 
 #--------------------------------------------------#