Mercurial > hg > CbC > old > device
diff mc-code-powerpc.c @ 724:e60c3d8dadd6
convert to UTF-8
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 08 Nov 2008 15:11:06 +0900 |
parents | c1542a2482b1 |
children | f3fccac64cbe |
line wrap: on
line diff
--- a/mc-code-powerpc.c Fri Nov 07 20:12:29 2008 +0000 +++ b/mc-code-powerpc.c Sat Nov 08 15:11:06 2008 +0900 @@ -3,15 +3,15 @@ /* ************************************************************************ ** Copyright (C) 2006 Shinji Kono -** 連絡先: 琉球大学情報工学科 河野 真治 -** (E-Mail Address: kono@ie.u-ryukyu.ac.jp) +** g機鐚 紊у怨轡絖腱 羃渇 羃 +** 鐚E-Mail Address: kono@ie.u-ryukyu.ac.jp鐚 ** -** このソースのいかなる複写,改変,修正も許諾します。ただし、 -** その際には、誰が貢献したを示すこの部分を残すこと。 -** 再配布や雑誌の付録などの問い合わせも必要ありません。 -** 営利利用も上記に反しない範囲で許可します。 -** バイナリの配布の際にはversion messageを保存することを条件とします。 -** このプログラムについては特に何の保証もしない、悪しからず。 +** 純若鴻茲鐚劫鐚篆罩c荐沿障障 +** 茯違莢∝腓冴罧 +** 絽茯篁蚊綽荀障 +** 九筝荐膀蚊ц┗障 +** ゃ絽version message篆絖>散障 +** 違ゃ鴻篏篆荐若 ** ** Everyone is permitted to do anything on this program ** including copying, modifying, improving, @@ -206,15 +206,15 @@ #define ENDIAN_D 1 static int reg_sp; /* REGister Stack-Pointer */ -static int reg_stack[MAX_MAX]; /* 実際のレジスタの領域 */ +static int reg_stack[MAX_MAX]; /* 絎吾鴻帥 */ /* floating point registers */ static int freg_sp; /* floating point REGister Stack-Pointer */ -static int freg_stack[MAX_MAX]; /* 実際のレジスタの領域 */ +static int freg_stack[MAX_MAX]; /* 絎吾鴻帥 */ static int lreg_sp; /* longlong REGister Stack-Pointer */ -static int lreg_stack[MAX_MAX]; /* 実際のレジスタの領域 */ +static int lreg_stack[MAX_MAX]; /* 絎吾鴻帥 */ #ifdef __APPLE__ #define REG_sp 1 @@ -242,10 +242,10 @@ #define MAX_TMP_FREG 9 #endif -int MAX_REGISTER=30; /* PowerPCのレジスタを10個まで使う*/ +int MAX_REGISTER=30; /* PowerPC吾鴻帥10障т戎*/ int MAX_FREGISTER=31; -#define REAL_MAX_REGISTER 32 /* PowerPCのレジスタが32ということ*/ -#define REAL_MAX_FREGISTER 32 /* PowerPCのレジスタが32ということ*/ +#define REAL_MAX_REGISTER 32 /* PowerPC吾鴻帥32*/ +#define REAL_MAX_FREGISTER 32 /* PowerPC吾鴻帥32*/ #define REAL_MAX_LREGISTER 16 #define FREG_OFFSET REAL_MAX_REGISTER @@ -467,7 +467,7 @@ code segment stack frame - * gotoを呼び出した関数のr1 ! r1(goto前のr1) + * goto若喝冴∽違r1 ! r1(gotor1) # * r30 <---r1_offset---------> r1 r+ +----------+--+----------+----------------+-----------+----------+----+ cousin arg xx reg save !callee arg !code local caller arg xx @@ -851,18 +851,18 @@ int get_register(void) -{ /* 使われていないレジスタを調べる */ +{ /* 篏帥吾鴻帥茯帥鴻 */ int i,j,reg; for(i=MAX_TMP_REG;i>MIN_TMP_REG;i--) { - if (regs[i]) continue; /* 使われている */ - regs[i]=USING_REG; /* そのレジスタを使うことを宣言し */ - return i; /* その場所を表す番号を返す */ - } - /* PTR_CACHE をつぶす */ + if (regs[i]) continue; /* 篏帥 */ + regs[i]=USING_REG; /* 吾鴻帥篏帥絎h */ + return i; /* 贋茵垩菴 */ + } + /* PTR_CACHE ゃ吟 */ if ((i=last_ptr_cache())) { clear_ptr_cache_reg(i); - regs[i]=USING_REG; /* そのレジスタを使うことを宣言し */ - return i; /* その場所を表す番号を返す */ + regs[i]=USING_REG; /* 吾鴻帥篏帥絎h */ + return i; /* 贋茵垩菴 */ } /* search register stack */ for(i=0;i<reg_sp;i++) { @@ -887,13 +887,13 @@ #endif for(i=0;i<REG_VAR_BASE-REG_VAR_MIN;i++) { reg =REG_VAR_BASE-i; - if (! regs[reg]) { /* 使われていないなら */ - regs[reg]=USING_REG; /* そのレジスタを使うことを宣言し */ + if (! regs[reg]) { /* 篏帥 */ + regs[reg]=USING_REG; /* 吾鴻帥篏帥絎h */ if (i>max_reg_var) max_reg_var=i; - return reg; /* その場所を表す番号を返す */ + return reg; /* 贋茵垩菴 */ } } - /* 空いている場所がないなら、エラー (いったい誰が使ってるの?) */ + /* 腥冴贋 (c茯違篏帥c?) */ error(RGERR); return creg; } @@ -909,19 +909,19 @@ int pop_register(void) -{ /* レジスタから値を取り出す */ +{ /* 吾鴻帥ゃ冴 */ return reg_stack[--reg_sp]; } #if FLOAT_CODE int get_dregister(int d) -{ /* 使われていないレジスタを調べる */ +{ /* 篏帥吾鴻帥茯帥鴻 */ int i,reg; for(i=MAX_TMP_FREG+FREG_OFFSET;i>MIN_TMP_FREG+FREG_OFFSET;i--) { - if (regs[i]) continue; /* 使われている */ - regs[i]=USING_REG; /* そのレジスタを使うことを宣言し */ - return i; /* その場所を表す番号を返す */ + if (regs[i]) continue; /* 篏帥 */ + regs[i]=USING_REG; /* 吾鴻帥篏帥絎h */ + return i; /* 贋茵垩菴 */ } /* search register stack */ for(i=0;i<freg_sp;i++) { @@ -934,13 +934,13 @@ } for(i=0;i<FREG_VAR_BASE-REG_VAR_MIN;i++) { reg =FREG_VAR_BASE-i+FREG_OFFSET; - if (! regs[reg]) { /* 使われていないなら */ - regs[reg]=USING_REG; /* そのレジスタを使うことを宣言し */ + if (! regs[reg]) { /* 篏帥 */ + regs[reg]=USING_REG; /* 吾鴻帥篏帥絎h */ if (i>max_freg_var) max_freg_var=i; - return reg; /* その場所を表す番号を返す */ + return reg; /* 贋茵垩菴 */ } } - /* 空いている場所がないなら、エラー (いったい誰が使ってるの?) */ + /* 腥冴贋 (c茯違篏帥c?) */ error(REG_ERR); return freg; } @@ -956,7 +956,7 @@ int pop_fregister(void) -{ /* レジスタから値を取り出す */ +{ /* 吾鴻帥ゃ冴 */ return freg_stack[--freg_sp]; } #endif @@ -1040,24 +1040,24 @@ if (ll==-1) goto not_found; if (regs[ll]==0) { for(i=0;i<REG_VAR_BASE-REG_VAR_MIN;i++) { - if (! regs[REG_VAR_BASE-i]) { /* 使われていないなら */ - /* そのレジスタを使うことを宣言し */ + if (! regs[REG_VAR_BASE-i]) { /* 篏帥 */ + /* 吾鴻帥篏帥絎h */ regs[REG_VAR_BASE-i]=USING_REG; if (i>max_reg_var) max_reg_var=i; for(j=0;j<REG_VAR_BASE-REG_VAR_MIN;j++) { if (! regs[REG_VAR_BASE-j]) { - /* 使われていないなら */ - /* そのレジスタを使うことを宣言し */ + /* 篏帥 */ + /* 吾鴻帥篏帥絎h */ regs[REG_VAR_BASE-j]=REG_VAR; if (j>max_reg_var) max_reg_var=j; - /* その場所を表す番号を返す */ + /* 贋茵垩菴 */ regs[ll]=REG_VAR; regv_l(ll) = REG_VAR_BASE-j; regv_h(ll) = REG_VAR_BASE-i; return list3n(LREGISTER,ll,n); } } - /* ひとつしかなかった */ + /* 蚊ゃc */ regs[REG_VAR_BASE-i]=0; max_reg_var=max_reg_var_save; goto not_found; @@ -1077,7 +1077,7 @@ void -free_register(int i) { /* いらなくなったレジスタを開放 */ +free_register(int i) { /* c吾鴻帥 */ // printf("## free_register %d\n",i); if (is_longlong_reg(i)) { regs[regv_l(i)]=0; @@ -1372,11 +1372,11 @@ { int i; for(i=0;i<REG_VAR_BASE-REG_VAR_MIN;i++) { - if (! regs[REG_VAR_BASE-i]) { /* 使われていないなら */ - /* そのレジスタを使うことを宣言し */ + if (! regs[REG_VAR_BASE-i]) { /* 篏帥 */ + /* 吾鴻帥篏帥絎h */ regs[REG_VAR_BASE-i]=REG_VAR; if (i>max_reg_var) max_reg_var=i; - /* その場所を表す番号を返す */ + /* 贋茵垩菴 */ return list3n(REGISTER,REG_VAR_BASE-i,n); } } @@ -1388,10 +1388,10 @@ { int i; for(i=0;i<FREG_VAR_BASE-FREG_VAR_MIN;i++) { - if (! regs[FREG_VAR_BASE-i+FREG_OFFSET]) { /* 使われていないなら */ - regs[FREG_VAR_BASE-i+FREG_OFFSET]=REG_VAR; /*そのレジスタを使うことを宣言し*/ + if (! regs[FREG_VAR_BASE-i+FREG_OFFSET]) { /* 篏帥 */ + regs[FREG_VAR_BASE-i+FREG_OFFSET]=REG_VAR; /*吾鴻帥篏帥絎h*/ if (i>max_freg_var) max_freg_var=i; - /* その場所を表す番号を返す */ + /* 贋茵垩菴 */ return list3n(DREGISTER, FREG_VAR_BASE-i+FREG_OFFSET,n); } @@ -1405,9 +1405,9 @@ int new_reg,old=creg; if (!is_int_reg(creg)) error(-1); if (reg_sp>MAX_MAX) error(-1); - new_reg = get_register(); /* 絶対に取れる */ + new_reg = get_register(); /* 腟九障 */ if (new_reg==creg) error(-1); // freed creg - reg_stack[reg_sp++] = creg; /* push するかわりにレジスタを使う */ + reg_stack[reg_sp++] = creg; /* push 吾鴻帥篏帥 */ ireg = creg = new_reg; if (!regs[creg]) regs[creg]=USING_REG; return old; @@ -2265,8 +2265,8 @@ /* use input register as current register - なんで、こんなに複雑なんだ? - むしろ、INPUT_REG みたいな mark をいれたら? + с茲? + INPUT_REG 帥 mark ? */ static void @@ -2278,7 +2278,7 @@ ireg = 0; } if (lreg) { - // free_regsiter(lreg) でいいんじゃないの? + // free_regsiter(lreg) с? if (regv_l(lreg)==reg) { regs[lreg]=0; if (regv_h(lreg)>reg&®s[regv_h(lreg)]==USING_REG) { @@ -4883,8 +4883,8 @@ int new_reg; if (!is_float_reg(creg)) error(-1); if (freg_sp>MAX_MAX) error(-1); - new_reg = get_dregister(1); /* 絶対に取れる */ - freg_stack[freg_sp++] = freg; /* push するかわりにレジスタを使う */ + new_reg = get_dregister(1); /* 腟九障 */ + freg_stack[freg_sp++] = freg; /* push 吾鴻帥篏帥 */ creg = freg = new_reg; } @@ -5804,8 +5804,8 @@ int new_reg; if (!is_longlong_reg(creg)) error(-1); if (lreg_sp>MAX_MAX) error(-1); - new_reg = get_lregister(); /* 絶対に取れる(?) */ - lreg_stack[lreg_sp++] = creg; /* push するかわりにレジスタを使う */ + new_reg = get_lregister(); /* 腟九障(?) */ + lreg_stack[lreg_sp++] = creg; /* push 吾鴻帥篏帥 */ lreg = creg = new_reg; }