Hi,
I found that check 'dep' value in redispatch_dependents () function doesn't
match the comments.
This is the code.
//
// We must also redispatch all stores, since in pathological cases,
there may
// be store-store ordering cases we don't know about, i.e. if some
store
// inherits from a previous store, but that previous store actually
has the
// wrong address because of some other bogus uop providing its
address.
//
// In addition, ld.acq and st.rel create additional complexity: we
can never
// re-dispatch the ld.acq but not the st.rel and vice versa; both
must be
// redispatched together.
//
bool dep = (*dependent_operands) | (robidx == index()) |
isstore(uop.opcode);
The comments say all store must be re-dispatched because of some
pathological cases. but dep value only checks only current ROB entry.
Is this intended behavior?
or
Should 'uop.opcode' of the code be changed to 'reissuerob.uop.opcode'?
And also, is there anyone who can give me the example of the pathological
cases?
Regrads,
Hanhwi.
_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel