projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Silence ARI for valid calls to abort
[deliverable/binutils-gdb.git]
/
gdb
/
sparc-ravenscar-thread.c
diff --git
a/gdb/sparc-ravenscar-thread.c
b/gdb/sparc-ravenscar-thread.c
index 80c5e84f0ad4abe8b5924dc193817fb45dd8f888..ca885b42420e34c250f83ff6a84a5eb3b4989f54 100644
(file)
--- a/
gdb/sparc-ravenscar-thread.c
+++ b/
gdb/sparc-ravenscar-thread.c
@@
-1,6
+1,6
@@
/* Ravenscar SPARC target support.
/* Ravenscar SPARC target support.
- Copyright (C) 2004-201
5
Free Software Foundation, Inc.
+ Copyright (C) 2004-201
9
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-24,12
+24,13
@@
#include "inferior.h"
#include "ravenscar-thread.h"
#include "sparc-ravenscar-thread.h"
#include "inferior.h"
#include "ravenscar-thread.h"
#include "sparc-ravenscar-thread.h"
+#include "gdbarch.h"
-st
atic void sparc_ravenscar_fetch_registers (struct regcache *regcache,
- int regnum);
-static void sparc_ravenscar_store_registers (struct regcache *regcache,
-
int regnum)
;
-
static void sparc_ravenscar_prepare_to_store (struct regcache *regcache)
;
+st
ruct sparc_ravenscar_ops : public ravenscar_arch_ops
+{
+ void fetch_registers (struct regcache *, int) override;
+
void store_registers (struct regcache *, int) override
;
+
}
;
/* Register offsets from a referenced address (exempli gratia the
Thread_Descriptor). The referenced address depends on the register
/* Register offsets from a referenced address (exempli gratia the
Thread_Descriptor). The referenced address depends on the register
@@
-62,13
+63,13
@@
static void
supply_register_at_address (struct regcache *regcache, int regnum,
CORE_ADDR register_addr)
{
supply_register_at_address (struct regcache *regcache, int regnum,
CORE_ADDR register_addr)
{
- struct gdbarch *gdbarch =
get_regcache_arch (regcache
);
+ struct gdbarch *gdbarch =
regcache->arch (
);
int buf_size = register_size (gdbarch, regnum);
gdb_byte *buf;
int buf_size = register_size (gdbarch, regnum);
gdb_byte *buf;
- buf = alloca (buf_size);
+ buf =
(gdb_byte *)
alloca (buf_size);
read_memory (register_addr, buf, buf_size);
read_memory (register_addr, buf, buf_size);
- regcache
_raw_supply (regcache,
regnum, buf);
+ regcache
->raw_supply (
regnum, buf);
}
/* Return true if, for a non-running thread, REGNUM has been saved on the
}
/* Return true if, for a non-running thread, REGNUM has been saved on the
@@
-100,10
+101,10
@@
register_in_thread_descriptor_p (int regnum)
/* to_fetch_registers when inferior_ptid is different from the running
thread. */
/* to_fetch_registers when inferior_ptid is different from the running
thread. */
-
static
void
-sparc_ravenscar_fetch_registers (struct regcache *regcache, int regnum)
+void
+sparc_ravenscar_
ops::
fetch_registers (struct regcache *regcache, int regnum)
{
{
- struct gdbarch *gdbarch =
get_regcache_arch (regcache
);
+ struct gdbarch *gdbarch =
regcache->arch (
);
const int sp_regnum = gdbarch_sp_regnum (gdbarch);
const int num_regs = gdbarch_num_regs (gdbarch);
int current_regnum;
const int sp_regnum = gdbarch_sp_regnum (gdbarch);
const int num_regs = gdbarch_num_regs (gdbarch);
int current_regnum;
@@
-112,7
+113,7
@@
sparc_ravenscar_fetch_registers (struct regcache *regcache, int regnum)
ULONGEST stack_address;
/* The tid is the thread_id field, which is a pointer to the thread. */
ULONGEST stack_address;
/* The tid is the thread_id field, which is a pointer to the thread. */
- thread_descriptor_address = (CORE_ADDR)
ptid_get_tid (inferior_ptid
);
+ thread_descriptor_address = (CORE_ADDR)
inferior_ptid.tid (
);
/* Read the saved SP in the context buffer. */
current_address = thread_descriptor_address
/* Read the saved SP in the context buffer. */
current_address = thread_descriptor_address
@@
-140,29
+141,20
@@
sparc_ravenscar_fetch_registers (struct regcache *regcache, int regnum)
}
}
}
}
-/* to_prepare_to_store when inferior_ptid is different from the running
- thread. */
-
-static void
-sparc_ravenscar_prepare_to_store (struct regcache *regcache)
-{
- /* Nothing to do. */
-}
-
/* to_store_registers when inferior_ptid is different from the running
thread. */
/* to_store_registers when inferior_ptid is different from the running
thread. */
-
static
void
-sparc_ravenscar_store_registers (struct regcache *regcache, int regnum)
+void
+sparc_ravenscar_
ops::
store_registers (struct regcache *regcache, int regnum)
{
{
- struct gdbarch *gdbarch =
get_regcache_arch (regcache
);
+ struct gdbarch *gdbarch =
regcache->arch (
);
int buf_size = register_size (gdbarch, regnum);
gdb_byte buf[buf_size];
ULONGEST register_address;
if (register_in_thread_descriptor_p (regnum))
register_address =
int buf_size = register_size (gdbarch, regnum);
gdb_byte buf[buf_size];
ULONGEST register_address;
if (register_in_thread_descriptor_p (regnum))
register_address =
-
ptid_get_tid (inferior_ptid
) + sparc_register_offsets [regnum];
+
inferior_ptid.tid (
) + sparc_register_offsets [regnum];
else if (register_on_stack_p (regnum))
{
regcache_cooked_read_unsigned (regcache, SPARC_SP_REGNUM,
else if (register_on_stack_p (regnum))
{
regcache_cooked_read_unsigned (regcache, SPARC_SP_REGNUM,
@@
-172,18
+164,13
@@
sparc_ravenscar_store_registers (struct regcache *regcache, int regnum)
else
return;
else
return;
- regcache
_raw_collect (regcache,
regnum, buf);
+ regcache
->raw_collect (
regnum, buf);
write_memory (register_address,
buf,
buf_size);
}
write_memory (register_address,
buf,
buf_size);
}
-static struct ravenscar_arch_ops sparc_ravenscar_ops =
-{
- sparc_ravenscar_fetch_registers,
- sparc_ravenscar_store_registers,
- sparc_ravenscar_prepare_to_store
-};
+static struct sparc_ravenscar_ops sparc_ravenscar_ops;
/* Register ravenscar_arch_ops in GDBARCH. */
/* Register ravenscar_arch_ops in GDBARCH. */
This page took
0.034895 seconds
and
4
git commands to generate.