This fixes two problems with atomic operations on sh4, including an attempt at supporting the user-space atomics technique used by most sh-linux-user binaries.
This is good enough to run the one occurrence in linux-user-test-0.3. I'm still downloading enough of a cross environment to be able to run more recent sh4 binaries. Including the one in the LP bug report. Thoughts and more extensive testing appreciated. r~ Richard Henderson (11): target/sh4: Use cmpxchg for movco target/sh4: Consolidate end-of-TB tests target/sh4: Handle user-space atomics target/sh4: Recognize common gUSA sequences linux-user/sh4: Notice gUSA regions during signal delivery target/sh4: Hoist register bank selection target/sh4: Unify cpu_fregs into FREG target/sh4: Pass DisasContext to fpr64 routines target/sh4: Avoid a potential translator crash for malformed FPR64 target/sh4: Hoist fp bank selection target/sh4: Eliminate DREG macro target/sh4/cpu.h | 24 +- target/sh4/helper.h | 1 + linux-user/signal.c | 21 ++ target/sh4/op_helper.c | 6 + target/sh4/translate.c | 724 ++++++++++++++++++++++++++++++++++++++----------- 5 files changed, 621 insertions(+), 155 deletions(-) -- 2.9.4