Fix single stepping over ecall and xret
Created by: bluewww
This patch fixes issues with single stepping over ecall and the xret instructions. The basic idea underlying these changes is that we follow ecall and xret a bit longer in the "regular" pipeline before switching to debug mode. Before this patch, we switched too early and thus not all relevant signals were update e.g. for xret the return address was not properly recorded yet.
Effectively this fixes riscv-tests/debug/StepTest
and two additional custom tests StepTestMret
and StepTestSpecial
.