0
考慮WinMIPS64下面的代碼,增加$ S0,如果$ to是零:優化零次檢查中WinMIPS64
bnez $t0, nonzero ;branch if $t0 is non-zero
daddi $s0, $s0, 1 ;increment zero-count $s0 if zero
nonzero:
是分支延遲在管道中生成這段代碼的問題,直到該分支的結果是已知的。 $ t0可以在代碼中的其他地方更改,並且此代碼段可以循環。
關於如何製作更優化的零計數器的任何想法?
順便說一下,不允許硬件優化(轉發,分支目標緩衝區,延遲時隙)。
喜邁克爾,感謝您的答覆。 我會修改我的代碼,並檢查與攤位發生了什麼! –
我檢查了Michael。如果你在一個展開的循環中使用你的版本,它將消除任何最好/最壞的情況,這將取決於$ t0是否實際爲零。也就是說,它提供更一致的週期數,所以我喜歡它! –