diff options
Diffstat (limited to 'gdb/dwarf2expr.c')
-rw-r--r-- | gdb/dwarf2expr.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c index 25e9dc4..69c08c2 100644 --- a/gdb/dwarf2expr.c +++ b/gdb/dwarf2expr.c @@ -921,7 +921,8 @@ execute_stack_op (struct dwarf_expr_context *ctx, case DW_OP_breg31: { op_ptr = safe_read_sleb128 (op_ptr, op_end, &offset); - result = (ctx->funcs->read_reg) (ctx->baton, op - DW_OP_breg0); + result = (ctx->funcs->read_addr_from_reg) (ctx->baton, + op - DW_OP_breg0); result += offset; result_val = value_from_ulongest (address_type, result); } @@ -930,7 +931,7 @@ execute_stack_op (struct dwarf_expr_context *ctx, { op_ptr = safe_read_uleb128 (op_ptr, op_end, ®); op_ptr = safe_read_sleb128 (op_ptr, op_end, &offset); - result = (ctx->funcs->read_reg) (ctx->baton, reg); + result = (ctx->funcs->read_addr_from_reg) (ctx->baton, reg); result += offset; result_val = value_from_ulongest (address_type, result); } @@ -955,8 +956,9 @@ execute_stack_op (struct dwarf_expr_context *ctx, if (ctx->location == DWARF_VALUE_MEMORY) result = dwarf_expr_fetch_address (ctx, 0); else if (ctx->location == DWARF_VALUE_REGISTER) - result = (ctx->funcs->read_reg) (ctx->baton, - value_as_long (dwarf_expr_fetch (ctx, 0))); + result = (ctx->funcs->read_addr_from_reg) + (ctx->baton, + value_as_long (dwarf_expr_fetch (ctx, 0))); else error (_("Not implemented: computing frame " "base using explicit value operator")); |