アカウント名:
パスワード:
もう解決したようですが、cacheflush()を使ってるのはAndroidの古いバージョンで、最新のdalvikVMだとgcc拡張の__builtin__clear_cache()を使ったCPUアーキテクチャに依存しないコードに書き換わってるようですね(dvmCompilerCacheFlush()を参照 [googlesource.com])。こちらを使った場合も、ARMの場合はlibgcc.a内のcacheflush syscallを呼び出す関数を呼ぶので、処理内容としては同じになります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
cacheflush()でいいはずです (スコア:0)
機能していないように見えるということで思い当たる点としては、man cacheflush で出てくるのはMIPS向けの記述で、ARMに対しては間違っているということ。
具体的には、manだと第3引数にICACHE,DCACHE,BCACHEのいずれかを指定するように見えますが、ARMの場合この引数は0でなければいけません。
ちなみに、キャッシュ制御用のmcr命令のうち、キャッシュフラッシュ等の一部のオペレーションはユーザモードでも実行可能なので、ポータビリティ無視でよければアセンブラで直接キャッシュフラッシュのコードを書くことはできます。
Re:cacheflush()でいいはずです (スコア:0)
もう解決したようですが、cacheflush()を使ってるのはAndroidの古いバージョンで、最新のdalvikVMだとgcc拡張の__builtin__clear_cache()を使ったCPUアーキテクチャに依存しないコードに書き換わってるようですね(dvmCompilerCacheFlush()を参照 [googlesource.com])。
こちらを使った場合も、ARMの場合はlibgcc.a内のcacheflush syscallを呼び出す関数を呼ぶので、処理内容としては同じになります。