diff tools/regs.pl @ 466:7c3d8237b625 gcc40

*** empty log message ***
author kono
date Mon, 16 May 2005 11:53:56 +0900
parents
children e60c3d8dadd6
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/regs.pl	Mon May 16 11:53:56 2005 +0900
@@ -0,0 +1,31 @@
+# mips .mask pattern
+
+@regs = (28,31,16);
+@regs = (31,28,23,22,21,20,19,18,17,16);
+@regs = (21,20);
+
+@regs = (31,28);
+@fregs = (20..31);
+
+$mask = 0;
+$count = 1;
+grep($mask |= (1<<($_)),@regs);
+grep($count += $_?1:0 ,@regs);
+
+$fmask = 0;
+$fcount = 1;
+grep($fmask |= (1<<($_)),@fregs);
+grep($fcount += $_?1:0 ,@fregs);
+
+# count のルールは良く分からないね。カウントじゃないみたいだな。
+#  やっぱりregister saveのoffsetみたいだね  (gcc  によると)
+#
+
+printf(".mask\t%x,%d\n",$mask,-$count*4);
+printf(".fmask\t%x,%d\n",$fmask,-$fcount*4);
+
+# cprestore
+#   input variable?
+#   call するサブルーチンの整数の引数の数か?
+
+