[Qemu-devel] [PATCH v2] The m68k gdbstub SR reg request doesnt include Condition-Codes

Lucien Murray-Pitts posted 1 patch 4 years, 11 months ago
Test s390x passed
Test checkpatch passed
Test asan passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190609090713.GA14864@localhost.localdomain
Maintainers: Laurent Vivier <laurent@vivier.eu>
There is a newer version of this series
target/m68k/gdbstub.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[Qemu-devel] [PATCH v2] The m68k gdbstub SR reg request doesnt include Condition-Codes
Posted by Lucien Murray-Pitts 4 years, 11 months ago
The register request via gdbstub would return the SR part
which contains the Trace/Master/IRQ state flags, but
would be missing the CR (Condition Register) state bits.

This fix adds this support by merging them in the m68k
specific gdbstub handler m68k_cpu_gdb_read_register for SR register.

Signed-off-by: Lucien Murray-Pitts <lucienmp.qemu@gmail.com>
---

Notes:
    v1->v2
      - remove superfluous braces from my additional code
      - slightly amended the commit message

 target/m68k/gdbstub.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/target/m68k/gdbstub.c b/target/m68k/gdbstub.c
index fd2bb46c42..5e5aef5c0f 100644
--- a/target/m68k/gdbstub.c
+++ b/target/m68k/gdbstub.c
@@ -35,8 +35,10 @@ int m68k_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
         return gdb_get_reg32(mem_buf, env->aregs[n - 8]);
     } else {
         switch (n) {
-        case 16:
-            return gdb_get_reg32(mem_buf, env->sr);
+        case 16: {
+            /* SR is made of SR+CCR, CCR is many 1bit flags so uses helper */
+            return gdb_get_reg32(mem_buf, env->sr | cpu_m68k_get_ccr(env));
+        }
         case 17:
             return gdb_get_reg32(mem_buf, env->pc);
         }
-- 
2.21.0



Re: [Qemu-devel] [PATCH v2] The m68k gdbstub SR reg request doesnt include Condition-Codes
Posted by Laurent Vivier 4 years, 11 months ago
Le 09/06/2019 à 11:07, Lucien Murray-Pitts a écrit :
> The register request via gdbstub would return the SR part
> which contains the Trace/Master/IRQ state flags, but
> would be missing the CR (Condition Register) state bits.
> 
> This fix adds this support by merging them in the m68k
> specific gdbstub handler m68k_cpu_gdb_read_register for SR register.
> 
> Signed-off-by: Lucien Murray-Pitts <lucienmp.qemu@gmail.com>
> ---
> 
> Notes:
>     v1->v2
>       - remove superfluous braces from my additional code

You removed the parentheses.

>       - slightly amended the commit message
> 
>  target/m68k/gdbstub.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/target/m68k/gdbstub.c b/target/m68k/gdbstub.c
> index fd2bb46c42..5e5aef5c0f 100644
> --- a/target/m68k/gdbstub.c
> +++ b/target/m68k/gdbstub.c
> @@ -35,8 +35,10 @@ int m68k_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
>          return gdb_get_reg32(mem_buf, env->aregs[n - 8]);
>      } else {
>          switch (n) {
> -        case 16:
> -            return gdb_get_reg32(mem_buf, env->sr);
> +        case 16: {

You can also remove the braces.

> +            /* SR is made of SR+CCR, CCR is many 1bit flags so uses helper */
> +            return gdb_get_reg32(mem_buf, env->sr | cpu_m68k_get_ccr(env));
> +        }
>          case 17:
>              return gdb_get_reg32(mem_buf, env->pc);
>          }
> 

Thanks,
Laurent