From d6db1fabccd61cdc0527cf7c701ae5cf7f277281 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Wed, 30 Nov 2011 16:06:55 +0000 Subject: ChangeLog: * s390-nat.c (SUBOFF): Remove. (s390_native_supply, s390_native_collect): New functions. (supply_gregset, supply_fpregset): Use s390_native_supply. (fill_gregset, fill_fpregset): Use s390_native_collect. * s390-tdep.c (s390_pseudo_register_reggroup_p): Update comment. (s390_unwind_pseudo_register): New function. (s390_prologue_frame_unwind_cache): Unwind PSW address and mask registers instead of PC and CC. (s390_backchain_frame_unwind_cache): Likewise. (s390_sigtramp_frame_unwind_cache): Do not unwind PC, CC, or full GPR pseudos. (s390_trad_frame_prev_register): New function. (s390_frame_prev_register): Use it. (s390_sigtramp_frame_prev_register): Likewise. (s390_dwarf2_prev_register): Use s390_unwind_pseudo_register. (s390_dwarf2_frame_init_reg): Unwind PSW address and mask. Use special callback to unwind any pseudo. * features/s390-core32.xml: Add pswm/pswa to save/restore group. * features/s390-core64.xml: Likewise. * features/s390x-core64.xml: Likewise. * features/s390-linux32.c: Regenerate. * features/s390-linux64.c: Likewise. * features/s390x-linux64.c: Likewise. gdbserver/ChangeLog: * linux-s390-low.c (s390_collect_ptrace_register): Fully convert PSW address/mask between 8-byte and 16-byte formats. (s390_supply_ptrace_register): Likewise. (s390_get_pc, s390_set_pc): 4-byte PSW address always includes basic addressing mode bit. --- gdb/features/s390-core32.xml | 4 ++-- gdb/features/s390-core64.xml | 4 ++-- gdb/features/s390-linux32.c | 5 +++-- gdb/features/s390-linux64.c | 5 +++-- gdb/features/s390x-core64.xml | 4 ++-- gdb/features/s390x-linux64.c | 5 +++-- 6 files changed, 15 insertions(+), 12 deletions(-) (limited to 'gdb/features') diff --git a/gdb/features/s390-core32.xml b/gdb/features/s390-core32.xml index 3c0937a..989e555 100644 --- a/gdb/features/s390-core32.xml +++ b/gdb/features/s390-core32.xml @@ -7,8 +7,8 @@ - - + + diff --git a/gdb/features/s390-core64.xml b/gdb/features/s390-core64.xml index 7abe38d..d5998c9 100644 --- a/gdb/features/s390-core64.xml +++ b/gdb/features/s390-core64.xml @@ -7,8 +7,8 @@ - - + + diff --git a/gdb/features/s390-linux32.c b/gdb/features/s390-linux32.c index 0ff3868..0e28c72 100644 --- a/gdb/features/s390-linux32.c +++ b/gdb/features/s390-linux32.c @@ -1,6 +1,7 @@ /* THIS FILE IS GENERATED. Original: s390-linux32.xml */ #include "defs.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_s390_linux32; @@ -14,8 +15,8 @@ initialize_tdesc_s390_linux32 (void) set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit")); feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core"); - tdesc_create_reg (feature, "pswm", 0, 0, "psw", 32, "uint32"); - tdesc_create_reg (feature, "pswa", 1, 0, "psw", 32, "uint32"); + tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32"); + tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32"); tdesc_create_reg (feature, "r0", 2, 1, "general", 32, "uint32"); tdesc_create_reg (feature, "r1", 3, 1, "general", 32, "uint32"); tdesc_create_reg (feature, "r2", 4, 1, "general", 32, "uint32"); diff --git a/gdb/features/s390-linux64.c b/gdb/features/s390-linux64.c index 1e39fc3..e7acfe2 100644 --- a/gdb/features/s390-linux64.c +++ b/gdb/features/s390-linux64.c @@ -1,6 +1,7 @@ /* THIS FILE IS GENERATED. Original: s390-linux64.xml */ #include "defs.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_s390_linux64; @@ -14,8 +15,8 @@ initialize_tdesc_s390_linux64 (void) set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit")); feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core"); - tdesc_create_reg (feature, "pswm", 0, 0, "psw", 32, "uint32"); - tdesc_create_reg (feature, "pswa", 1, 0, "psw", 32, "uint32"); + tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32"); + tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32"); tdesc_create_reg (feature, "r0h", 2, 1, "upper", 32, "uint32"); tdesc_create_reg (feature, "r0l", 3, 1, "lower", 32, "uint32"); tdesc_create_reg (feature, "r1h", 4, 1, "upper", 32, "uint32"); diff --git a/gdb/features/s390x-core64.xml b/gdb/features/s390x-core64.xml index eca8246..2f01903 100644 --- a/gdb/features/s390x-core64.xml +++ b/gdb/features/s390x-core64.xml @@ -7,8 +7,8 @@ - - + + diff --git a/gdb/features/s390x-linux64.c b/gdb/features/s390x-linux64.c index 91d2da9..06a9339 100644 --- a/gdb/features/s390x-linux64.c +++ b/gdb/features/s390x-linux64.c @@ -1,6 +1,7 @@ /* THIS FILE IS GENERATED. Original: s390x-linux64.xml */ #include "defs.h" +#include "osabi.h" #include "target-descriptions.h" struct target_desc *tdesc_s390x_linux64; @@ -14,8 +15,8 @@ initialize_tdesc_s390x_linux64 (void) set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit")); feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core"); - tdesc_create_reg (feature, "pswm", 0, 0, "psw", 64, "uint64"); - tdesc_create_reg (feature, "pswa", 1, 0, "psw", 64, "uint64"); + tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64"); + tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64"); tdesc_create_reg (feature, "r0", 2, 1, "general", 64, "uint64"); tdesc_create_reg (feature, "r1", 3, 1, "general", 64, "uint64"); tdesc_create_reg (feature, "r2", 4, 1, "general", 64, "uint64"); -- cgit v1.1