* ax-general.c (aop_map): Add pick and rot.
	* dwarf2loc.c (compile_dwarf_to_ax) <DW_OP_over>: Reimplement.
	<DW_OP_rot>: Implement.
	* ax.h (enum agent_op) <aop_pick, aop_rot>: New constants.
	(ax_pick): Declare.
	* ax-general.c (ax_pick): New function.
doc
	* agentexpr.texi (Bytecode Descriptions): Document pick and rot.
gdbserver
	* tracepoint.c (enum gdb_agent_op) <gdb_agent_op_pick,
	gdb_agent_op_rot>: New constants.
	(gdb_agent_op_names): Add pick and roll.
	(eval_agent_expr) <gdb_agent_op_pick, gdb_agent_op_rot>: New
	cases.
This commit is contained in:
Tom Tromey 2011-02-18 20:55:45 +00:00
parent 66694b75a4
commit c7f96d2b95
8 changed files with 76 additions and 23 deletions

View file

@ -204,6 +204,8 @@ enum agent_op
aop_setv = 0x2d,
aop_tracev = 0x2e,
aop_trace16 = 0x30,
aop_pick = 0x32,
aop_rot = 0x33,
aop_last
};
@ -221,6 +223,10 @@ extern struct cleanup *make_cleanup_free_agent_expr (struct agent_expr *);
/* Append a simple operator OP to EXPR. */
extern void ax_simple (struct agent_expr *EXPR, enum agent_op OP);
/* Append a pick operator to EXPR. DEPTH is the stack item to pick,
with 0 being top of stack. */
extern void ax_pick (struct agent_expr *EXPR, int DEPTH);
/* Append the floating-point prefix, for the next bytecode. */
#define ax_float(EXPR) (ax_simple ((EXPR), aop_float))