qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 0/6] hex queue
@ 2024-06-09  0:56 Brian Cain
  2024-06-09 18:21 ` Richard Henderson
  0 siblings, 1 reply; 11+ messages in thread
From: Brian Cain @ 2024-06-09  0:56 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, armbru, richard.henderson, philmd, peter.maydell,
	quic_mathbern, stefanha, ale, anjo, quic_mliebel, ltaylorsimpson

The following changes since commit 3e246da2c3f85298b52f8a1154b832acf36aa656:

  Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-06-08 07:40:08 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 1967a1ea985299c090dfd3efc1e5323ce60d75df:

  target/hexagon: idef-parser simplify predicate init (2024-06-08 17:49:36 -0700)

----------------------------------------------------------------
* hexagon: idef-parser cleanup
* hexagon: implement PC alignment exception, tests
* hexagon: fix for HVX new-value store

----------------------------------------------------------------
Anton Johansson (4):
      target/hexagon: idef-parser remove unused defines
      target/hexagon: idef-parser remove undefined functions
      target/hexagon: idef-parser fix leak of init_list
      target/hexagon: idef-parser simplify predicate init

Matheus Tavares Bernardino (2):
      Hexagon: fix HVX store new
      Hexagon: add PC alignment check and exception

 linux-user/hexagon/cpu_loop.c               |   4 ++
 target/hexagon/cpu.h                        |   7 ++
 target/hexagon/cpu_bits.h                   |   4 ++
 target/hexagon/gen_trans_funcs.py           |   9 ++-
 target/hexagon/idef-parser/idef-parser.h    |  10 ---
 target/hexagon/idef-parser/idef-parser.y    |   2 -
 target/hexagon/idef-parser/parser-helpers.c |  35 +++++----
 target/hexagon/idef-parser/parser-helpers.h |  13 ----
 target/hexagon/macros.h                     |   3 -
 target/hexagon/op_helper.c                  |   9 ++-
 tests/tcg/hexagon/Makefile.target           |   2 +
 tests/tcg/hexagon/hvx_misc.c                |  23 ++++++
 tests/tcg/hexagon/unaligned_pc.c            | 107 ++++++++++++++++++++++++++++
 13 files changed, 179 insertions(+), 49 deletions(-)
 create mode 100644 tests/tcg/hexagon/unaligned_pc.c

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

* Re: [PULL 0/6] hex queue
  2024-06-09  0:56 Brian Cain
@ 2024-06-09 18:21 ` Richard Henderson
  0 siblings, 0 replies; 11+ messages in thread
From: Richard Henderson @ 2024-06-09 18:21 UTC (permalink / raw)
  To: Brian Cain, qemu-devel
  Cc: armbru, philmd, peter.maydell, quic_mathbern, stefanha, ale, anjo,
	quic_mliebel, ltaylorsimpson

On 6/8/24 17:56, Brian Cain wrote:
> The following changes since commit 3e246da2c3f85298b52f8a1154b832acf36aa656:
> 
>    Merge tag 'for-upstream' ofhttps://gitlab.com/bonzini/qemu  into staging (2024-06-08 07:40:08 -0700)
> 
> are available in the Git repository at:
> 
>    https://github.com/quic/qemu  tags/pull-hex-20240608
> 
> for you to fetch changes up to 1967a1ea985299c090dfd3efc1e5323ce60d75df:
> 
>    target/hexagon: idef-parser simplify predicate init (2024-06-08 17:49:36 -0700)
> 
> ----------------------------------------------------------------
> * hexagon: idef-parser cleanup
> * hexagon: implement PC alignment exception, tests
> * hexagon: fix for HVX new-value store

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/9.1 as appropriate.


r~



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

