projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update copyright year range in all GDB files
[deliverable/binutils-gdb.git]
/
gdb
/
rs6000-aix-tdep.c
diff --git
a/gdb/rs6000-aix-tdep.c
b/gdb/rs6000-aix-tdep.c
index 80038a109520666e42f0ccd02dc2de3af8ebf78f..38c86d4cd85a0c503e9704f8df586167590fc987 100644
(file)
--- a/
gdb/rs6000-aix-tdep.c
+++ b/
gdb/rs6000-aix-tdep.c
@@
-1,6
+1,6
@@
/* Native support code for PPC AIX, for GDB the GNU debugger.
/* Native support code for PPC AIX, for GDB the GNU debugger.
- Copyright (C) 2006-201
6
Free Software Foundation, Inc.
+ Copyright (C) 2006-201
8
Free Software Foundation, Inc.
Free Software Foundation, Inc.
Free Software Foundation, Inc.
@@
-36,6
+36,7
@@
#include "xcoffread.h"
#include "solib.h"
#include "solib-aix.h"
#include "xcoffread.h"
#include "solib.h"
#include "solib-aix.h"
+#include "target-float.h"
#include "xml-utils.h"
/* If the kernel has to deliver a signal, it pushes a sigcontext
#include "xml-utils.h"
/* If the kernel has to deliver a signal, it pushes a sigcontext
@@
-253,13
+254,12
@@
rs6000_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
Always store the floating point value using the register's
floating-point format. */
const int fp_regnum = tdep->ppc_fp0_regnum + 1 + f_argno;
Always store the floating point value using the register's
floating-point format. */
const int fp_regnum = tdep->ppc_fp0_regnum + 1 + f_argno;
- gdb_byte reg_val[MAX_REGISTER_SIZE];
+ gdb_byte reg_val[
PPC_
MAX_REGISTER_SIZE];
struct type *reg_type = register_type (gdbarch, fp_regnum);
gdb_assert (len <= 8);
struct type *reg_type = register_type (gdbarch, fp_regnum);
gdb_assert (len <= 8);
- convert_typed_floating (value_contents (arg), type,
- reg_val, reg_type);
+ target_float_convert (value_contents (arg), type, reg_val, reg_type);
regcache_cooked_write (regcache, fp_regnum, reg_val);
++f_argno;
}
regcache_cooked_write (regcache, fp_regnum, reg_val);
++f_argno;
}
@@
-270,7
+270,7
@@
rs6000_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
/* Argument takes more than one register. */
while (argbytes < len)
{
/* Argument takes more than one register. */
while (argbytes < len)
{
- gdb_byte word[MAX_REGISTER_SIZE];
+ gdb_byte word[
PPC_
MAX_REGISTER_SIZE];
memset (word, 0, reg_size);
memcpy (word,
((char *) value_contents (arg)) + argbytes,
memset (word, 0, reg_size);
memcpy (word,
((char *) value_contents (arg)) + argbytes,
@@
-290,7
+290,7
@@
rs6000_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
else
{
/* Argument can fit in one register. No problem. */
else
{
/* Argument can fit in one register. No problem. */
- gdb_byte word[MAX_REGISTER_SIZE];
+ gdb_byte word[
PPC_
MAX_REGISTER_SIZE];
memset (word, 0, reg_size);
memcpy (word, value_contents (arg), len);
memset (word, 0, reg_size);
memcpy (word, value_contents (arg), len);
@@
-463,11
+463,11
@@
rs6000_return_value (struct gdbarch *gdbarch, struct value *function,
if (readbuf)
{
regcache_cooked_read (regcache, tdep->ppc_fp0_regnum + 1, regval);
if (readbuf)
{
regcache_cooked_read (regcache, tdep->ppc_fp0_regnum + 1, regval);
-
convert_typed_floating
(regval, regtype, readbuf, valtype);
+
target_float_convert
(regval, regtype, readbuf, valtype);
}
if (writebuf)
{
}
if (writebuf)
{
-
convert_typed_floating
(writebuf, valtype, regval, regtype);
+
target_float_convert
(writebuf, valtype, regval, regtype);
regcache_cooked_write (regcache, tdep->ppc_fp0_regnum + 1, regval);
}
regcache_cooked_write (regcache, tdep->ppc_fp0_regnum + 1, regval);
}
@@
-600,7
+600,7
@@
static CORE_ADDR
branch_dest (struct regcache *regcache, int opcode, int instr,
CORE_ADDR pc, CORE_ADDR safety)
{
branch_dest (struct regcache *regcache, int opcode, int instr,
CORE_ADDR pc, CORE_ADDR safety)
{
- struct gdbarch *gdbarch =
get_regcache_arch (regcache
);
+ struct gdbarch *gdbarch =
regcache->arch (
);
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR dest;
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR dest;
@@
-673,24
+673,22
@@
branch_dest (struct regcache *regcache, int opcode, int instr,
/* AIX does not support PT_STEP. Simulate it. */
/* AIX does not support PT_STEP. Simulate it. */
-static
VEC (CORE_ADDR) *
-rs6000_software_single_step (struct
frame_info *fram
e)
+static
std::vector<CORE_ADDR>
+rs6000_software_single_step (struct
regcache *regcach
e)
{
{
- struct regcache *regcache = get_current_regcache ();
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int ii, insn;
CORE_ADDR loc;
CORE_ADDR breaks[2];
int opcode;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int ii, insn;
CORE_ADDR loc;
CORE_ADDR breaks[2];
int opcode;
- VEC (CORE_ADDR) *next_pcs;
loc = regcache_read_pc (regcache);
insn = read_memory_integer (loc, 4, byte_order);
loc = regcache_read_pc (regcache);
insn = read_memory_integer (loc, 4, byte_order);
-
next_pcs = ppc_deal_with_atomic_sequence (fram
e);
- if (
next_pcs != NULL
)
+
std::vector<CORE_ADDR> next_pcs = ppc_deal_with_atomic_sequence (regcach
e);
+ if (
!next_pcs.empty ()
)
return next_pcs;
breaks[0] = loc + PPC_INSN_SIZE;
return next_pcs;
breaks[0] = loc + PPC_INSN_SIZE;
@@
-706,7
+704,8
@@
rs6000_software_single_step (struct frame_info *frame)
/* ignore invalid breakpoint. */
if (breaks[ii] == -1)
continue;
/* ignore invalid breakpoint. */
if (breaks[ii] == -1)
continue;
- VEC_safe_push (CORE_ADDR, next_pcs, breaks[ii]);
+
+ next_pcs.push_back (breaks[ii]);
}
errno = 0; /* FIXME, don't ignore errors! */
}
errno = 0; /* FIXME, don't ignore errors! */
@@
-909,20
+908,16
@@
static void
rs6000_aix_shared_library_to_xml (struct ld_info *ldi,
struct obstack *obstack)
{
rs6000_aix_shared_library_to_xml (struct ld_info *ldi,
struct obstack *obstack)
{
- char *p;
-
obstack_grow_str (obstack, "<library name=\"");
obstack_grow_str (obstack, "<library name=\"");
- p = xml_escape_text (ldi->filename);
- obstack_grow_str (obstack, p);
- xfree (p);
+ std::string p = xml_escape_text (ldi->filename);
+ obstack_grow_str (obstack, p.c_str ());
obstack_grow_str (obstack, "\"");
if (ldi->member_name[0] != '\0')
{
obstack_grow_str (obstack, " member=\"");
p = xml_escape_text (ldi->member_name);
obstack_grow_str (obstack, "\"");
if (ldi->member_name[0] != '\0')
{
obstack_grow_str (obstack, " member=\"");
p = xml_escape_text (ldi->member_name);
- obstack_grow_str (obstack, p);
- xfree (p);
+ obstack_grow_str (obstack, p.c_str ());
obstack_grow_str (obstack, "\"");
}
obstack_grow_str (obstack, "\"");
}
@@
-1049,7
+1044,6
@@
rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
software single-stepping. */
set_gdbarch_displaced_step_copy_insn (gdbarch, NULL);
set_gdbarch_displaced_step_fixup (gdbarch, NULL);
software single-stepping. */
set_gdbarch_displaced_step_copy_insn (gdbarch, NULL);
set_gdbarch_displaced_step_fixup (gdbarch, NULL);
- set_gdbarch_displaced_step_free_closure (gdbarch, NULL);
set_gdbarch_displaced_step_location (gdbarch, NULL);
set_gdbarch_push_dummy_call (gdbarch, rs6000_push_dummy_call);
set_gdbarch_displaced_step_location (gdbarch, NULL);
set_gdbarch_push_dummy_call (gdbarch, rs6000_push_dummy_call);
@@
-1081,14
+1075,16
@@
rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
else
set_gdbarch_frame_red_zone_size (gdbarch, 0);
else
set_gdbarch_frame_red_zone_size (gdbarch, 0);
+ if (tdep->wordsize == 8)
+ set_gdbarch_wchar_bit (gdbarch, 32);
+ else
+ set_gdbarch_wchar_bit (gdbarch, 16);
+ set_gdbarch_wchar_signed (gdbarch, 0);
set_gdbarch_auto_wide_charset (gdbarch, rs6000_aix_auto_wide_charset);
set_solib_ops (gdbarch, &solib_aix_so_ops);
}
set_gdbarch_auto_wide_charset (gdbarch, rs6000_aix_auto_wide_charset);
set_solib_ops (gdbarch, &solib_aix_so_ops);
}
-/* Provide a prototype to silence -Wmissing-prototypes. */
-extern initialize_file_ftype _initialize_rs6000_aix_tdep;
-
void
_initialize_rs6000_aix_tdep (void)
{
void
_initialize_rs6000_aix_tdep (void)
{
This page took
0.029866 seconds
and
4
git commands to generate.