[Bug target/82150] Produces a branch prefetch which causes a hang
david.welch at netronome dot com
gcc-bugzilla@gcc.gnu.org
Wed Sep 20 17:07:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82150
--- Comment #9 from david.welch at netronome dot com ---
Basically gcc is generating a sequence where data starts to execute in the
pipe. I cant imagine that is a good idea to let the processor execute data
when you can avoid it
instead of a pop {...pc} ; some data a pop { ... lr} ; bx lr creates a data
hazard, the bx doesnt execute until the register change has resolved. Other
cores might not execute the words after a pop in the pipeline if pc is one of
the popped values but this core does. Patching this instruction sequence after
the execution has started is just a kludge.
More information about the Gcc-bugs
mailing list