qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/7] target/ppc: powerpc_excp: Group unimplemented excepti


From: David Gibson
Subject: Re: [PATCH v2 3/7] target/ppc: powerpc_excp: Group unimplemented exceptions
Date: Thu, 6 Jan 2022 16:26:55 +1100

On Wed, Jan 05, 2022 at 05:40:25PM -0300, Fabiano Rosas wrote:
> Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
> Reviewed-by: Cédric Le Goater <clg@kaod.org>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  target/ppc/excp_helper.c | 77 +++++-----------------------------------
>  1 file changed, 8 insertions(+), 69 deletions(-)
> 
> diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
> index ce86b2ae37..fa41f8048d 100644
> --- a/target/ppc/excp_helper.c
> +++ b/target/ppc/excp_helper.c
> @@ -701,23 +701,6 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
>      case POWERPC_EXCP_SPEU:   /* SPE/embedded floating-point unavailable/VPU 
>  */
>          env->spr[SPR_BOOKE_ESR] = ESR_SPV;
>          break;
> -    case POWERPC_EXCP_EFPDI:     /* Embedded floating-point data interrupt   
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "Embedded floating point data exception "
> -                  "is not implemented yet !\n");
> -        env->spr[SPR_BOOKE_ESR] = ESR_SPV;
> -        break;
> -    case POWERPC_EXCP_EFPRI:     /* Embedded floating-point round interrupt  
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "Embedded floating point round exception "
> -                  "is not implemented yet !\n");
> -        env->spr[SPR_BOOKE_ESR] = ESR_SPV;
> -        break;
> -    case POWERPC_EXCP_EPERFM:    /* Embedded performance monitor interrupt   
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs,
> -                  "Performance counter exception is not implemented yet 
> !\n");
> -        break;
>      case POWERPC_EXCP_DOORI:     /* Embedded doorbell interrupt              
> */
>          break;
>      case POWERPC_EXCP_DOORCI:    /* Embedded doorbell critical interrupt     
> */
> @@ -782,19 +765,6 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
>      case POWERPC_EXCP_PIT:       /* Programmable interval timer interrupt    
> */
>          trace_ppc_excp_print("PIT");
>          break;
> -    case POWERPC_EXCP_IO:        /* IO error exception                       
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "601 IO error exception is not implemented yet !\n");
> -        break;
> -    case POWERPC_EXCP_RUNM:      /* Run mode exception                       
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "601 run mode exception is not implemented yet !\n");
> -        break;
> -    case POWERPC_EXCP_EMUL:      /* Emulation trap exception                 
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "602 emulation trap exception "
> -                  "is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_IFTLB:     /* Instruction fetch TLB error              
> */
>      case POWERPC_EXCP_DLTLB:     /* Data load TLB miss                       
> */
>      case POWERPC_EXCP_DSTLB:     /* Data store TLB miss                      
> */
> @@ -821,56 +791,25 @@ static void powerpc_excp(PowerPCCPU *cpu, int excp)
>              break;
>          }
>          break;
> +    case POWERPC_EXCP_EFPDI:     /* Embedded floating-point data interrupt   
> */
> +    case POWERPC_EXCP_EFPRI:     /* Embedded floating-point round interrupt  
> */
> +    case POWERPC_EXCP_EPERFM:    /* Embedded performance monitor interrupt   
> */
> +    case POWERPC_EXCP_IO:        /* IO error exception                       
> */
> +    case POWERPC_EXCP_RUNM:      /* Run mode exception                       
> */
> +    case POWERPC_EXCP_EMUL:      /* Emulation trap exception                 
> */
>      case POWERPC_EXCP_FPA:       /* Floating-point assist exception          
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "Floating point assist exception "
> -                  "is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_DABR:      /* Data address breakpoint                  
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "DABR exception is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_IABR:      /* Instruction address breakpoint           
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "IABR exception is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_SMI:       /* System management interrupt              
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "SMI exception is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_THERM:     /* Thermal interrupt                        
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "Thermal management exception "
> -                  "is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_PERFM:     /* Embedded performance monitor interrupt   
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs,
> -                  "Performance counter exception is not implemented yet 
> !\n");
> -        break;
>      case POWERPC_EXCP_VPUA:      /* Vector assist exception                  
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "VPU assist exception is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_SOFTP:     /* Soft patch exception                     
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs,
> -                  "970 soft-patch exception is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_MAINT:     /* Maintenance exception                    
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs,
> -                  "970 maintenance exception is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_MEXTBR:    /* Maskable external breakpoint             
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "Maskable external exception "
> -                  "is not implemented yet !\n");
> -        break;
>      case POWERPC_EXCP_NMEXTBR:   /* Non maskable external breakpoint         
> */
> -        /* XXX: TODO */
> -        cpu_abort(cs, "Non maskable external exception "
> -                  "is not implemented yet !\n");
> +        cpu_abort(cs, "%s exception not implemented\n",
> +                  powerpc_excp_name(excp));
>          break;
>      default:
>      excp_invalid:

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]