Mercurial > hg > CbC > old > device
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 するサブルーチンの整数の引数の数か? + +