This is the mail archive of the
mailing list for the GDB project.
Re: [RFC][PATCH][PR 18376] gdb: Add process record and replay support for s390.
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: koriakin at 0x04 dot net (Marcin KoÅcielnicki)
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 2 Nov 2015 21:33:16 +0100 (CET)
- Subject: Re: [RFC][PATCH][PR 18376] gdb: Add process record and replay support for s390.
- Authentication-results: sourceware.org; auth=none
Marcin KoÃ?cielnicki <koriakin at 0x04 dot net> wrote:
> I have added pseudo-support for TBEGIN (just to let it abort and fallback),
> as well as PPA and ETND (on the off-chance someone uses them).
> I have also found three missing break statements and fixed those.
Huh, I didn't find those :-) I found a small number of issues (mostly
cosmetic) ... review will follow shortly.
> The second patch implements single-stepping over a MVCLE+JO pair (as well
> as other partial-execution instructions that can write memory). I haven't
> limitted it to record-only - AFAICT it doesn't cause any problems without
> record (in fact, it should decrease context switches for large transfers),
> but I'll restrict that if necessary.
Well, I was thinking that if you manually single-step, you might want to
see the actual machine behavior. That's why I suggested restricting the
behavior to recording ...
> As for the Uniersity of Syracuse machines, I do have access, and they are
> only z196.
Huh, I thought those were z13 ... I'll check whether there is a z13
> There's also an ambiguity in LCBB opcode documentation: it produces a 32-bit
> unsigned result, but the text mentions storing it to the general register
> (not to bits 32-63 of a general register, as is common for documentation
> of proper 32-bit opcodes). I don't have a vector-supporting machine, so
> I can't check what is correct. The patch goes the safe way and assumes
> all 64 bits of GR can be changed.
LCBB definitely only stores bits 32-63 of a general register. For other
instructions, the PoP uses a wording like "the operand is treated as
32-bit unsigned integer" to indicate this; I think the wording for LCBB
is different simply because there is no *G variant of the instruction.
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain