diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2006-11-22 13:44:45 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2006-11-22 13:44:45 +0000 |
commit | 0b2b0195d1b3b75d9fd0e5313466a0141790071d (patch) | |
tree | c685ca6d43e2bb095da319b07c2cfe1c47f1f988 /gdb/dwarf2loc.c | |
parent | 765dc01564a52c8e8ef896ec4acef04a38d60377 (diff) | |
download | gdb-0b2b0195d1b3b75d9fd0e5313466a0141790071d.zip gdb-0b2b0195d1b3b75d9fd0e5313466a0141790071d.tar.gz gdb-0b2b0195d1b3b75d9fd0e5313466a0141790071d.tar.bz2 |
* findvar.c (address_from_register): New function.
* value.h (address_from_register): Add prototype.
* dwarf2loc.c (dwarf_expr_read_reg): Use address_from_register.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r-- | gdb/dwarf2loc.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index f4f725e..1b29dc9 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -115,24 +115,17 @@ struct dwarf_expr_baton /* Helper functions for dwarf2_evaluate_loc_desc. */ /* Using the frame specified in BATON, return the value of register - REGNUM, treated as an unsigned integer. */ + REGNUM, treated as a pointer. */ static CORE_ADDR dwarf_expr_read_reg (void *baton, int dwarf_regnum) { struct dwarf_expr_baton *debaton = (struct dwarf_expr_baton *) baton; CORE_ADDR result; - gdb_byte *buf; - int regnum, regsize; + int regnum; regnum = DWARF2_REG_TO_REGNUM (dwarf_regnum); - regsize = register_size (current_gdbarch, regnum); - buf = alloca (regsize); - - frame_register_read (debaton->frame, regnum, buf); - /* NOTE: cagney/2003-05-22: This extract is assuming that a DWARF 2 - address is always unsigned. That may or may not be true. */ - result = extract_unsigned_integer (buf, regsize); - + result = address_from_register (builtin_type_void_data_ptr, + regnum, debaton->frame); return result; } |