gdb: s390: Add record/replay support for arch14 instructions

Message ID 87jzn7dsbv.fsf@li-07e5db4c-3052-11b2-a85c-815382633c95.ibm.com
State New
Headers
Series gdb: s390: Add record/replay support for arch14 instructions |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Testing passed

Commit Message

Andreas Arnez Feb. 14, 2024, 2:38 p.m. UTC
  Enable recording of the new "arch14" instructions on z/Architecture
targets, except for the specialized-function-assist instruction NNPA.
---
 gdb/s390-tdep.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)
  

Comments

Andreas Arnez Feb. 26, 2024, 9:33 a.m. UTC | #1
On Wed, Feb 14 2024, Andreas Arnez wrote:

> Enable recording of the new "arch14" instructions on z/Architecture
> targets, except for the specialized-function-assist instruction NNPA.
> ---
>  gdb/s390-tdep.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)

There weren't any comments to this so far.  Since it's a fairly simple
change that just affects s390, I just pushed this now.

--
Andreas

>
> diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
> index 134bf984e5b..c250b357fbc 100644
> --- a/gdb/s390-tdep.c
> +++ b/gdb/s390-tdep.c
> @@ -5534,6 +5534,14 @@ s390_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
>  	case 0xe635: /* VLRL - vector load rightmost with immed. length */
>  	case 0xe637: /* VLRLR - vector load rightmost with length */
>  	case 0xe649: /* VLIP - vector load immediate decimal */
> +	case 0xe656: /* VCLFNH - vector fp convert and lengthen from NNP high */
> +	case 0xe65e: /* VCLFNL - vector fp convert and lengthen from NNP low */
> +	case 0xe655: /* VCNF - vector fp convert to NNP */
> +	case 0xe65d: /* VCFN - vector fp convert from NNP */
> +	case 0xe674: /* VSCHP - decimal scale and convert to HFP */
> +	case 0xe675: /* VCRNF - vector fp convert and round to NNP */
> +	case 0xe67c: /* VSCSHP - decimal scale and convert and split to HFP */
> +	case 0xe67d: /* VCSPH - vector convert HFP to scaled decimal */
>  	case 0xe700: /* VLEB - vector load element */
>  	case 0xe701: /* VLEH - vector load element */
>  	case 0xe702: /* VLEG - vector load element */
> @@ -5791,11 +5799,16 @@ s390_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
>  
>  	/* 0xe747-0xe749 undefined */
>  
> +	case 0xe651: /* VCLZDP - vector count leading zero digits */
> +	case 0xe654: /* VUPKZH - vector unpack zoned high */
>  	case 0xe658: /* VCVD - vector convert to decimal 32 bit */
>  	case 0xe659: /* VSRP - vector shift and round decimal */
>  	case 0xe65a: /* VCVDG - vector convert to decimal 64 bit*/
>  	case 0xe65b: /* VPSOP - vector perform sign operation decimal */
> +	case 0xe65c: /* VUPKZL - vector unpack zoned low */
> +	case 0xe670: /* VPKZR - vector pack zoned register */
>  	case 0xe671: /* VAP - vector add decimal */
> +	case 0xe672: /* VSRPR - vector shift and round decimal register */
>  	case 0xe673: /* VSP - vector subtract decimal */
>  	case 0xe678: /* VMP - vector multiply decimal */
>  	case 0xe679: /* VMSP - vector multiply decimal */
  

Patch

diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 134bf984e5b..c250b357fbc 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -5534,6 +5534,14 @@  s390_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
 	case 0xe635: /* VLRL - vector load rightmost with immed. length */
 	case 0xe637: /* VLRLR - vector load rightmost with length */
 	case 0xe649: /* VLIP - vector load immediate decimal */
+	case 0xe656: /* VCLFNH - vector fp convert and lengthen from NNP high */
+	case 0xe65e: /* VCLFNL - vector fp convert and lengthen from NNP low */
+	case 0xe655: /* VCNF - vector fp convert to NNP */
+	case 0xe65d: /* VCFN - vector fp convert from NNP */
+	case 0xe674: /* VSCHP - decimal scale and convert to HFP */
+	case 0xe675: /* VCRNF - vector fp convert and round to NNP */
+	case 0xe67c: /* VSCSHP - decimal scale and convert and split to HFP */
+	case 0xe67d: /* VCSPH - vector convert HFP to scaled decimal */
 	case 0xe700: /* VLEB - vector load element */
 	case 0xe701: /* VLEH - vector load element */
 	case 0xe702: /* VLEG - vector load element */
@@ -5791,11 +5799,16 @@  s390_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
 
 	/* 0xe747-0xe749 undefined */
 
+	case 0xe651: /* VCLZDP - vector count leading zero digits */
+	case 0xe654: /* VUPKZH - vector unpack zoned high */
 	case 0xe658: /* VCVD - vector convert to decimal 32 bit */
 	case 0xe659: /* VSRP - vector shift and round decimal */
 	case 0xe65a: /* VCVDG - vector convert to decimal 64 bit*/
 	case 0xe65b: /* VPSOP - vector perform sign operation decimal */
+	case 0xe65c: /* VUPKZL - vector unpack zoned low */
+	case 0xe670: /* VPKZR - vector pack zoned register */
 	case 0xe671: /* VAP - vector add decimal */
+	case 0xe672: /* VSRPR - vector shift and round decimal register */
 	case 0xe673: /* VSP - vector subtract decimal */
 	case 0xe678: /* VMP - vector multiply decimal */
 	case 0xe679: /* VMSP - vector multiply decimal */