* [PULL 0/6] hex queue
@ 2024-08-08  3:42 Brian Cain
  2024-08-08  3:42 ` [PULL 1/6] Hexagon: fix F2_conv_* instructions for negative zero Brian Cain
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson

The following changes since commit 4c395ac42e55ff8e9fd4c992e351a04b10785503:

  Merge tag 'pull-tcg-20240808' of https://gitlab.com/rth7680/qemu into staging (2024-08-08 09:07:00 +1000)

are available in the Git repository at:

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

for you to fetch changes up to 47f3361a3af9d709218038a23b8907525310d2c3:

  target/hexagon: switch to dc set_props() list (2024-08-07 20:37:21 -0700)

----------------------------------------------------------------
Hexagon updates: lldb preds, v66 CPU, F2_conv* fix

----------------------------------------------------------------
Anton Johansson (1):
      target/hexagon/idef-parser: Remove self-assignment

Brian Cain (3):
      MAINTAINERS: Add my hexagon git tree
      target/hexagon: define a v66 CPU
      target/hexagon: switch to dc set_props() list

Matheus Tavares Bernardino (1):
      Hexagon: fix F2_conv_* instructions for negative zero

Taylor Simpson (1):
      Hexagon: lldb read/write predicate registers p0/p1/p2/p3

 MAINTAINERS                              |  1 +
 gdb-xml/hexagon-core.xml                 |  6 +++++-
 target/hexagon/cpu-qom.h                 |  1 +
 target/hexagon/cpu.c                     | 20 ++++++++++----------
 target/hexagon/gdbstub.c                 | 19 ++++++++++++++++++-
 target/hexagon/idef-parser/idef-parser.y |  1 -
 target/hexagon/op_helper.c               | 18 +++++++++---------
 tests/tcg/hexagon/usr.c                  | 12 +++++++++++-
 8 files changed, 55 insertions(+), 23 deletions(-)

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

* [PULL 1/6] Hexagon: fix F2_conv_* instructions for negative zero
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
@ 2024-08-08  3:42 ` Brian Cain
  2024-08-08  3:42 ` [PULL 2/6] Hexagon: lldb read/write predicate registers p0/p1/p2/p3 Brian Cain
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson

From: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>

The implementation for these instructions handles -0 as an invalid float
point value, whereas the Hexagon hardware considers it the same as +0
(which is valid). Let's fix that and add a regression test.

Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>
---
 target/hexagon/op_helper.c | 18 +++++++++---------
 tests/tcg/hexagon/usr.c    | 12 +++++++++++-
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c
index ae5a605513..90e7aaa097 100644
--- a/target/hexagon/op_helper.c
+++ b/target/hexagon/op_helper.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
+ *  Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -683,7 +683,7 @@ uint32_t HELPER(conv_sf2uw)(CPUHexagonState *env, float32 RsV)
     uint32_t RdV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV)) {
+    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV) && !float32_is_zero(RsV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RdV = 0;
     } else {
@@ -713,7 +713,7 @@ uint64_t HELPER(conv_sf2ud)(CPUHexagonState *env, float32 RsV)
     uint64_t RddV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV)) {
+    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV) && !float32_is_zero(RsV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RddV = 0;
     } else {
@@ -743,7 +743,7 @@ uint32_t HELPER(conv_df2uw)(CPUHexagonState *env, float64 RssV)
     uint32_t RdV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV)) {
+    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV) && !float64_is_zero(RssV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RdV = 0;
     } else {
@@ -773,7 +773,7 @@ uint64_t HELPER(conv_df2ud)(CPUHexagonState *env, float64 RssV)
     uint64_t RddV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV)) {
+    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV) && !float64_is_zero(RssV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RddV = 0;
     } else {
@@ -803,7 +803,7 @@ uint32_t HELPER(conv_sf2uw_chop)(CPUHexagonState *env, float32 RsV)
     uint32_t RdV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV)) {
+    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV) && !float32_is_zero(RsV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RdV = 0;
     } else {
@@ -833,7 +833,7 @@ uint64_t HELPER(conv_sf2ud_chop)(CPUHexagonState *env, float32 RsV)
     uint64_t RddV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV)) {
+    if (float32_is_neg(RsV) && !float32_is_any_nan(RsV) && !float32_is_zero(RsV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RddV = 0;
     } else {
@@ -863,7 +863,7 @@ uint32_t HELPER(conv_df2uw_chop)(CPUHexagonState *env, float64 RssV)
     uint32_t RdV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV)) {
+    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV) && !float64_is_zero(RssV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RdV = 0;
     } else {
@@ -893,7 +893,7 @@ uint64_t HELPER(conv_df2ud_chop)(CPUHexagonState *env, float64 RssV)
     uint64_t RddV;
     arch_fpop_start(env);
     /* Hexagon checks the sign before rounding */
-    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV)) {
+    if (float64_is_neg(RssV) && !float64_is_any_nan(RssV) && !float64_is_zero(RssV)) {
         float_raise(float_flag_invalid, &env->fp_status);
         RddV = 0;
     } else {
diff --git a/tests/tcg/hexagon/usr.c b/tests/tcg/hexagon/usr.c
index 92bc86a213..f0b23d312b 100644
--- a/tests/tcg/hexagon/usr.c
+++ b/tests/tcg/hexagon/usr.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright(c) 2022-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
+ *  Copyright(c) 2022-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -1007,6 +1007,11 @@ int main()
     TEST_P_OP_R(conv_sf2d_chop,   SF_QNaN,  0xffffffffffffffffULL,  USR_FPINVF);
     TEST_P_OP_R(conv_sf2d_chop,   SF_SNaN,  0xffffffffffffffffULL,  USR_FPINVF);
 
+    TEST_R_OP_R(conv_sf2uw,       SF_zero_neg,  0, USR_CLEAR);
+    TEST_R_OP_R(conv_sf2uw_chop,  SF_zero_neg,  0, USR_CLEAR);
+    TEST_P_OP_R(conv_sf2ud,       SF_zero_neg,  0, USR_CLEAR);
+    TEST_P_OP_R(conv_sf2ud_chop,  SF_zero_neg,  0, USR_CLEAR);
+
     TEST_R_OP_P(conv_df2sf,       DF_QNaN,  SF_HEX_NaN,             USR_CLEAR);
     TEST_R_OP_P(conv_df2sf,       DF_SNaN,  SF_HEX_NaN,             USR_FPINVF);
     TEST_R_OP_P(conv_df2uw,       DF_QNaN,  0xffffffff,             USR_FPINVF);
@@ -1020,6 +1025,11 @@ int main()
     TEST_R_OP_P(conv_df2uw_chop,  DF_QNaN,  0xffffffff,             USR_FPINVF);
     TEST_R_OP_P(conv_df2uw_chop,  DF_SNaN,  0xffffffff,             USR_FPINVF);
 
+    TEST_R_OP_P(conv_df2uw,       DF_zero_neg,  0, USR_CLEAR);
+    TEST_R_OP_P(conv_df2uw_chop,  DF_zero_neg,  0, USR_CLEAR);
+    TEST_P_OP_P(conv_df2ud,       DF_zero_neg,  0, USR_CLEAR);
+    TEST_P_OP_P(conv_df2ud_chop,  DF_zero_neg,  0, USR_CLEAR);
+
     /* Test for typo in HELPER(conv_df2uw_chop) */
     TEST_R_OP_P(conv_df2uw_chop, 0xffffff7f00000001ULL, 0xffffffff, USR_FPINVF);
 
-- 
2.34.1


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

* [PULL 2/6] Hexagon: lldb read/write predicate registers p0/p1/p2/p3
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
  2024-08-08  3:42 ` [PULL 1/6] Hexagon: fix F2_conv_* instructions for negative zero Brian Cain
