Closed yamam closed 3 years ago
ご連絡ありがとうございます。ご指摘の件、調べてみます。🙇♂️
@yamam ご指摘の件,調査完了しました.
Format VIですが,P.51 の6) 3 オペランド命令形式(Format VI)
では,31-16がimmであるため,op_dec.c OpDecode6()の実装となっています.
https://github.com/toppers/athrill-target-rh850f1x/blob/master/src/cpu/cpu_dec/op_dec.c#L148
一方で,ご指摘の通り,Format VI であっても,JMP, JR, JARL は,48bit命令となっておりますので,本問題が発生することになりました.
ただ,同様なものとして Format VI のMOV命令については,対処がされていました.
OpDecode6()では,どの命令であるかの判断ができませんので,Format VI のJMP, JR, JARLに対して,上記対処を行うことにします.
https://www.renesas.com/jp/ja/document/mat/v850e2-architecture-preliminary?language=ja のP.91のJMP disp32 [reg1] 形式の命令は Format VIとなっていますが、他のFormat VI形式の命令とは異なりdisp32が32ビットとなっています。 (JR disp32 、JARL disp32, reg1も同様です)
しかし、Format VIをデコードするop_dec.c OpDecode6()でtype6.immに16ビットしか設定していません。