Mercurial > hg > CbC > old > device
diff Changes @ 119:b815fcd57b9d
input var ( incomplete )
author | kono |
---|---|
date | Sun, 23 Mar 2003 19:23:29 +0900 |
parents | 2d5a203cc3a6 |
children | f52805504ffa |
line wrap: on
line diff
--- a/Changes Fri Mar 21 18:35:13 2003 +0900 +++ b/Changes Sun Mar 23 19:23:29 2003 +0900 @@ -2394,3 +2394,63 @@ ということだったみたいね。ようやっと self compile が通りました。 free_glist を作るか.... + +Sat Mar 22 11:17:41 JST 2003 + +creg/freg を g_expr の引数にした方が、レジスタマシン系では、素直な +みたい。そうすれば、 +## conv->static_(); + addis r15,r31,ha16(_conv-L_242) + la r15,lo16(_conv-L_242)(r15) + lwz r3,0(r15) + lwz r3,244(r3) + mr r29,r3 + mtctr r29 +みたいな mr は減るね。もっとも一命令だけどさ。3% もあるみたい。 +ちょっと多いか... 386 での use_register もなくなるしなぁ。 +(あぁ、でも大半はポインタキャッシュだな。こっちを直す方が +簡単か) + +まぁ、そういう最適化をしないっていうのが、このコンパイラの立場 +なわけだけど。 + + +構造体の引数渡しでは、構造体そのものをレジスタに載せて +引き渡しているみたいだね。まったく... それで、あわてて +メモリに代入しているわけか。 + +なんか mtctr r2; bdn Lxx とかいうのがあるのね。main frame っぽい! +これはベンチマーク用って感じだね。 + + +Sun Mar 23 16:06:29 JST 2003 + +Breakpoint 3, get_register () at mc-code-powerpc.c:235 +235 for(i=MAX_TMP_REG;i>MIN_TMP_REG;i--) { +(gdb) c 9999 +Will ignore next 9998 crossings of breakpoint 3. Continuing. +test/basic.c:67:Bug of compiler + +Breakpoint 2, errmsg () at mc-parse.c:214 +214 if(lineno==0) return; +(gdb) info b +Number Type Disposition Enabled Address WhatStackFrame Condition IgnoreCount Commands +2 breakpoint keep y 0x0000ca08 in errmsg at mc-parse.c :214 + breakpoint already hit 1 time +3 breakpoint keep y 0x000028e4 in get_register at mc-code-powerpc.c :235 + breakpoint already hit 69 times + ignore next 9930 hits +(gdb) run +The program being debugged has been started already. +Start it from the beginning? (y or n) y +Starting program: /Users/kono/src/device/mc -s test/basic.c +[Switching to process 24650 thread 0x2307] +test/basic.c:67:Bug of compiler + +Breakpoint 2, errmsg () at mc-parse.c:214 +214 if(lineno==0) return; +(gdb) c 69 + +うまくいかんね。 + +a+a+a....a で落ちてしまう。まぁねぇ。