@ 2024-08-08  3:42 ` Brian Cain
  2024-08-08  3:42 ` [PULL 3/6] target/hexagon/idef-parser: Remove self-assignment Brian Cain
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson, Alex Bennée

From: Taylor Simpson <ltaylorsimpson@gmail.com>

hexagon-core.xml only exposes register p3_0 which is an alias that
aggregates the predicate registers.  It is more convenient for users
to interact directly with the predicate registers.

Tested with lldb downloaded from this location
https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.4/clang+llvm-18.1.4-x86_64-linux-gnu-ubuntu-18.04.tar.xz

BEFORE:
(lldb) reg read p3_0
    p3_0 = 0x00000000
(lldb) reg read p0
error: Invalid register name 'p0'.
(lldb) reg write p1 0xf
error: Register not found for 'p1'.

AFTER:
(lldb) reg read p3_0
    p3_0 = 0x00000000
(lldb) reg read p0
      p0 = 0x00
(lldb) reg read -s 1
Predicate Registers:
        p0 = 0x00
        p1 = 0x00
        p2 = 0x00
        p3 = 0x00

(lldb) reg write p1 0xf
(lldb) reg read p3_0
    p3_0 = 0x00000f00
(lldb) reg write p3_0 0xff00ff00
(lldb) reg read -s 1
Predicate Registers:
        p0 = 0x00
        p1 = 0xff
        p2 = 0x00
        p3 = 0xff

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Message-Id: <20240613182209.140082-1-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>
---
 gdb-xml/hexagon-core.xml |  6 +++++-
 target/hexagon/gdbstub.c | 19 ++++++++++++++++++-
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/gdb-xml/hexagon-core.xml b/gdb-xml/hexagon-core.xml
index e181163cff..b94378112a 100644
--- a/gdb-xml/hexagon-core.xml
+++ b/gdb-xml/hexagon-core.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright(c) 2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
+  Copyright(c) 2023-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
 
   This work is licensed under the terms of the GNU GPL, version 2 or
   (at your option) any later version. See the COPYING file in the
