qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_*
@ 2021-07-25 21:42 Taylor Simpson
  2021-07-25 21:42 ` [PULL v2 1/2] " Taylor Simpson
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Taylor Simpson @ 2021-07-25 21:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: ale, peter.maydell, bcain, richard.henderson, tsimpson, philmd

The following changes since commit 7457b407edd6e8555e4b46488aab2f13959fccf8:

  Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-07-19' into staging (2021-07-19 11:34:08 +0100)

are available in the git repository at:

  https://github.com/quic/qemu tags/pull-hex-20210725

for you to fetch changes up to 25fc9b79cd057e394f35d7afc18493becd515797:

  target/hexagon: Drop include of qemu.h (2021-07-21 15:54:02 -0500)

----------------------------------------------------------------
The Hexagon target was silently failing the SIGSEGV test because
the signal handler was not called.

Patch 1/2 fixes the Hexagon target
Patch 2/2 drops include qemu.h from target/hexagon/op_helper.c

**** Changes in v2 ****
Drop changes to linux-test.c due to intermittent failures on riscv

----------------------------------------------------------------
Peter Maydell (1):
      target/hexagon: Drop include of qemu.h

Taylor Simpson (1):
      Hexagon (target/hexagon) remove put_user_*/get_user_*

 target/hexagon/op_helper.c | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PULL v2 1/2] Hexagon (target/hexagon) remove put_user_*/get_user_*
  2021-07-25 21:42 [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Taylor Simpson
@ 2021-07-25 21:42 ` Taylor Simpson
  2021-07-25 21:42 ` [PULL v2 2/2] target/hexagon: Drop include of qemu.h Taylor Simpson
  2021-07-26 18:18 ` [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Peter Maydell
  2 siblings, 0 replies; 4+ messages in thread
From: Taylor Simpson @ 2021-07-25 21:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: ale, peter.maydell, bcain, richard.henderson, tsimpson, philmd

Replace put_user_* with cpu_st*_data_ra
Replace get_user_* with cpu_ld*_data_ra

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
Message-Id: <1626384156-6248-2-git-send-email-tsimpson@quicinc.com>
---
 target/hexagon/op_helper.c | 39 ++++++++++++++++++---------------------
 1 file changed, 18 insertions(+), 21 deletions(-)

diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c
index 4595559..a959dba 100644
--- a/target/hexagon/op_helper.c
+++ b/target/hexagon/op_helper.c
@@ -17,6 +17,7 @@
 
 #include "qemu/osdep.h"
 #include "qemu.h"
+#include "exec/cpu_ldst.h"
 #include "exec/helper-proto.h"
 #include "fpu/softfloat.h"
 #include "cpu.h"
@@ -140,22 +141,22 @@ void HELPER(debug_check_store_width)(CPUHexagonState *env, int slot, int check)
 
 void HELPER(commit_store)(CPUHexagonState *env, int slot_num)
 {
-    switch (env->mem_log_stores[slot_num].width) {
+    uintptr_t ra = GETPC();
+    uint8_t width = env->mem_log_stores[slot_num].width;
+    target_ulong va = env->mem_log_stores[slot_num].va;
+
+    switch (width) {
     case 1:
-        put_user_u8(env->mem_log_stores[slot_num].data32,
-                    env->mem_log_stores[slot_num].va);
+        cpu_stb_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra);
         break;
     case 2:
-        put_user_u16(env->mem_log_stores[slot_num].data32,
-                     env->mem_log_stores[slot_num].va);
+        cpu_stw_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra);
         break;
     case 4:
-        put_user_u32(env->mem_log_stores[slot_num].data32,
-                     env->mem_log_stores[slot_num].va);
+        cpu_stl_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra);
         break;
     case 8:
-        put_user_u64(env->mem_log_stores[slot_num].data64,
-                     env->mem_log_stores[slot_num].va);
+        cpu_stq_data_ra(env, va, env->mem_log_stores[slot_num].data64, ra);
         break;
     default:
         g_assert_not_reached();
@@ -393,37 +394,33 @@ static void check_noshuf(CPUHexagonState *env, uint32_t slot)
 static uint8_t mem_load1(CPUHexagonState *env, uint32_t slot,
                          target_ulong vaddr)
 {
-    uint8_t retval;
+    uintptr_t ra = GETPC();
     check_noshuf(env, slot);
-    get_user_u8(retval, vaddr);
-    return retval;
+    return cpu_ldub_data_ra(env, vaddr, ra);
 }
 
 static uint16_t mem_load2(CPUHexagonState *env, uint32_t slot,
                           target_ulong vaddr)
 {
-    uint16_t retval;
+    uintptr_t ra = GETPC();
     check_noshuf(env, slot);
-    get_user_u16(retval, vaddr);
-    return retval;
+    return cpu_lduw_data_ra(env, vaddr, ra);
 }
 
 static uint32_t mem_load4(CPUHexagonState *env, uint32_t slot,
                           target_ulong vaddr)
 {
-    uint32_t retval;
+    uintptr_t ra = GETPC();
     check_noshuf(env, slot);
-    get_user_u32(retval, vaddr);
-    return retval;
+    return cpu_ldl_data_ra(env, vaddr, ra);
 }
 
 static uint64_t mem_load8(CPUHexagonState *env, uint32_t slot,
                           target_ulong vaddr)
 {
-    uint64_t retval;
+    uintptr_t ra = GETPC();
     check_noshuf(env, slot);
-    get_user_u64(retval, vaddr);
-    return retval;
+    return cpu_ldq_data_ra(env, vaddr, ra);
 }
 
 /* Floating point */
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PULL v2 2/2] target/hexagon: Drop include of qemu.h
  2021-07-25 21:42 [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Taylor Simpson
  2021-07-25 21:42 ` [PULL v2 1/2] " Taylor Simpson
@ 2021-07-25 21:42 ` Taylor Simpson
  2021-07-26 18:18 ` [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Peter Maydell
  2 siblings, 0 replies; 4+ messages in thread
From: Taylor Simpson @ 2021-07-25 21:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: ale, peter.maydell, bcain, richard.henderson, tsimpson, philmd

From: Peter Maydell <peter.maydell@linaro.org>

The qemu.h file is a CONFIG_USER_ONLY header; it doesn't appear on
the include path for softmmu builds.  Currently we include it
unconditionally in target/hexagon/op_helper.c.  We used to need it
for the put_user_*() and get_user_*() functions, but now that we have
removed the uses of those from op_helper.c, the only reason it's
still there is that we're implicitly relying on it pulling in some
other headers.

Explicitly include the headers we need for other functions, and drop
the include of qemu.h.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20210717103017.20491-1-peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
---
 target/hexagon/op_helper.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c
index a959dba..61d5cde 100644
--- a/target/hexagon/op_helper.c
+++ b/target/hexagon/op_helper.c
@@ -16,7 +16,8 @@
  */
 
 #include "qemu/osdep.h"
-#include "qemu.h"
+#include "qemu/log.h"
+#include "exec/exec-all.h"
 #include "exec/cpu_ldst.h"
 #include "exec/helper-proto.h"
 #include "fpu/softfloat.h"
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_*
  2021-07-25 21:42 [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Taylor Simpson
  2021-07-25 21:42 ` [PULL v2 1/2] " Taylor Simpson
  2021-07-25 21:42 ` [PULL v2 2/2] target/hexagon: Drop include of qemu.h Taylor Simpson
@ 2021-07-26 18:18 ` Peter Maydell
  2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2021-07-26 18:18 UTC (permalink / raw)
  To: Taylor Simpson
  Cc: Alessandro Di Federico, Philippe Mathieu-Daudé,
	Richard Henderson, QEMU Developers, Brian Cain

On Sun, 25 Jul 2021 at 22:42, Taylor Simpson <tsimpson@quicinc.com> wrote:
>
> The following changes since commit 7457b407edd6e8555e4b46488aab2f13959fccf8:
>
>   Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-07-19' into staging (2021-07-19 11:34:08 +0100)
>
> are available in the git repository at:
>
>   https://github.com/quic/qemu tags/pull-hex-20210725
>
> for you to fetch changes up to 25fc9b79cd057e394f35d7afc18493becd515797:
>
>   target/hexagon: Drop include of qemu.h (2021-07-21 15:54:02 -0500)
>
> ----------------------------------------------------------------
> The Hexagon target was silently failing the SIGSEGV test because
> the signal handler was not called.
>
> Patch 1/2 fixes the Hexagon target
> Patch 2/2 drops include qemu.h from target/hexagon/op_helper.c
>
> **** Changes in v2 ****
> Drop changes to linux-test.c due to intermittent failures on riscv
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.1
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-26 18:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-25 21:42 [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Taylor Simpson
2021-07-25 21:42 ` [PULL v2 1/2] " Taylor Simpson
2021-07-25 21:42 ` [PULL v2 2/2] target/hexagon: Drop include of qemu.h Taylor Simpson
2021-07-26 18:18 ` [PULL v2 0/2] Hexagon (target/hexagon) remove put_user_*/get_user_* Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).