aboutsummaryrefslogtreecommitdiff
path: root/gdb/spu-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/spu-tdep.c')
-rw-r--r--gdb/spu-tdep.c123
1 files changed, 49 insertions, 74 deletions
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index 1ab9a9c..4338d5c 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -2036,7 +2036,7 @@ flush_ea_cache (void)
type = lookup_pointer_type (type);
addr = BMSYMBOL_VALUE_ADDRESS (msymbol);
- call_function_by_hand (value_from_pointer (type, addr), 0, NULL);
+ call_function_by_hand (value_from_pointer (type, addr), NULL, 0, NULL);
}
}
@@ -2064,7 +2064,6 @@ info_spu_event_command (char *args, int from_tty)
struct frame_info *frame = get_selected_frame (NULL);
ULONGEST event_status = 0;
ULONGEST event_mask = 0;
- struct cleanup *chain;
gdb_byte buf[100];
char annex[32];
LONGEST len;
@@ -2091,7 +2090,7 @@ info_spu_event_command (char *args, int from_tty)
buf[len] = '\0';
event_mask = strtoulst ((char *) buf, NULL, 16);
- chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoEvent");
+ ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoEvent");
if (current_uiout->is_mi_like_p ())
{
@@ -2105,8 +2104,6 @@ info_spu_event_command (char *args, int from_tty)
printf_filtered (_("Event Status 0x%s\n"), phex (event_status, 4));
printf_filtered (_("Event Mask 0x%s\n"), phex (event_mask, 4));
}
-
- do_cleanups (chain);
}
static void
@@ -2121,7 +2118,6 @@ info_spu_signal_command (char *args, int from_tty)
ULONGEST signal2 = 0;
ULONGEST signal2_type = 0;
int signal2_pending = 0;
- struct cleanup *chain;
char annex[32];
gdb_byte buf[100];
LONGEST len;
@@ -2168,7 +2164,7 @@ info_spu_signal_command (char *args, int from_tty)
buf[len] = '\0';
signal2_type = strtoulst ((char *) buf, NULL, 16);
- chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoSignal");
+ ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoSignal");
if (current_uiout->is_mi_like_p ())
{
@@ -2201,39 +2197,34 @@ info_spu_signal_command (char *args, int from_tty)
else
printf_filtered (_("(Type Overwrite)\n"));
}
-
- do_cleanups (chain);
}
static void
info_spu_mailbox_list (gdb_byte *buf, int nr, enum bfd_endian byte_order,
const char *field, const char *msg)
{
- struct cleanup *chain;
int i;
if (nr <= 0)
return;
- chain = make_cleanup_ui_out_table_begin_end (current_uiout, 1, nr, "mbox");
+ ui_out_emit_table table_emitter (current_uiout, 1, nr, "mbox");
current_uiout->table_header (32, ui_left, field, msg);
current_uiout->table_body ();
for (i = 0; i < nr; i++)
{
- struct cleanup *val_chain;
- ULONGEST val;
- val_chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "mbox");
- val = extract_unsigned_integer (buf + 4*i, 4, byte_order);
- current_uiout->field_fmt (field, "0x%s", phex (val, 4));
- do_cleanups (val_chain);
+ {
+ ULONGEST val;
+ ui_out_emit_tuple tuple_emitter (current_uiout, "mbox");
+ val = extract_unsigned_integer (buf + 4*i, 4, byte_order);
+ current_uiout->field_fmt (field, "0x%s", phex (val, 4));
+ }
if (!current_uiout->is_mi_like_p ())
printf_filtered ("\n");
}
-
- do_cleanups (chain);
}
static void
@@ -2242,7 +2233,6 @@ info_spu_mailbox_command (char *args, int from_tty)
struct frame_info *frame = get_selected_frame (NULL);
struct gdbarch *gdbarch = get_frame_arch (frame);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- struct cleanup *chain;
char annex[32];
gdb_byte buf[1024];
LONGEST len;
@@ -2253,7 +2243,7 @@ info_spu_mailbox_command (char *args, int from_tty)
id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
- chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoMailbox");
+ ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoMailbox");
xsnprintf (annex, sizeof annex, "%d/mbox_info", id);
len = target_read (&current_target, TARGET_OBJECT_SPU, annex,
@@ -2281,8 +2271,6 @@ info_spu_mailbox_command (char *args, int from_tty)
info_spu_mailbox_list (buf, len / 4, byte_order,
"wbox", "SPU Inbound Mailbox");
-
- do_cleanups (chain);
}
static ULONGEST
@@ -2333,7 +2321,6 @@ info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
int *seq = XALLOCAVEC (int, nr);
int done = 0;
- struct cleanup *chain;
int i, j;
@@ -2371,8 +2358,7 @@ info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
nr = i;
- chain = make_cleanup_ui_out_table_begin_end (current_uiout, 10, nr,
- "dma_cmd");
+ ui_out_emit_table table_emitter (current_uiout, 10, nr, "dma_cmd");
current_uiout->table_header (7, ui_left, "opcode", "Opcode");
current_uiout->table_header (3, ui_left, "tag", "Tag");
@@ -2389,7 +2375,6 @@ info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
for (i = 0; i < nr; i++)
{
- struct cleanup *cmd_chain;
ULONGEST mfc_cq_dw0;
ULONGEST mfc_cq_dw1;
ULONGEST mfc_cq_dw2;
@@ -2425,51 +2410,49 @@ info_spu_dma_cmdlist (gdb_byte *buf, int nr, enum bfd_endian byte_order)
ea_valid_p = spu_mfc_get_bitfield (mfc_cq_dw2, 39, 39);
cmd_error_p = spu_mfc_get_bitfield (mfc_cq_dw2, 40, 40);
- cmd_chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "cmd");
-
- if (spu_mfc_opcode[mfc_cmd_opcode])
- current_uiout->field_string ("opcode", spu_mfc_opcode[mfc_cmd_opcode]);
- else
- current_uiout->field_int ("opcode", mfc_cmd_opcode);
+ {
+ ui_out_emit_tuple tuple_emitter (current_uiout, "cmd");
- current_uiout->field_int ("tag", mfc_cmd_tag);
- current_uiout->field_int ("tid", tclass_id);
- current_uiout->field_int ("rid", rclass_id);
+ if (spu_mfc_opcode[mfc_cmd_opcode])
+ current_uiout->field_string ("opcode", spu_mfc_opcode[mfc_cmd_opcode]);
+ else
+ current_uiout->field_int ("opcode", mfc_cmd_opcode);
- if (ea_valid_p)
- current_uiout->field_fmt ("ea", "0x%s", phex (mfc_ea, 8));
- else
- current_uiout->field_skip ("ea");
+ current_uiout->field_int ("tag", mfc_cmd_tag);
+ current_uiout->field_int ("tid", tclass_id);
+ current_uiout->field_int ("rid", rclass_id);
- current_uiout->field_fmt ("lsa", "0x%05x", mfc_lsa << 4);
- if (qw_valid_p)
- current_uiout->field_fmt ("size", "0x%05x", mfc_size << 4);
- else
- current_uiout->field_fmt ("size", "0x%05x", mfc_size);
+ if (ea_valid_p)
+ current_uiout->field_fmt ("ea", "0x%s", phex (mfc_ea, 8));
+ else
+ current_uiout->field_skip ("ea");
- if (list_valid_p)
- {
- current_uiout->field_fmt ("lstaddr", "0x%05x", list_lsa << 3);
- current_uiout->field_fmt ("lstsize", "0x%05x", list_size << 3);
- }
- else
- {
- current_uiout->field_skip ("lstaddr");
- current_uiout->field_skip ("lstsize");
- }
+ current_uiout->field_fmt ("lsa", "0x%05x", mfc_lsa << 4);
+ if (qw_valid_p)
+ current_uiout->field_fmt ("size", "0x%05x", mfc_size << 4);
+ else
+ current_uiout->field_fmt ("size", "0x%05x", mfc_size);
- if (cmd_error_p)
- current_uiout->field_string ("error_p", "*");
- else
- current_uiout->field_skip ("error_p");
+ if (list_valid_p)
+ {
+ current_uiout->field_fmt ("lstaddr", "0x%05x", list_lsa << 3);
+ current_uiout->field_fmt ("lstsize", "0x%05x", list_size << 3);
+ }
+ else
+ {
+ current_uiout->field_skip ("lstaddr");
+ current_uiout->field_skip ("lstsize");
+ }
- do_cleanups (cmd_chain);
+ if (cmd_error_p)
+ current_uiout->field_string ("error_p", "*");
+ else
+ current_uiout->field_skip ("error_p");
+ }
if (!current_uiout->is_mi_like_p ())
printf_filtered ("\n");
}
-
- do_cleanups (chain);
}
static void
@@ -2483,7 +2466,6 @@ info_spu_dma_command (char *args, int from_tty)
ULONGEST dma_info_status;
ULONGEST dma_info_stall_and_notify;
ULONGEST dma_info_atomic_command_status;
- struct cleanup *chain;
char annex[32];
gdb_byte buf[1024];
LONGEST len;
@@ -2511,7 +2493,7 @@ info_spu_dma_command (char *args, int from_tty)
dma_info_atomic_command_status
= extract_unsigned_integer (buf + 32, 8, byte_order);
- chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoDMA");
+ ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoDMA");
if (current_uiout->is_mi_like_p ())
{
@@ -2550,7 +2532,6 @@ info_spu_dma_command (char *args, int from_tty)
}
info_spu_dma_cmdlist (buf + 40, 16, byte_order);
- do_cleanups (chain);
}
static void
@@ -2562,7 +2543,6 @@ info_spu_proxydma_command (char *args, int from_tty)
ULONGEST dma_info_type;
ULONGEST dma_info_mask;
ULONGEST dma_info_status;
- struct cleanup *chain;
char annex[32];
gdb_byte buf[1024];
LONGEST len;
@@ -2583,8 +2563,7 @@ info_spu_proxydma_command (char *args, int from_tty)
dma_info_mask = extract_unsigned_integer (buf + 8, 8, byte_order);
dma_info_status = extract_unsigned_integer (buf + 16, 8, byte_order);
- chain = make_cleanup_ui_out_tuple_begin_end (current_uiout,
- "SPUInfoProxyDMA");
+ ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoProxyDMA");
if (current_uiout->is_mi_like_p ())
{
@@ -2615,7 +2594,6 @@ info_spu_proxydma_command (char *args, int from_tty)
}
info_spu_dma_cmdlist (buf + 24, 8, byte_order);
- do_cleanups (chain);
}
static void
@@ -2668,8 +2646,8 @@ spu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
int id = -1;
/* Which spufs ID was requested as address space? */
- if (info.tdep_info)
- id = *(int *)info.tdep_info;
+ if (info.id)
+ id = *info.id;
/* For objfile architectures of SPU solibs, decode the ID from the name.
This assumes the filename convention employed by solib-spu.c. */
else if (info.abfd)
@@ -2780,9 +2758,6 @@ spu_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
return gdbarch;
}
-/* Provide a prototype to silence -Wmissing-prototypes. */
-extern initialize_file_ftype _initialize_spu_tdep;
-
void
_initialize_spu_tdep (void)
{