Diary of Sacred Fox - November 15, 2003

The Quintetには通算 179067 人(今日:0, 昨日:1)のお客様が来場しています

2003/11/15(1)

ちとおもう

後でちゃんと書いた > これ

某所で2年生が予想通りSPARCアセンブラをやっているのを見る, おそらくstrlen関数
折角だから全てのDelayed Slotをつぶさなければと考えてしまう
いちいち見比べるのも面倒なので問題のソースだけ引用

    (略)
    cmp   %i2, 0
    be    end
    add   %i1, 1, %i1
    b     start
    nop
end:
    sub   %i1, 1, %i1
    ret
    restore

微妙にインデントだけは追加してあるが気にしない
で, こんなことをやるぐらいならこうした方が速いのではと考える

    (略)
    cmp   %i2, 0
    bne   start
    add   %i1, 1, %i1
end:      ! This label is not required
    sub   %i1, 1, %i1
    ret
    restore

もうちょっと邪道なことをやればこんな方法もある

    (略)
    cmp   %i2, 0
    bne,a start
    add   %i1, 1, %i1
end:      ! This label is not required
    ret
    restore

ちなみにbneはbeと条件が逆なBranch, Branch命令の後に付けた『,a』オプションは非分岐時にDelayed Instructionをnop化するフラグ, 使う分には便利(HW屋はおそらくWrite Enableを弄っているのだろう, 去年はここに更に分岐命令を入れていたつわものも居たが, これはお勧めできない泣きそう)

Comments (0):

2003/11/15(2)

最近のCPU実験

週末にしかやっていないような気がする, 平日も頑張らなければ…
明日は連続系でもやろうかな…

今週の作戦: 下手な鉄砲数打ちゃ当たれ

こんな聖狐を助けてください

Comments (0):