summaryrefslogtreecommitdiff
path: root/gdb/ax.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2011-02-18 20:55:42 +0000
committerTom Tromey <tromey@redhat.com>2011-02-18 20:55:42 +0000
commitd4d5a807ff23674ea8b4a4a8d214bd3af2f97007 (patch)
treecd6b9d72bda3192428ceb447a6e5fd05d58e6e84 /gdb/ax.h
parent1aec1a5a0e339ec0d67056ac95ea1a2b5a2ee20d (diff)
downloadgdb-d4d5a807ff23674ea8b4a4a8d214bd3af2f97007.tar.gz
gdb
* 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.
Diffstat (limited to 'gdb/ax.h')
-rw-r--r--gdb/ax.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/ax.h b/gdb/ax.h
index a5d722b5560..18b19c91c61 100644
--- a/gdb/ax.h
+++ b/gdb/ax.h
@@ -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))