toppers / athrill

athrill(アスリル)開発プロジェクト
13 stars 10 forks source link

op_exec_prepareでアライメントエラーが発生する可能性がある #54

Closed yamam closed 3 years ago

yamam commented 3 years ago

op_exec_prepare()でffが0b11の場合、addrpから4バイト読み込む処理がありますが、addrpが4バイトアライメントになっていない場合、アライメントエラーが発生するCPUもあります(x86、x64は問題ありません)。 PCが4の倍数でない場合に発生します。

addr = cpu->reg.pc + 4U;
err = bus_get_pointer(cpu->core_id, addr, (uint8**)&addrp);

case 0b11:
    cpu->reg.r[30] = (*((uint32*)addrp));
tmori commented 3 years ago

こちらは,rh850版のathrillですね.

tmori commented 3 years ago

本issueは,以下で管理させていただきます.

https://github.com/toppers/athrill-target-rh850f1x/issues/33

athrillとしては,クローズします.