466a467,468
> bool force_squash = false;
>
479,480c481,488
< if (load_addr == invalidate_addr) {
< if (ld_inst->possibleLoadViolation()) {
---
> if (load_addr == invalidate_addr || force_squash) {
> if (needsTSO) {
> // If we have a TSO system, as all loads must be ordered with
> // all other loads, this load as well as *all* subsequent loads
> // need to be squashed to prevent possible load reordering.
> force_squash = true;
> }
> if (ld_inst->possibleLoadViolation() || force_squash) {