This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] reserve proposed new bytecodes
- From: David Taylor <dtaylor at emc dot com>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 27 Aug 2014 09:49:59 -0400
- Subject: Re: [PATCH] reserve proposed new bytecodes
- Authentication-results: sourceware.org; auth=none
- References: <524 dot 1409090060 at usendtaylorx2l> <83tx4yk5tf dot fsf at gnu dot org>
Eli Zaretskii <eliz@gnu.org> wrote:
> > From: David Taylor <dtaylor@emc.com>
> > Date: Tue, 26 Aug 2014 17:54:20 -0400
> >
> > +@item @code{setmem8} (0x35): @var{addr} @var{value} @result{}
> > +@itemx @code{setmem16} (0x36): @var{addr} @var{value} @result{}
> > +@itemx @code{setmem32} (0x37): @var{addr} @var{value} @result{}
> > +@itemx @code{setmem64} (0x38): @var{addr} @var{value} @result{}
>
> I asked you to put "(nothing)" after @result{}.
>
> > +@item @code{setreg} (0x39) @var{regnum}: @var{value} @result{}
>
> Likewise here.
You're right. Sorry. Here's a revised version with the 5 requested
insertions of (nothing) in agentexpr.texi. The pdf, info, and html
targets all succeeded; visually the modified parts of gdb.pdf looked
correct.
Entry for gdb/ChangeLog:
2014-08-26 David Taylor <dtaylor@emc.com>
* common/ax.def: Add DEFOP entries for proposed bytecodes setmem8,
setmem16, setmem32, setmem64, and setreg.
Entry for gdb/doc/ChangeLog:
2014-08-26 David Taylor <dtaylor@emc.com>
* agentexpr.texi (Bytecode Descriptions): Add decsriptions of
propmosed bytecodes setmem8, setmem16, setmem32, setmem64, and
setreg.
The actual diff (against GDB 7.8, but these two files don't change very
often):
Index: gdb/common/ax.def
===================================================================
RCS file: /home/cvsroot/GDB/gdb/common/ax.def,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 ax.def
--- gdb/common/ax.def 18 Feb 2014 15:36:03 -0000 1.1.1.2
+++ gdb/common/ax.def 26 Aug 2014 19:22:12 -0000
@@ -95,3 +95,9 @@
DEFOP (rot, 0, 0, 3, 3, 0x33)
/* Both the argument and consumed numbers are dynamic for this one. */
DEFOP (printf, 0, 0, 0, 0, 0x34)
+/* The following five operands are not yet implemented. */
+DEFOP (setmem8, 0, 8, 2, 0, 0x35)
+DEFOP (setmem16, 0, 16, 2, 0, 0x36)
+DEFOP (setmem32, 0, 32, 2, 0, 0x37)
+DEFOP (setmem64, 0, 64, 2, 0, 0x38)
+DEFOP (setreg, 2, 0, 1, 0, 0x39)
Index: gdb/doc/agentexpr.texi
===================================================================
RCS file: /home/cvsroot/GDB/gdb/doc/agentexpr.texi,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 agentexpr.texi
--- gdb/doc/agentexpr.texi 18 Feb 2014 15:36:03 -0000 1.1.1.2
+++ gdb/doc/agentexpr.texi 27 Aug 2014 13:45:00 -0000
@@ -516,6 +516,28 @@
range of memory, then the next-to-top of the stack is the lvalue's
address, and the top of the stack is the lvalue's size, in bytes.
+@item @code{setmem8} (0x35): @var{addr} @var{value} @result{} (nothing)
+@itemx @code{setmem16} (0x36): @var{addr} @var{value} @result{} (nothing)
+@itemx @code{setmem32} (0x37): @var{addr} @var{value} @result{} (nothing)
+@itemx @code{setmem64} (0x38): @var{addr} @var{value} @result{} (nothing)
+Pop an address @var{addr} and value @var{value} from the stack. For
+bytecode @code{setmem}@var{n}, set an @var{n}-bit value at @var{addr},
+using the @var{n}-bit least significant bits of @var{value} and natural
+target endianness.
+
+If attempting to write memory at @var{addr} would cause a processor
+exception of some sort, terminate with an error.
+
+Not implemented yet.
+
+@item @code{setreg} (0x39) @var{regnum}: @var{value} @result{} (nothing)
+Pop @var{value} from the stack. Set register @var{regnum} to @var{value}.
+
+If the register is read-only or if attempting to write @var{value} to it
+would cause a processor exception of some sort, terminate with an error.
+
+Not implemented yet.
+
@end table