This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Remove MAX_REGISTER_SIZE from mi/mi-main.c


On 06/08/2017 10:42 AM, Alan Hayward wrote:

>    /* Get register contents and compare.  */
> -  prev_status = regcache_cooked_read (prev_regs, regnum, prev_buffer);
> -  this_status = regcache_cooked_read (this_regs, regnum, this_buffer);
> -
> -  if (this_status != prev_status)
> -    return 1;
> -  else if (this_status == REG_VALID)
> -    return memcmp (prev_buffer, this_buffer,
> -		   register_size (gdbarch, regnum)) != 0;
> +  prev_value = prev_regs->cooked_read_value (regnum);
> +  this_value = this_regs->cooked_read_value (regnum);
> +  gdb_assert (prev_value != NULL);
> +  gdb_assert (this_value != NULL);
> +
> +  if (value_optimized_out (prev_value) != value_optimized_out (this_value)
> +      || value_entirely_available (prev_value)
> +	 != value_entirely_available (this_value))
> +    ret = 1;
> +  if (value_optimized_out (prev_value)
> +      || !value_entirely_available (prev_value))
> +    ret = 0;
>    else
> -    return 0;
> +    ret = memcmp (value_contents_all (prev_value),
> +		  value_contents_all (this_value),
> +		  register_size (gdbarch, regnum)) != 0;
> +
> +  release_value (prev_value);
> +  release_value (this_value);
> +  value_free (prev_value);
> +  value_free (this_value);
> +  return ret;
>  }
> 

Use value_contents_eq?

Thanks,
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]