Index: gdb/mt-tdep.c |
diff --git a/gdb/mt-tdep.c b/gdb/mt-tdep.c |
index ee4b6eb5d4b6b78b927663022f76dba001000995..c45d0ed87983b48c3b173329b90ddd43506d53ff 100644 |
--- a/gdb/mt-tdep.c |
+++ b/gdb/mt-tdep.c |
@@ -1,6 +1,6 @@ |
/* Target-dependent code for Morpho mt processor, for GDB. |
- Copyright (C) 2005, 2007-2012 Free Software Foundation, Inc. |
+ Copyright (C) 2005-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -27,7 +27,7 @@ |
#include "dis-asm.h" |
#include "arch-utils.h" |
#include "gdbtypes.h" |
-#include "gdb_string.h" |
+#include <string.h> |
#include "regcache.h" |
#include "reggroups.h" |
#include "gdbcore.h" |
@@ -685,7 +685,7 @@ mt_registers_info (struct gdbarch *gdbarch, |
buff = alloca (regsize); |
bytes = alloca (regsize * sizeof (*bytes)); |
- frame_register_read (frame, regnum, buff); |
+ deprecated_frame_register_read (frame, regnum, buff); |
fputs_filtered (gdbarch_register_name |
(gdbarch, regnum), file); |
@@ -710,7 +710,7 @@ mt_registers_info (struct gdbarch *gdbarch, |
struct value_print_options opts; |
buf = alloca (register_size (gdbarch, MT_COPRO_REGNUM)); |
- frame_register_read (frame, MT_COPRO_REGNUM, buf); |
+ deprecated_frame_register_read (frame, MT_COPRO_REGNUM, buf); |
/* And print. */ |
regnum = MT_COPRO_PSEUDOREG_REGNUM; |
fputs_filtered (gdbarch_register_name (gdbarch, regnum), |
@@ -718,7 +718,7 @@ mt_registers_info (struct gdbarch *gdbarch, |
print_spaces_filtered (15 - strlen (gdbarch_register_name |
(gdbarch, regnum)), |
file); |
- get_raw_print_options (&opts); |
+ get_no_prettyformat_print_options (&opts); |
opts.deref_ref = 1; |
val_print (register_type (gdbarch, regnum), buf, |
0, 0, file, 0, NULL, |
@@ -731,13 +731,13 @@ mt_registers_info (struct gdbarch *gdbarch, |
gdb_byte buf[3 * sizeof (LONGEST)]; |
/* Get the two "real" mac registers. */ |
- frame_register_read (frame, MT_MAC_REGNUM, buf); |
+ deprecated_frame_register_read (frame, MT_MAC_REGNUM, buf); |
oldmac = extract_unsigned_integer |
(buf, register_size (gdbarch, MT_MAC_REGNUM), byte_order); |
if (gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_mrisc2 |
|| gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_ms2) |
{ |
- frame_register_read (frame, MT_EXMAC_REGNUM, buf); |
+ deprecated_frame_register_read (frame, MT_EXMAC_REGNUM, buf); |
ext_mac = extract_unsigned_integer |
(buf, register_size (gdbarch, MT_EXMAC_REGNUM), byte_order); |
} |
@@ -845,16 +845,20 @@ mt_push_dummy_call (struct gdbarch *gdbarch, struct value *function, |
for (j = nargs - 1; j >= i; j--) |
{ |
gdb_byte *val; |
+ struct cleanup *back_to; |
+ const gdb_byte *contents = value_contents (args[j]); |
/* Right-justify the value in an aligned-length buffer. */ |
typelen = TYPE_LENGTH (value_type (args[j])); |
slacklen = (wordsize - (typelen % wordsize)) % wordsize; |
- val = alloca (typelen + slacklen); |
- memcpy (val, value_contents (args[j]), typelen); |
+ val = xmalloc (typelen + slacklen); |
+ back_to = make_cleanup (xfree, val); |
+ memcpy (val, contents, typelen); |
memset (val + typelen, 0, slacklen); |
/* Now write this data to the stack. */ |
stack_dest -= typelen + slacklen; |
write_memory (stack_dest, val, typelen + slacklen); |
+ do_cleanups (back_to); |
} |
/* Finally, if a param needs to be split between registers and stack, |