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] reserve proposed new bytecodes


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
 
 


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