diff options
| author | Richard Henderson | 2017-11-14 10:34:20 +0100 |
|---|---|---|
| committer | Richard Henderson | 2017-11-15 10:33:27 +0100 |
| commit | ec603b5584fa71213ef8f324fe89e4b27cc9d2bc (patch) | |
| tree | c7f47f8089dfc90c0920a3aa42bd6af9cc972bf2 /include/exec/cpu_ldst.h | |
| parent | Update version for v2.11.0-rc1 release (diff) | |
| download | qemu-ec603b5584fa71213ef8f324fe89e4b27cc9d2bc.tar.gz qemu-ec603b5584fa71213ef8f324fe89e4b27cc9d2bc.tar.xz qemu-ec603b5584fa71213ef8f324fe89e4b27cc9d2bc.zip | |
tcg: Record code_gen_buffer address for user-only memory helpers
When we handle a signal from a fault within a user-only memory helper,
we cannot cpu_restore_state with the PC found within the signal frame.
Use a TLS variable, helper_retaddr, to record the unwind start point
to find the faulting guest insn.
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/exec/cpu_ldst.h')
| -rw-r--r-- | include/exec/cpu_ldst.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h index 6eb5fe80dc..191f2e962a 100644 --- a/include/exec/cpu_ldst.h +++ b/include/exec/cpu_ldst.h @@ -76,6 +76,8 @@ #if defined(CONFIG_USER_ONLY) +extern __thread uintptr_t helper_retaddr; + /* In user-only mode we provide only the _code and _data accessors. */ #define MEMSUFFIX _data |