@@ -80,5 +80,9 @@
   <reg name="c29"              bitsize="32" offset="244" encoding="uint" format="hex" group="Thread Registers" dwarf_regnum="61"/>
   <reg name="utimerlo"         bitsize="32" offset="248" encoding="uint" format="hex" group="Thread Registers" dwarf_regnum="62"/>
   <reg name="utimerhi"         bitsize="32" offset="252" encoding="uint" format="hex" group="Thread Registers" dwarf_regnum="63"/>
+  <reg name="p0"               bitsize="8"  offset="256" encoding="uint" format="hex" group="Predicate Registers" dwarf_regnum="64"/>
+  <reg name="p1"               bitsize="8"  offset="257" encoding="uint" format="hex" group="Predicate Registers" dwarf_regnum="65"/>
+  <reg name="p2"               bitsize="8"  offset="258" encoding="uint" format="hex" group="Predicate Registers" dwarf_regnum="66"/>
+  <reg name="p3"               bitsize="8"  offset="259" encoding="uint" format="hex" group="Predicate Registers" dwarf_regnum="67"/>
 
 </feature>
diff --git a/target/hexagon/gdbstub.c b/target/hexagon/gdbstub.c
index 502c6987f0..94e1db8ef8 100644
--- a/target/hexagon/gdbstub.c
+++ b/target/hexagon/gdbstub.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved.
+ *  Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -36,6 +36,14 @@ int hexagon_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
         return gdb_get_regl(mem_buf, env->gpr[n]);
     }
 
+    n -= TOTAL_PER_THREAD_REGS;
+
+    if (n < NUM_PREGS) {
+        return gdb_get_reg8(mem_buf, env->pred[n]);
+    }
+
+    n -= NUM_PREGS;
+
     g_assert_not_reached();
 }
 
@@ -56,6 +64,15 @@ int hexagon_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
         return sizeof(target_ulong);
     }
 
+    n -= TOTAL_PER_THREAD_REGS;
+
+    if (n < NUM_PREGS) {
+        env->pred[n] = ldtul_p(mem_buf) & 0xff;
+        return sizeof(uint8_t);
+    }
+
+    n -= NUM_PREGS;
+
     g_assert_not_reached();
 }
 
-- 
2.34.1


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

* [PULL 3/6] target/hexagon/idef-parser: Remove self-assignment
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
  2024-08-08  3:42 ` [PULL 1/6] Hexagon: fix F2_conv_* instructions for negative zero Brian Cain
  2024-08-08  3:42 ` [PULL 2/6] Hexagon: lldb read/write predicate registers p0/p1/p2/p3 Brian Cain
@ 2024-08-08  3:42 ` Brian Cain
  2024-08-08  3:42 ` [PULL 4/6] MAINTAINERS: Add my hexagon git tree Brian Cain
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson

