diff options
Diffstat (limited to 'gdb/ax-general.c')
-rw-r--r-- | gdb/ax-general.c | 53 |
1 files changed, 7 insertions, 46 deletions
diff --git a/gdb/ax-general.c b/gdb/ax-general.c index 62c382c..889fac9 100644 --- a/gdb/ax-general.c +++ b/gdb/ax-general.c @@ -331,14 +331,6 @@ ax_tsv (struct agent_expr *x, enum agent_op op, int num) x->buf[x->len + 2] = (num) & 0xff; x->len += 3; } - -void -ax_memcpy (struct agent_expr *x, const void *src, size_t n) -{ - grow_expr (x, n); - memcpy (x->buf + x->len, src, n); - x->len += n; -} @@ -377,7 +369,6 @@ ax_print (struct ui_file *f, struct agent_expr *x) for (i = 0; i < x->len;) { enum agent_op op = x->buf[i]; - int op_size; if (op >= (sizeof (aop_map) / sizeof (aop_map[0])) || !aop_map[op].name) @@ -386,19 +377,7 @@ ax_print (struct ui_file *f, struct agent_expr *x) i++; continue; } - if (op == aop_printf) - { - if (i + 2 >= x->len) - { - fprintf_filtered (f, _("%3d <bad opcode %02x>\n"), i, op); - i++; - continue; - } - op_size = 1 + strlen (x->buf + i + 2) + 1; - } - else - op_size = aop_map[op].op_size; - if (i + 1 + op_size > x->len) + if (i + 1 + aop_map[op].op_size > x->len) { fprintf_filtered (f, _("%3d <incomplete opcode %s>\n"), i, aop_map[op].name); @@ -406,15 +385,15 @@ ax_print (struct ui_file *f, struct agent_expr *x) } fprintf_filtered (f, "%3d %s", i, aop_map[op].name); - if (op_size > 0) + if (aop_map[op].op_size > 0) { fputs_filtered (" ", f); print_longest (f, 'd', 0, - read_const (x, i + 1, op_size)); + read_const (x, i + 1, aop_map[op].op_size)); } fprintf_filtered (f, "\n"); - i += 1 + op_size; + i += 1 + aop_map[op].op_size; is_float = (op == aop_float); } @@ -482,8 +461,6 @@ ax_reqs (struct agent_expr *ax) /* Pointer to a description of the present op. */ struct aop_map *op; - int op_size = 0, consumed = 0; - memset (targets, 0, ax->len * sizeof (targets[0])); memset (boundary, 0, ax->len * sizeof (boundary[0])); @@ -491,7 +468,7 @@ ax_reqs (struct agent_expr *ax) ax->flaw = agent_flaw_none; ax->max_data_size = 0; - for (i = 0; i < ax->len; i += 1 + op_size) + for (i = 0; i < ax->len; i += 1 + op->op_size) { if (ax->buf[i] > (sizeof (aop_map) / sizeof (aop_map[0]))) { @@ -507,23 +484,7 @@ ax_reqs (struct agent_expr *ax) return; } - if (ax->buf[i] == aop_printf) - { - if (i + 2 >= ax->len) - { - ax->flaw = agent_flaw_incomplete_instruction; - return; - } - consumed = ax->buf[i + 1]; - op_size = 1 + strlen (ax->buf + i + 2) + 1; - } - else - { - op_size = op->op_size; - consumed = op->consumed; - } - - if (i + 1 + op_size > ax->len) + if (i + 1 + op->op_size > ax->len) { ax->flaw = agent_flaw_incomplete_instruction; return; @@ -541,7 +502,7 @@ ax_reqs (struct agent_expr *ax) boundary[i] = 1; heights[i] = height; - height -= consumed; + height -= op->consumed; if (height < ax->min_height) ax->min_height = height; height += op->produced; |