comparison Changes @ 119:b815fcd57b9d

input var ( incomplete )
author kono
date Sun, 23 Mar 2003 19:23:29 +0900
parents 2d5a203cc3a6
children f52805504ffa
comparison
equal deleted inserted replaced
118:07b91b625f84 119:b815fcd57b9d
2392 reg_save disp max_func_args*size_of_int 2392 reg_save disp max_func_args*size_of_int
2393 2393
2394 ということだったみたいね。ようやっと self compile が通りました。 2394 ということだったみたいね。ようやっと self compile が通りました。
2395 2395
2396 free_glist を作るか.... 2396 free_glist を作るか....
2397
2398 Sat Mar 22 11:17:41 JST 2003
2399
2400 creg/freg を g_expr の引数にした方が、レジスタマシン系では、素直な
2401 みたい。そうすれば、
2402 ## conv->static_();
2403 addis r15,r31,ha16(_conv-L_242)
2404 la r15,lo16(_conv-L_242)(r15)
2405 lwz r3,0(r15)
2406 lwz r3,244(r3)
2407 mr r29,r3
2408 mtctr r29
2409 みたいな mr は減るね。もっとも一命令だけどさ。3% もあるみたい。
2410 ちょっと多いか... 386 での use_register もなくなるしなぁ。
2411 (あぁ、でも大半はポインタキャッシュだな。こっちを直す方が
2412 簡単か)
2413
2414 まぁ、そういう最適化をしないっていうのが、このコンパイラの立場
2415 なわけだけど。
2416
2417
2418 構造体の引数渡しでは、構造体そのものをレジスタに載せて
2419 引き渡しているみたいだね。まったく... それで、あわてて
2420 メモリに代入しているわけか。
2421
2422 なんか mtctr r2; bdn Lxx とかいうのがあるのね。main frame っぽい!
2423 これはベンチマーク用って感じだね。
2424
2425
2426 Sun Mar 23 16:06:29 JST 2003
2427
2428 Breakpoint 3, get_register () at mc-code-powerpc.c:235
2429 235 for(i=MAX_TMP_REG;i>MIN_TMP_REG;i--) {
2430 (gdb) c 9999
2431 Will ignore next 9998 crossings of breakpoint 3. Continuing.
2432 test/basic.c:67:Bug of compiler
2433
2434 Breakpoint 2, errmsg () at mc-parse.c:214
2435 214 if(lineno==0) return;
2436 (gdb) info b
2437 Number Type Disposition Enabled Address WhatStackFrame Condition IgnoreCount Commands
2438 2 breakpoint keep y 0x0000ca08 in errmsg at mc-parse.c :214
2439 breakpoint already hit 1 time
2440 3 breakpoint keep y 0x000028e4 in get_register at mc-code-powerpc.c :235
2441 breakpoint already hit 69 times
2442 ignore next 9930 hits
2443 (gdb) run
2444 The program being debugged has been started already.
2445 Start it from the beginning? (y or n) y
2446 Starting program: /Users/kono/src/device/mc -s test/basic.c
2447 [Switching to process 24650 thread 0x2307]
2448 test/basic.c:67:Bug of compiler
2449
2450 Breakpoint 2, errmsg () at mc-parse.c:214
2451 214 if(lineno==0) return;
2452 (gdb) c 69
2453
2454 うまくいかんね。
2455
2456 a+a+a....a で落ちてしまう。まぁねぇ。