From: Anton Johansson <anjo@rev.ng>

The self assignment is clearly useless, and @1.last_column does not have
to be set for an expression with only a single token, so remove it.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230713120853.27023-1-anjo@rev.ng>
Signed-off-by: Brian Cain <bcain@quicinc.com>
---
 target/hexagon/idef-parser/idef-parser.y | 1 -
 1 file changed, 1 deletion(-)

diff --git a/target/hexagon/idef-parser/idef-parser.y b/target/hexagon/idef-parser/idef-parser.y
index 9ffb9f9699..c6f17c6afa 100644
--- a/target/hexagon/idef-parser/idef-parser.y
+++ b/target/hexagon/idef-parser/idef-parser.y
@@ -800,7 +800,6 @@ rvalue : FAIL
 
 lvalue : FAIL
          {
-             @1.last_column = @1.last_column;
              yyassert(c, &@1, false, "Encountered a FAIL token as lvalue.\n");
          }
        | REG
-- 
2.34.1


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

* [PULL 4/6] MAINTAINERS: Add my hexagon git tree
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
                   ` (2 preceding siblings ...)
  2024-08-08  3:42 ` [PULL 3/6] target/hexagon/idef-parser: Remove self-assignment Brian Cain
@ 2024-08-08  3:42 ` Brian Cain
  2024-08-08  3:42 ` [PULL 5/6] target/hexagon: define a v66 CPU Brian Cain
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson

Add my git tree for hexagon.  Note that the branch is "hex-next" and not
"hex.next" as had been used previously.  But I'll keep the "hex.next" branch
in sync with "hex-next" until this commit lands to avoid confusion.

Signed-off-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 74a85360fd..10af212632 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -245,6 +245,7 @@ F: disas/hexagon.c
 F: configs/targets/hexagon-linux-user/default.mak
 F: docker/dockerfiles/debian-hexagon-cross.docker
 F: gdb-xml/hexagon*.xml
+T: git https://github.com/quic/qemu.git hex-next
 
 Hexagon idef-parser
 M: Alessandro Di Federico <ale@rev.ng>
-- 
2.34.1


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

* [PULL 5/6] target/hexagon: define a v66 CPU
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
                   ` (3 preceding siblings ...)
  2024-08-08  3:42 ` [PULL 4/6] MAINTAINERS: Add my hexagon git tree Brian Cain
