From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-devel@nongnu.org, peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [PATCH 3/1] target/arm: Fix GETPC usage in do_paired_cmpxchg64_l/be
Date: Tue, 14 Nov 2017 16:11:08 +0000 [thread overview]
Message-ID: <87fu9galib.fsf@linaro.org> (raw)
In-Reply-To: <20171114134153.11167-1-richard.henderson@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> Use of GETPC must be restricted to those functions that are
> directly called from TCG generated code.
>
> Fixes: 2399d4e7cec22ecf1c51062d2ebfd45220dbaace
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> ---
> target/arm/helper-a64.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/target/arm/helper-a64.c b/target/arm/helper-a64.c
> index 96a3ecf707..b84ebcae6e 100644
> --- a/target/arm/helper-a64.c
> +++ b/target/arm/helper-a64.c
> @@ -432,9 +432,8 @@ uint64_t HELPER(crc32c_64)(uint64_t acc, uint64_t val, uint32_t bytes)
> /* Returns 0 on success; 1 otherwise. */
> static uint64_t do_paired_cmpxchg64_le(CPUARMState *env, uint64_t addr,
> uint64_t new_lo, uint64_t new_hi,
> - bool parallel)
> + bool parallel, uintptr_t ra)
> {
> - uintptr_t ra = GETPC();
> Int128 oldv, cmpv, newv;
> bool success;
>
> @@ -491,20 +490,19 @@ static uint64_t do_paired_cmpxchg64_le(CPUARMState *env, uint64_t addr,
> uint64_t HELPER(paired_cmpxchg64_le)(CPUARMState *env, uint64_t addr,
> uint64_t new_lo, uint64_t new_hi)
> {
> - return do_paired_cmpxchg64_le(env, addr, new_lo, new_hi, false);
> + return do_paired_cmpxchg64_le(env, addr, new_lo, new_hi, false, GETPC());
> }
>
> uint64_t HELPER(paired_cmpxchg64_le_parallel)(CPUARMState *env, uint64_t addr,
> uint64_t new_lo, uint64_t new_hi)
> {
> - return do_paired_cmpxchg64_le(env, addr, new_lo, new_hi, true);
> + return do_paired_cmpxchg64_le(env, addr, new_lo, new_hi, true, GETPC());
> }
>
> static uint64_t do_paired_cmpxchg64_be(CPUARMState *env, uint64_t addr,
> uint64_t new_lo, uint64_t new_hi,
> - bool parallel)
> + bool parallel, uintptr_t ra)
> {
> - uintptr_t ra = GETPC();
> Int128 oldv, cmpv, newv;
> bool success;
>
> @@ -561,11 +559,11 @@ static uint64_t do_paired_cmpxchg64_be(CPUARMState *env, uint64_t addr,
> uint64_t HELPER(paired_cmpxchg64_be)(CPUARMState *env, uint64_t addr,
> uint64_t new_lo, uint64_t new_hi)
> {
> - return do_paired_cmpxchg64_be(env, addr, new_lo, new_hi, false);
> + return do_paired_cmpxchg64_be(env, addr, new_lo, new_hi, false, GETPC());
> }
>
> uint64_t HELPER(paired_cmpxchg64_be_parallel)(CPUARMState *env, uint64_t addr,
> uint64_t new_lo, uint64_t new_hi)
> {
> - return do_paired_cmpxchg64_be(env, addr, new_lo, new_hi, true);
> + return do_paired_cmpxchg64_be(env, addr, new_lo, new_hi, true, GETPC());
> }
--
Alex Bennée
next prev parent reply other threads:[~2017-11-14 16:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-14 9:42 [Qemu-devel] [PATCH] tcg: Record code_gen_buffer address for user-only memory helpers Richard Henderson
2017-11-14 12:01 ` Peter Maydell
2017-11-14 12:53 ` [Qemu-devel] [PATCH 2/1] target/arm: Use helper_retaddr in stxp helpers Richard Henderson
2017-11-14 13:13 ` Peter Maydell
2017-11-14 16:09 ` Alex Bennée
2017-11-14 13:41 ` [Qemu-devel] [PATCH 3/1] target/arm: Fix GETPC usage in do_paired_cmpxchg64_l/be Richard Henderson
2017-11-14 16:11 ` Alex Bennée [this message]
2017-11-14 16:09 ` [Qemu-devel] [PATCH] tcg: Record code_gen_buffer address for user-only memory helpers Alex Bennée
2017-11-15 9:39 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fu9galib.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.