* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
	value_from_contents for final conversion.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0089c25..4062bf9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-13  Tom Tromey  <tromey@redhat.com>
+
+	* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_regval_type>: Use
+	value_from_contents for final conversion.
+
 2011-07-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	Code cleanup.
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c
index b23ad9a..21a8363 100644
--- a/gdb/dwarf2expr.c
+++ b/gdb/dwarf2expr.c
@@ -1221,7 +1221,9 @@
 
 	    type = dwarf_get_base_type (ctx, type_die, 0);
 	    result = (ctx->read_reg) (ctx->baton, reg);
-	    result_val = value_from_ulongest (type, result);
+	    result_val = value_from_ulongest (address_type, result);
+	    result_val = value_from_contents (type,
+					      value_contents_all (result_val));
 	  }
 	  break;