@ 2024-08-08  3:42 ` Brian Cain
  2024-08-08  3:42 ` [PULL 6/6] target/hexagon: switch to dc set_props() list Brian Cain
  2024-08-08 22:39 ` [PULL 0/6] hex queue Richard Henderson
  6 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson

For now, v66 behavior is the same as other CPUs.

Signed-off-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com>
---
 target/hexagon/cpu-qom.h | 1 +
 target/hexagon/cpu.c     | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/target/hexagon/cpu-qom.h b/target/hexagon/cpu-qom.h
index da92fe7468..0b149bd5fe 100644
--- a/target/hexagon/cpu-qom.h
+++ b/target/hexagon/cpu-qom.h
@@ -16,6 +16,7 @@
 #define HEXAGON_CPU_TYPE_SUFFIX "-" TYPE_HEXAGON_CPU
 #define HEXAGON_CPU_TYPE_NAME(name) (name HEXAGON_CPU_TYPE_SUFFIX)
 
+#define TYPE_HEXAGON_CPU_V66 HEXAGON_CPU_TYPE_NAME("v66")
 #define TYPE_HEXAGON_CPU_V67 HEXAGON_CPU_TYPE_NAME("v67")
 #define TYPE_HEXAGON_CPU_V68 HEXAGON_CPU_TYPE_NAME("v68")
 #define TYPE_HEXAGON_CPU_V69 HEXAGON_CPU_TYPE_NAME("v69")
diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c
index 64cc05cca7..85f1e97d8f 100644
--- a/target/hexagon/cpu.c
+++ b/target/hexagon/cpu.c
@@ -26,6 +26,7 @@
 #include "tcg/tcg.h"
 #include "exec/gdbstub.h"
 
+static void hexagon_v66_cpu_init(Object *obj) { }
 static void hexagon_v67_cpu_init(Object *obj) { }
 static void hexagon_v68_cpu_init(Object *obj) { }
 static void hexagon_v69_cpu_init(Object *obj) { }
@@ -373,6 +374,7 @@ static const TypeInfo hexagon_cpu_type_infos[] = {
         .class_size = sizeof(HexagonCPUClass),
         .class_init = hexagon_cpu_class_init,
     },
+    DEFINE_CPU(TYPE_HEXAGON_CPU_V66,              hexagon_v66_cpu_init),
     DEFINE_CPU(TYPE_HEXAGON_CPU_V67,              hexagon_v67_cpu_init),
     DEFINE_CPU(TYPE_HEXAGON_CPU_V68,              hexagon_v68_cpu_init),
     DEFINE_CPU(TYPE_HEXAGON_CPU_V69,              hexagon_v69_cpu_init),
-- 
2.34.1


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

* [PULL 6/6] target/hexagon: switch to dc set_props() list
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
                   ` (4 preceding siblings ...)
  2024-08-08  3:42 ` [PULL 5/6] target/hexagon: define a v66 CPU Brian Cain
@ 2024-08-08  3:42 ` Brian Cain
  2024-08-08 22:39 ` [PULL 0/6] hex queue Richard Henderson
  6 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08  3:42 UTC (permalink / raw)
  To: qemu-devel
  Cc: bcain, philmd, peter.maydell, quic_mathbern, ale, anjo,
	quic_mliebel, ltaylorsimpson

Define a hexagon_cpu_properties list to match the idiom used
by other targets.

Signed-off-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com>
---
 target/hexagon/cpu.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c
index 85f1e97d8f..020038fc49 100644
--- a/target/hexagon/cpu.c
+++ b/target/hexagon/cpu.c
@@ -48,13 +48,13 @@ static ObjectClass *hexagon_cpu_class_by_name(const char *cpu_model)
     return oc;
 }
 
-static Property hexagon_lldb_compat_property =
-    DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false);
-static Property hexagon_lldb_stack_adjust_property =
-    DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjust,
-                         0, qdev_prop_uint32, target_ulong);
-static Property hexagon_short_circuit_property =
-    DEFINE_PROP_BOOL("short-circuit", HexagonCPU, short_circuit, true);
+static Property hexagon_cpu_properties[] = {
+    DEFINE_PROP_BOOL("lldb-compat", HexagonCPU, lldb_compat, false),
+    DEFINE_PROP_UNSIGNED("lldb-stack-adjust", HexagonCPU, lldb_stack_adjust, 0,
+                         qdev_prop_uint32, target_ulong),
+    DEFINE_PROP_BOOL("short-circuit", HexagonCPU, short_circuit, true),
+    DEFINE_PROP_END_OF_LIST()
+};
 
 const char * const hexagon_regnames[TOTAL_PER_THREAD_REGS] = {
    "r0", "r1",  "r2",  "r3",  "r4",   "r5",  "r6",  "r7",
@@ -317,9 +317,6 @@ static void hexagon_cpu_realize(DeviceState *dev, Error **errp)
 
 static void hexagon_cpu_init(Object *obj)
 {
-    qdev_property_add_static(DEVICE(obj), &hexagon_lldb_compat_property);
-    qdev_property_add_static(DEVICE(obj), &hexagon_lldb_stack_adjust_property);
-    qdev_property_add_static(DEVICE(obj), &hexagon_short_circuit_property);
 }
 
 #include "hw/core/tcg-cpu-ops.h"
@@ -340,6 +337,7 @@ static void hexagon_cpu_class_init(ObjectClass *c, void *data)
     device_class_set_parent_realize(dc, hexagon_cpu_realize,
                                     &mcc->parent_realize);
 
+    device_class_set_props(dc, hexagon_cpu_properties);
     resettable_class_set_parent_phases(rc, NULL, hexagon_cpu_reset_hold, NULL,
                                        &mcc->parent_phases);
 
-- 
2.34.1


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

* Re: [PULL 0/6] hex queue
  2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
                   ` (5 preceding siblings ...)
  2024-08-08  3:42 ` [PULL 6/6] target/hexagon: switch to dc set_props() list Brian Cain
@ 2024-08-08 22:39 ` Richard Henderson
  2024-08-08 22:59   ` Brian Cain
  6 siblings, 1 reply; 11+ messages in thread
From: Richard Henderson @ 2024-08-08 22:39 UTC (permalink / raw)
  To: Brian Cain, qemu-devel
  Cc: philmd, peter.maydell, quic_mathbern, ale, anjo, quic_mliebel,
	ltaylorsimpson

On 8/8/24 13:42, Brian Cain wrote:
> The following changes since commit 4c395ac42e55ff8e9fd4c992e351a04b10785503:
> 
>    Merge tag 'pull-tcg-20240808' of https://gitlab.com/rth7680/qemu into staging (2024-08-08 09:07:00 +1000)
> 
> are available in the Git repository at:
> 
>    https://github.com/quic/qemu tags/pull-hex-20240807
> 
> for you to fetch changes up to 47f3361a3af9d709218038a23b8907525310d2c3:
> 
>    target/hexagon: switch to dc set_props() list (2024-08-07 20:37:21 -0700)
> 
> ----------------------------------------------------------------
> Hexagon updates: lldb preds, v66 CPU, F2_conv* fix


Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/9.1 as appropriate.

r~


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

* Re: [PULL 0/6] hex queue
  2024-08-08 22:39 ` [PULL 0/6] hex queue Richard Henderson
