Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[otbn,rtl] Fix
BAD_DATA_ADDR
unknown on pop from empty call stack
Prior to this commit, when a load or store used the call stack as address and the call stack was empty, that may or may not result in a `BAD_DATA_ADDR` error depending on the residual value in the empty call stack. However, a value popped from an empty stack is by definition undefined and can thus not be decided as bad data address. Furthermore, this was problematic in most RTL simulators, where an empty call stack that has never been pushed contains an unknown (X) value, so the `BAD_DATA_ADDR` error bit became unknown. This is described in more detail in #13641. These problems can be reproduced with the `bnlid-1.s` test program, which is run as part of the `otbn_multi_err` test. This commit fixes these problems by explicitly *not* setting the `BAD_DATA_ADDR` error bit when a load or store uses the call stack as address and the call stack is empty. It therefore fixes #13641. Signed-off-by: Andreas Kurth <[email protected]>
- Loading branch information