AAPGを久しぶりに触っている。久しぶりにテストパタンを動かして問題ないことを確認したので、もうちょっと命令範囲を拡張することにした。
https://gitlab.com/shaktiproject/tools/aapg
FPU系の命令でバグがちょいちょい見つかっている。riscv-testsでカバーし切れなかったのは、Nan-Boxingなどの処理についてチェックが足りていないようだ。
GPR[00](0) <= 0000000000000000 22077 : 512 : PC=[000000008000091a] (M,06,01) 000006c2 c.slli a3, 16 GPR[13](20) <= ffffffffffff0000 22077 : 513 : PC=[000000008000091c] (M,06,02) 04c16d03 lwu s10, 76(sp) MR4(0x0000000080092b2c)=>000000002ee19ee4 GPR[26](12) <= 000000002ee19ee4 22078 : 514 : PC=[0000000080000920] (M,07,01) 0000d622 c.swsp s0, 44(sp) MW4(0x0000000080092b0c)=>000000001210d429 88370 : L1D Load-In : 80092b10(00177) : 5e7d2c4c_230d5720_46ce8f91_07d33c1a 88370 : Load ISS Check : 80092b10 : 5e7d2c4c_230d5720_46ce8f91_07d33c1a 88374 : L1D Load-In : 80092bb0(00187) : 3b0ba8b3_3df3688c_44c1bb49_64993217 88374 : Load ISS Check : 80092bb0 : 3b0ba8b3_3df3688c_44c1bb49_64993217 88386 : L1D Evict : 80092510(00081) : 4b74b5ad_448ba266_2818edb5_dc99020d 88386 : EVict ISS Check : 80092510 : 4b74b5ad_448ba266_2818edb5_dc99020d 88394 : L1D Evict : 800939b0(00411) : 0785d0da_ba0d1009_69499af2_0000000e 88394 : EVict ISS Check : 800939b0 : 0785d0da_ba0d1009_69499af2_0000000e 88450 : L1D Load-In : 800932a0(00298) : 00000000_00000000_1804d62f_67770222 88450 : L1D Merged : 800932a0(00298) : 00000000_00000000_1804d62f_67770222 88450 : Load ISS Check : 800932a0 : 00000000_00000000_1804d62f_67770222 88454 : L1D Load-In : 80092ae0(00174) : 778c4980_d1c56733_1baf7ae0_0acaaca7 88454 : Load ISS Check : 80092ae0 : 778c4980_d1c56733_1baf7ae0_0acaaca7 88466 : L1D Evict : 800940a0(00010) : 7360b042_85603a03_1818784c_e5f69e94 88466 : EVict ISS Check : 800940a0 : 7360b042_85603a03_1818784c_e5f69e94 22117 : 515 : PC=[0000000080000922] (M,08,01) c081372f amominu.d a4, s0, (sp) MR8(0x0000000080092ae0)=>1baf7ae00acaaca7 MW8(0x0000000080092ae0)=>1baf7ae00acaaca7 GPR[14](5) <= 1baf7ae00acaaca7 22117 : 516 : PC=[0000000080000926] (M,08,02) 1877b453 fdiv.s fs0, fa5, ft7 ========================================== Wrong FPR[08](30): RTL = ffffffff8651808d, ISS = ffffffff7fc00000 ==========================================
FPU側の実装をちょいちょい直している。変換系の命令も含めて全部見直しだな。