@ 2024-08-08 22:59   ` Brian Cain
  0 siblings, 0 replies; 11+ messages in thread
From: Brian Cain @ 2024-08-08 22:59 UTC (permalink / raw)
  To: Richard Henderson, Brian Cain, qemu-devel
  Cc: philmd, peter.maydell, quic_mathbern, ale, anjo, quic_mliebel,
	ltaylorsimpson


On 8/8/2024 5:39 PM, Richard Henderson wrote:
> On 8/8/24 13:42, Brian Cain wrote:
>> The following changes since commit 
>> 4c395ac42e55ff8e9fd4c992e351a04b10785503:
>>
>>    Merge tag 'pull-tcg-20240808' of https://gitlab.com/rth7680/qemu 
>> into staging (2024-08-08 09:07:00 +1000)
>>
>> are available in the Git repository at:
>>
>>    https://github.com/quic/qemu tags/pull-hex-20240807
>>
>> for you to fetch changes up to 47f3361a3af9d709218038a23b8907525310d2c3:
>>
>>    target/hexagon: switch to dc set_props() list (2024-08-07 20:37:21 
>> -0700)
>>
>> ----------------------------------------------------------------
>> Hexagon updates: lldb preds, v66 CPU, F2_conv* fix
>
>
> Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/9.1 as 
> appropriate.
>
I don't believe I have an account here - can you refer me to more info 
on how to get one?


> r~
>


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

end of thread, other threads:[~2024-08-08 23:00 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-08  3:42 [PULL 0/6] hex queue Brian Cain
2024-08-08  3:42 ` [PULL 1/6] Hexagon: fix F2_conv_* instructions for negative zero Brian Cain
2024-08-08  3:42 ` [PULL 2/6] Hexagon: lldb read/write predicate registers p0/p1/p2/p3 Brian Cain
2024-08-08  3:42 ` [PULL 3/6] target/hexagon/idef-parser: Remove self-assignment Brian Cain
2024-08-08  3:42 ` [PULL 4/6] MAINTAINERS: Add my hexagon git tree Brian Cain
2024-08-08  3:42 ` [PULL 5/6] target/hexagon: define a v66 CPU Brian Cain
2024-08-08  3:42 ` [PULL 6/6] target/hexagon: switch to dc set_props() list Brian Cain
2024-08-08 22:39 ` [PULL 0/6] hex queue Richard Henderson
2024-08-08 22:59   ` Brian Cain
  -- strict thread matches above, loose matches on Subject: below --
2024-06-09  0:56 Brian Cain
2024-06-09 18:21 ` Richard Henderson

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).