[PATCH] x86-64: fix ZMM register state tracking

Simon Marchi simon.marchi@polymtl.ca
Mon Sep 10 13:01:00 GMT 2018


On 2018-09-10 07:25, Jan Beulich wrote:
>>>> Simon Marchi <simon.marchi@ericsson.com> 09/08/18 1:13 AM >>>
>> Would it be possible to update or create a test to exercise that?
>> arch-specific tests are in testsuite/gdb.arch.
> 
> I'm sure it would be possible, but while I was happy to invest the time 
> to
> fix the actual bug (because it affects work I'm doing), I'm afraid I 
> don't have
> the time to learn how gdb test cases are to be constructed (I'm 
> familiar
> only with the binutils / gas side of things).

I understand.  If you can provide:

  - a minimal source file (C + assembly in this case, I suppose)
  - GDB commands to reproduce the bug
  - actual and expected output

I can take care of turning it in a GDB test case.

>> On 2018-09-05 02:22 PM, Jan Beulich wrote:
>>> --- a/gdb/i387-tdep.c
>>> +++ b/gdb/i387-tdep.c
>>> @@ -923,7 +923,8 @@ i387_supply_xsave (struct regcache *regc
>>>    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
>>>    struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
>>>    const gdb_byte *regs = (const gdb_byte *) xsave;
>>> -  int i;
>>> +  int i, zmm_endlo_regnum = I387_ZMM0H_REGNUM (tdep)
>>> +			    + std::min (tdep->num_zmm_regs, 16);
>> 
>> The GNU standard requires to parenthesis when breaking lines:
>> 
>> int i, zmm_endlo_regnum = (I387_ZMM0H_REGNUM (tdep)
>> + std::min (tdep->num_zmm_regs, 16));
> 
> This is easy enough to fix (perhaps even without the need to send a v2,
> but just before/while committing?); I don't think this is a rule being
> enforced on the binutils side, so I simply wasn't aware.

Yeah, no problem, I can do it.  It's suggested in the GNU coding 
standards, so I think it would apply to binutils too:

   https://www.gnu.org/prep/standards/html_node/Formatting.html

Search for "Adding a set of parentheses".

Simon



More information about the Gdb-patches mailing list