diff options
| author | Joshua Kinard <[email protected]> | 2017-11-18 22:29:56 -0500 |
|---|---|---|
| committer | Paul Burton <[email protected]> | 2018-07-12 11:14:10 -0700 |
| commit | a0a5ac3ce8fe6bf26694f49f9ba42ed859487424 (patch) | |
| tree | 32a04df6f500f91ea13a2d86e5a27989c90131ea /tools/perf/scripts/python/sched-migration.py | |
| parent | b5d69129ea2b86d8a357efe3eca664b44860406e (diff) | |
MIPS: Fix delay slot bug in `atomic*_sub_if_positive' for R10000_LLSC_WAR
This patch fixes an old bug in MIPS ll/sc atomics, in the
`atomic_sub_if_positive' and `atomic64_sub_if_positive' functions, for
the R10000_LLSC_WAR case where the result of the subu/dsubu instruction
would potentially not be made available to the sc/scd instruction due
to being in the delay-slot of the branch-likely (beqzl) instruction.
This also removes the need for the `noreorder' directive, allowing GAS
to use delay slot scheduling as needed.
The same fix is also applied to the standard branch (beqz) case in
preparation for a follow-up patch that will cleanup/merge the
R10000_LLSC_WAR and non-R10K sections together.
Signed-off-by: Joshua Kinard <[email protected]>
Signed-off-by: Paul Burton <[email protected]>
Tested-by: Joshua Kinard <[email protected]>
Patchwork: https://patchwork.linux-mips.org/patch/17735/
Cc: Ralf Baechle <[email protected]>
Cc: James Hogan <[email protected]>
Cc: "Maciej W. Rozycki" <[email protected]>
Cc: [email protected]
Diffstat (limited to 'tools/perf/scripts/python/sched-migration.py')
0 files changed, 0 insertions, 0 deletions