> The function responsible for this behavior seems to be > resource_conflicts_p in reorg.c. Sadly, I could not find any comments > explaining why volatile accesses cannot be put into delay slots. > > What is the reason for this behavior? I am unable to think of any > situation where allowing volatile memory accesses in branch delay slots > leads to problems. Am I missing a case? Or are negative effects limited > to other architectures?
Delay slot filling is a code movement optimization and such optimizations are not valid for volatile memory accesses in the general case. -- Eric Botcazou