aboutsummaryrefslogtreecommitdiff
path: root/gdb/sparc64-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/sparc64-tdep.c')
-rw-r--r--gdb/sparc64-tdep.c360
1 files changed, 161 insertions, 199 deletions
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index 96910be..2f2160b 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -44,7 +44,7 @@
/* Please use the sparc32_-prefix for 32-bit specific code, the
sparc64_-prefix for 64-bit specific code and the sparc_-prefix for
code can handle both. */
-
+
/* The M7 processor supports an Application Data Integrity (ADI) feature
that detects invalid data accesses. When software allocates memory and
enables ADI on the allocated memory, it chooses a 4-bit version number,
@@ -63,23 +63,22 @@
Note that 32-bit applications cannot use ADI. */
-
#include <algorithm>
#include "cli/cli-utils.h"
#include "gdbcmd.h"
#include "auxv.h"
-#define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/9999/adi/lstatus")
+#define MAX_PROC_NAME_SIZE sizeof ("/proc/99999/lwp/9999/adi/lstatus")
/* ELF Auxiliary vectors */
#ifndef AT_ADI_BLKSZ
-#define AT_ADI_BLKSZ 34
+#define AT_ADI_BLKSZ 34
#endif
#ifndef AT_ADI_NBITS
-#define AT_ADI_NBITS 35
+#define AT_ADI_NBITS 35
#endif
#ifndef AT_ADI_UEONADI
-#define AT_ADI_UEONADI 36
+#define AT_ADI_UEONADI 36
#endif
/* ADI command list. */
@@ -107,7 +106,6 @@ struct adi_stat_t
/* ADI is available. */
bool is_avail = false;
-
};
/* Per-process ADI stat info. */
@@ -116,29 +114,27 @@ struct sparc64_adi_info
{
sparc64_adi_info (pid_t pid_)
: pid (pid_)
- {}
+ {
+ }
/* The process identifier. */
pid_t pid;
/* The ADI stat. */
adi_stat_t stat = {};
-
};
static std::forward_list<sparc64_adi_info> adi_proc_list;
-
/* Get ADI info for process PID, creating one if it doesn't exist. */
-static sparc64_adi_info *
+static sparc64_adi_info *
get_adi_info_proc (pid_t pid)
{
auto found = std::find_if (adi_proc_list.begin (), adi_proc_list.end (),
- [&pid] (const sparc64_adi_info &info)
- {
- return info.pid == pid;
- });
+ [&pid] (const sparc64_adi_info &info) {
+ return info.pid == pid;
+ });
if (found == adi_proc_list.end ())
{
@@ -151,7 +147,7 @@ get_adi_info_proc (pid_t pid)
}
}
-static adi_stat_t
+static adi_stat_t
get_adi_info (pid_t pid)
{
sparc64_adi_info *proc;
@@ -168,14 +164,12 @@ sparc64_forget_process (pid_t pid)
{
fileio_error target_errno;
- for (auto pit = adi_proc_list.before_begin (),
- it = std::next (pit);
- it != adi_proc_list.end ();
- )
+ for (auto pit = adi_proc_list.before_begin (), it = std::next (pit);
+ it != adi_proc_list.end ();)
{
if ((*it).pid == pid)
{
- if ((*it).stat.tag_fd > 0)
+ if ((*it).stat.tag_fd > 0)
target_fileio_close ((*it).stat.tag_fd, &target_errno);
adi_proc_list.erase_after (pit);
break;
@@ -183,14 +177,12 @@ sparc64_forget_process (pid_t pid)
else
pit = it++;
}
-
}
/* Read attributes of a maps entry in /proc/[pid]/adi/maps. */
static void
-read_maps_entry (const char *line,
- ULONGEST *addr, ULONGEST *endaddr)
+read_maps_entry (const char *line, ULONGEST *addr, ULONGEST *endaddr)
{
const char *p = line;
@@ -284,9 +276,9 @@ adi_tag_fd (void)
return proc->stat.tag_fd;
char cl_name[MAX_PROC_NAME_SIZE];
- snprintf (cl_name, sizeof(cl_name), "/proc/%ld/adi/tags", (long) pid);
+ snprintf (cl_name, sizeof (cl_name), "/proc/%ld/adi/tags", (long) pid);
fileio_error target_errno;
- proc->stat.tag_fd = target_fileio_open (NULL, cl_name, O_RDWR|O_EXCL,
+ proc->stat.tag_fd = target_fileio_open (NULL, cl_name, O_RDWR | O_EXCL,
false, 0, &target_errno);
return proc->stat.tag_fd;
}
@@ -309,8 +301,7 @@ adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt)
{
adi_stat_t adi_stat = get_adi_info (pid);
char *saveptr;
- for (char *line = strtok_r (data.get (), "\n", &saveptr);
- line;
+ for (char *line = strtok_r (data.get (), "\n", &saveptr); line;
line = strtok_r (NULL, "\n", &saveptr))
{
ULONGEST addr, endaddr;
@@ -324,9 +315,9 @@ adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt)
return true;
}
}
- }
+ }
else
- warning (_("unable to open /proc file '%s'"), filename);
+ warning (_ ("unable to open /proc file '%s'"), filename);
return false;
}
@@ -344,8 +335,8 @@ adi_read_versions (CORE_ADDR vaddr, size_t size, gdb_byte *tags)
if (!adi_is_addr_mapped (vaddr, size))
{
adi_stat_t ast = get_adi_info (inferior_ptid.pid ());
- error(_("Address at %s is not in ADI maps"),
- paddress (target_gdbarch (), vaddr * ast.blksize));
+ error (_ ("Address at %s is not in ADI maps"),
+ paddress (target_gdbarch (), vaddr * ast.blksize));
}
fileio_error target_errno;
@@ -365,8 +356,8 @@ adi_write_versions (CORE_ADDR vaddr, size_t size, unsigned char *tags)
if (!adi_is_addr_mapped (vaddr, size))
{
adi_stat_t ast = get_adi_info (inferior_ptid.pid ());
- error(_("Address at %s is not in ADI maps"),
- paddress (target_gdbarch (), vaddr * ast.blksize));
+ error (_ ("Address at %s is not in ADI maps"),
+ paddress (target_gdbarch (), vaddr * ast.blksize));
}
fileio_error target_errno;
@@ -380,7 +371,7 @@ static void
adi_print_versions (CORE_ADDR vaddr, size_t cnt, gdb_byte *tags)
{
int v_idx = 0;
- const int maxelts = 8; /* # of elements per line */
+ const int maxelts = 8; /* # of elements per line */
adi_stat_t adi_stat = get_adi_info (inferior_ptid.pid ());
@@ -391,7 +382,7 @@ adi_print_versions (CORE_ADDR vaddr, size_t cnt, gdb_byte *tags)
paddress (target_gdbarch (), vaddr * adi_stat.blksize));
for (int i = maxelts; i > 0 && cnt > 0; i--, cnt--)
{
- if (tags[v_idx] == 0xff) /* no version tag */
+ if (tags[v_idx] == 0xff) /* no version tag */
gdb_printf ("-");
else
gdb_printf ("%1X", tags[v_idx]);
@@ -414,9 +405,10 @@ do_examine (CORE_ADDR start, int bcnt)
gdb::def_vector<gdb_byte> buf (cnt);
int read_cnt = adi_read_versions (vstart, cnt, buf.data ());
if (read_cnt == -1)
- error (_("No ADI information"));
+ error (_ ("No ADI information"));
else if (read_cnt < cnt)
- error(_("No ADI information at %s"), paddress (target_gdbarch (), vaddr));
+ error (_ ("No ADI information at %s"),
+ paddress (target_gdbarch (), vaddr));
adi_print_versions (vstart, cnt, buf.data ());
}
@@ -432,10 +424,10 @@ do_assign (CORE_ADDR start, size_t bcnt, int version)
int set_cnt = adi_write_versions (vstart, cnt, buf.data ());
if (set_cnt == -1)
- error (_("No ADI information"));
+ error (_ ("No ADI information"));
else if (set_cnt < cnt)
- error(_("No ADI information at %s"), paddress (target_gdbarch (), vaddr));
-
+ error (_ ("No ADI information at %s"),
+ paddress (target_gdbarch (), vaddr));
}
/* ADI examine version tag command.
@@ -449,10 +441,10 @@ adi_examine_command (const char *args, int from_tty)
{
/* make sure program is active and adi is available */
if (!target_has_execution ())
- error (_("ADI command requires a live process/thread"));
+ error (_ ("ADI command requires a live process/thread"));
if (!adi_available ())
- error (_("No ADI information"));
+ error (_ ("No ADI information"));
int cnt = 1;
const char *p = args;
@@ -466,7 +458,7 @@ adi_examine_command (const char *args, int from_tty)
if (p != 0 && *p != 0)
next_address = parse_and_eval_address (p);
if (!cnt || !next_address)
- error (_("Usage: adi examine|x[/COUNT] [ADDR]"));
+ error (_ ("Usage: adi examine|x[/COUNT] [ADDR]"));
do_examine (next_address, cnt);
}
@@ -481,24 +473,24 @@ static void
adi_assign_command (const char *args, int from_tty)
{
static const char *adi_usage
- = N_("Usage: adi assign|a[/COUNT] ADDR = VERSION");
+ = N_ ("Usage: adi assign|a[/COUNT] ADDR = VERSION");
/* make sure program is active and adi is available */
if (!target_has_execution ())
- error (_("ADI command requires a live process/thread"));
+ error (_ ("ADI command requires a live process/thread"));
if (!adi_available ())
- error (_("No ADI information"));
+ error (_ ("No ADI information"));
const char *exp = args;
if (exp == 0)
- error_no_arg (_(adi_usage));
+ error_no_arg (_ (adi_usage));
char *q = (char *) strchr (exp, '=');
if (q)
*q++ = 0;
else
- error ("%s", _(adi_usage));
+ error ("%s", _ (adi_usage));
size_t cnt = 1;
const char *p = args;
@@ -512,36 +504,35 @@ adi_assign_command (const char *args, int from_tty)
if (p != 0 && *p != 0)
next_address = parse_and_eval_address (p);
else
- error ("%s", _(adi_usage));
+ error ("%s", _ (adi_usage));
int version = 0;
- if (q != NULL) /* parse version tag */
+ if (q != NULL) /* parse version tag */
{
adi_stat_t ast = get_adi_info (inferior_ptid.pid ());
version = parse_and_eval_long (q);
if (version < 0 || version > ast.max_version)
- error (_("Invalid ADI version tag %d"), version);
+ error (_ ("Invalid ADI version tag %d"), version);
}
do_assign (next_address, cnt, version);
}
void _initialize_sparc64_adi_tdep ();
+
void
_initialize_sparc64_adi_tdep ()
{
add_basic_prefix_cmd ("adi", class_support,
- _("ADI version related commands."),
- &sparc64adilist, 0, &cmdlist);
+ _ ("ADI version related commands."), &sparc64adilist,
+ 0, &cmdlist);
cmd_list_element *adi_examine_cmd
= add_cmd ("examine", class_support, adi_examine_command,
- _("Examine ADI versions."), &sparc64adilist);
+ _ ("Examine ADI versions."), &sparc64adilist);
add_alias_cmd ("x", adi_examine_cmd, no_class, 1, &sparc64adilist);
add_cmd ("assign", class_support, adi_assign_command,
- _("Assign ADI versions."), &sparc64adilist);
-
+ _ ("Assign ADI versions."), &sparc64adilist);
}
-
/* The functions on this page are intended to be used to classify
function arguments. */
@@ -639,7 +630,6 @@ sparc64_structure_or_union_p (const struct type *type)
return 0;
}
-
/* Construct types for ISA-specific registers. */
@@ -748,36 +738,25 @@ sparc64_fprs_type (struct gdbarch *gdbarch)
return tdep->sparc64_fprs_type;
}
-
/* Register information. */
-#define SPARC64_FPU_REGISTERS \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
- "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
- "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
- "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
- "f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", \
- "f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62"
-#define SPARC64_CP0_REGISTERS \
- "pc", "npc", \
- /* FIXME: Give "state" a name until we start using register groups. */ \
- "state", \
- "fsr", \
- "fprs", \
- "y"
-
-static const char * const sparc64_fpu_register_names[] = {
- SPARC64_FPU_REGISTERS
-};
-static const char * const sparc64_cp0_register_names[] = {
- SPARC64_CP0_REGISTERS
-};
-
-static const char * const sparc64_register_names[] =
-{
- SPARC_CORE_REGISTERS,
- SPARC64_FPU_REGISTERS,
- SPARC64_CP0_REGISTERS
-};
+#define SPARC64_FPU_REGISTERS \
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11", \
+ "f12", "f13", "f14", "f15", "f16", "f17", "f18", "f19", "f20", "f21", \
+ "f22", "f23", "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
+ "f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", "f48", "f50", \
+ "f52", "f54", "f56", "f58", "f60", "f62"
+#define SPARC64_CP0_REGISTERS \
+ "pc", \
+ "npc", /* FIXME: Give "state" a name until we start using register groups. */ \
+ "state", "fsr", "fprs", "y"
+
+static const char *const sparc64_fpu_register_names[]
+ = { SPARC64_FPU_REGISTERS };
+static const char *const sparc64_cp0_register_names[]
+ = { SPARC64_CP0_REGISTERS };
+
+static const char *const sparc64_register_names[]
+ = { SPARC_CORE_REGISTERS, SPARC64_FPU_REGISTERS, SPARC64_CP0_REGISTERS };
/* Total number of registers. */
#define SPARC64_NUM_REGS ARRAY_SIZE (sparc64_register_names)
@@ -785,17 +764,16 @@ static const char * const sparc64_register_names[] =
/* We provide the aliases %d0..%d62 and %q0..%q60 for the floating
registers as "psuedo" registers. */
-static const char * const sparc64_pseudo_register_names[] =
-{
+static const char *const sparc64_pseudo_register_names[] = {
"cwp", "pstate", "asi", "ccr",
- "d0", "d2", "d4", "d6", "d8", "d10", "d12", "d14",
- "d16", "d18", "d20", "d22", "d24", "d26", "d28", "d30",
- "d32", "d34", "d36", "d38", "d40", "d42", "d44", "d46",
- "d48", "d50", "d52", "d54", "d56", "d58", "d60", "d62",
+ "d0", "d2", "d4", "d6", "d8", "d10", "d12", "d14",
+ "d16", "d18", "d20", "d22", "d24", "d26", "d28", "d30",
+ "d32", "d34", "d36", "d38", "d40", "d42", "d44", "d46",
+ "d48", "d50", "d52", "d54", "d56", "d58", "d60", "d62",
- "q0", "q4", "q8", "q12", "q16", "q20", "q24", "q28",
- "q32", "q36", "q40", "q44", "q48", "q52", "q56", "q60",
+ "q0", "q4", "q8", "q12", "q16", "q20", "q24", "q28",
+ "q32", "q36", "q40", "q44", "q48", "q52", "q56", "q60",
};
/* Total number of pseudo registers. */
@@ -847,7 +825,7 @@ sparc64_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
if (regnum >= SPARC64_Q0_REGNUM && regnum <= SPARC64_Q60_REGNUM)
return builtin_type (gdbarch)->builtin_long_double;
- internal_error (_("sparc64_pseudo_register_type: bad register number %d"),
+ internal_error (_ ("sparc64_pseudo_register_type: bad register number %d"),
regnum);
}
@@ -888,13 +866,13 @@ sparc64_register_type (struct gdbarch *gdbarch, int regnum)
if (regnum >= gdbarch_num_regs (gdbarch))
return sparc64_pseudo_register_type (gdbarch, regnum);
- internal_error (_("invalid regnum"));
+ internal_error (_ ("invalid regnum"));
}
static enum register_status
sparc64_pseudo_register_read (struct gdbarch *gdbarch,
- readable_regcache *regcache,
- int regnum, gdb_byte *buf)
+ readable_regcache *regcache, int regnum,
+ gdb_byte *buf)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
enum register_status status;
@@ -938,10 +916,8 @@ sparc64_pseudo_register_read (struct gdbarch *gdbarch,
return status;
}
- else if (regnum == SPARC64_CWP_REGNUM
- || regnum == SPARC64_PSTATE_REGNUM
- || regnum == SPARC64_ASI_REGNUM
- || regnum == SPARC64_CCR_REGNUM)
+ else if (regnum == SPARC64_CWP_REGNUM || regnum == SPARC64_PSTATE_REGNUM
+ || regnum == SPARC64_ASI_REGNUM || regnum == SPARC64_CCR_REGNUM)
{
ULONGEST state;
@@ -972,8 +948,8 @@ sparc64_pseudo_register_read (struct gdbarch *gdbarch,
static void
sparc64_pseudo_register_write (struct gdbarch *gdbarch,
- struct regcache *regcache,
- int regnum, const gdb_byte *buf)
+ struct regcache *regcache, int regnum,
+ const gdb_byte *buf)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -1004,10 +980,8 @@ sparc64_pseudo_register_write (struct gdbarch *gdbarch,
regcache->raw_write (regnum, buf);
regcache->raw_write (regnum + 1, buf + 8);
}
- else if (regnum == SPARC64_CWP_REGNUM
- || regnum == SPARC64_PSTATE_REGNUM
- || regnum == SPARC64_ASI_REGNUM
- || regnum == SPARC64_CCR_REGNUM)
+ else if (regnum == SPARC64_CWP_REGNUM || regnum == SPARC64_PSTATE_REGNUM
+ || regnum == SPARC64_ASI_REGNUM || regnum == SPARC64_CCR_REGNUM)
{
ULONGEST state, bits;
@@ -1031,7 +1005,6 @@ sparc64_pseudo_register_write (struct gdbarch *gdbarch,
regcache_raw_write_unsigned (regcache, SPARC64_STATE_REGNUM, state);
}
}
-
/* Return PC of first real instruction of the function starting at
START_PC. */
@@ -1049,8 +1022,7 @@ sparc64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
{
sal = find_pc_line (func_start, 0);
- if (sal.end < func_end
- && start_pc <= sal.end)
+ if (sal.end < func_end && start_pc <= sal.end)
return sal.end;
}
@@ -1070,8 +1042,8 @@ static void
sparc64_frame_this_id (frame_info_ptr this_frame, void **this_cache,
struct frame_id *this_id)
{
- struct sparc_frame_cache *cache =
- sparc64_frame_cache (this_frame, this_cache);
+ struct sparc_frame_cache *cache
+ = sparc64_frame_cache (this_frame, this_cache);
/* This marks the outermost frame. */
if (cache->base == 0)
@@ -1085,15 +1057,15 @@ sparc64_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
int regnum)
{
struct gdbarch *gdbarch = get_frame_arch (this_frame);
- struct sparc_frame_cache *cache =
- sparc64_frame_cache (this_frame, this_cache);
+ struct sparc_frame_cache *cache
+ = sparc64_frame_cache (this_frame, this_cache);
if (regnum == SPARC64_PC_REGNUM || regnum == SPARC64_NPC_REGNUM)
{
CORE_ADDR pc = (regnum == SPARC64_NPC_REGNUM) ? 4 : 0;
- regnum =
- (cache->copied_regs_mask & 0x80) ? SPARC_I7_REGNUM : SPARC_O7_REGNUM;
+ regnum
+ = (cache->copied_regs_mask & 0x80) ? SPARC_I7_REGNUM : SPARC_O7_REGNUM;
pc += get_frame_register_unsigned (this_frame, regnum) + 8;
return frame_unwind_got_constant (this_frame, regnum, pc);
}
@@ -1132,35 +1104,28 @@ sparc64_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
return frame_unwind_got_register (this_frame, regnum, regnum);
}
-static const struct frame_unwind sparc64_frame_unwind =
-{
- "sparc64 prologue",
- NORMAL_FRAME,
- default_frame_unwind_stop_reason,
- sparc64_frame_this_id,
- sparc64_frame_prev_register,
- NULL,
- default_frame_sniffer
-};
-
+static const struct frame_unwind sparc64_frame_unwind
+ = { "sparc64 prologue",
+ NORMAL_FRAME,
+ default_frame_unwind_stop_reason,
+ sparc64_frame_this_id,
+ sparc64_frame_prev_register,
+ NULL,
+ default_frame_sniffer };
static CORE_ADDR
sparc64_frame_base_address (frame_info_ptr this_frame, void **this_cache)
{
- struct sparc_frame_cache *cache =
- sparc64_frame_cache (this_frame, this_cache);
+ struct sparc_frame_cache *cache
+ = sparc64_frame_cache (this_frame, this_cache);
return cache->base;
}
-static const struct frame_base sparc64_frame_base =
-{
- &sparc64_frame_unwind,
- sparc64_frame_base_address,
- sparc64_frame_base_address,
- sparc64_frame_base_address
-};
-
+static const struct frame_base sparc64_frame_base
+ = { &sparc64_frame_unwind, sparc64_frame_base_address,
+ sparc64_frame_base_address, sparc64_frame_base_address };
+
/* Check whether TYPE must be 16-byte aligned. */
static int
@@ -1224,7 +1189,7 @@ sparc64_store_floating_fields (struct regcache *regcache, struct type *type,
regcache->cooked_write (regnum + n, valbuf + n * 4);
}
else if (sparc64_floating_p (type)
- || (sparc64_complex_floating_p (type) && len <= 16))
+ || (sparc64_complex_floating_p (type) && len <= 16))
{
int regnum;
@@ -1233,15 +1198,16 @@ sparc64_store_floating_fields (struct regcache *regcache, struct type *type,
gdb_assert (bitpos == 0);
gdb_assert ((element % 2) == 0);
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_Q0_REGNUM + element / 2;
+ regnum
+ = gdbarch_num_regs (gdbarch) + SPARC64_Q0_REGNUM + element / 2;
regcache->cooked_write (regnum, valbuf);
}
else if (len == 8)
{
gdb_assert (bitpos == 0 || bitpos == 64);
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM
- + element + bitpos / 64;
+ regnum = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + element
+ + bitpos / 64;
regcache->cooked_write (regnum, valbuf + (bitpos / 8));
}
else
@@ -1262,8 +1228,8 @@ sparc64_store_floating_fields (struct regcache *regcache, struct type *type,
struct type *subtype = check_typedef (type->field (i).type ());
int subpos = bitpos + type->field (i).loc_bitpos ();
- sparc64_store_floating_fields (regcache, subtype, valbuf,
- element, subpos);
+ sparc64_store_floating_fields (regcache, subtype, valbuf, element,
+ subpos);
}
/* GCC has an interesting bug. If TYPE is a structure that has
@@ -1299,7 +1265,7 @@ sparc64_extract_floating_fields (struct regcache *regcache, struct type *type,
if (type->code () == TYPE_CODE_ARRAY)
{
int len = type->length ();
- int regnum = SPARC_F0_REGNUM + bitpos / 32;
+ int regnum = SPARC_F0_REGNUM + bitpos / 32;
valbuf += bitpos / 8;
if (len < 4)
@@ -1321,15 +1287,16 @@ sparc64_extract_floating_fields (struct regcache *regcache, struct type *type,
{
gdb_assert (bitpos == 0 || bitpos == 128);
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_Q0_REGNUM
- + bitpos / 128;
+ regnum
+ = gdbarch_num_regs (gdbarch) + SPARC64_Q0_REGNUM + bitpos / 128;
regcache->cooked_read (regnum, valbuf + (bitpos / 8));
}
else if (len == 8)
{
gdb_assert (bitpos % 64 == 0 && bitpos >= 0 && bitpos < 256);
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + bitpos / 64;
+ regnum
+ = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + bitpos / 64;
regcache->cooked_read (regnum, valbuf + (bitpos / 8));
}
else
@@ -1446,8 +1413,8 @@ sparc64_store_arguments (struct regcache *regcache, int nargs,
caller to an extended word according to the signed-ness
of the argument type." */
if (len < 8)
- args[i] = value_cast (builtin_type (gdbarch)->builtin_int64,
- args[i]);
+ args[i]
+ = value_cast (builtin_type (gdbarch)->builtin_int64, args[i]);
num_elements++;
}
}
@@ -1513,7 +1480,8 @@ sparc64_store_arguments (struct regcache *regcache, int nargs,
/* Float Complex or double Complex arguments. */
if (element < 16)
{
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + element;
+ regnum
+ = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + element;
if (len == 16)
{
@@ -1539,8 +1507,8 @@ sparc64_store_arguments (struct regcache *regcache, int nargs,
else if (len == 8)
{
if (element < 16)
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM
- + element;
+ regnum
+ = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + element;
}
else if (len == 4)
{
@@ -1555,8 +1523,8 @@ sparc64_store_arguments (struct regcache *regcache, int nargs,
valbuf = buf;
len = 8;
if (element < 16)
- regnum = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM
- + element;
+ regnum
+ = gdbarch_num_regs (gdbarch) + SPARC64_D0_REGNUM + element;
}
}
else
@@ -1583,7 +1551,8 @@ sparc64_store_arguments (struct regcache *regcache, int nargs,
regnum = SPARC_O0_REGNUM + element;
regcache->cooked_write (regnum, valbuf);
}
- else if (regnum >= SPARC64_Q0_REGNUM && regnum <= SPARC64_Q8_REGNUM)
+ else if (regnum >= SPARC64_Q0_REGNUM
+ && regnum <= SPARC64_Q8_REGNUM)
{
gdb_assert (element < 5);
regnum = SPARC_O0_REGNUM + element;
@@ -1637,7 +1606,6 @@ sparc64_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
return sp + BIAS;
}
-
/* Extract from an array REGBUF containing the (raw) register state, a
function return value of TYPE, and copy that into VALBUF. */
@@ -1759,7 +1727,6 @@ sparc64_return_value (struct gdbarch *gdbarch, struct value *function,
return RETURN_VALUE_REGISTER_CONVENTION;
}
-
static void
sparc64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
@@ -1836,8 +1803,8 @@ sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_return_value (gdbarch, sparc64_return_value);
set_gdbarch_return_value_as_value (gdbarch, default_gdbarch_return_value);
- set_gdbarch_stabs_argument_has_addr
- (gdbarch, default_stabs_argument_has_addr);
+ set_gdbarch_stabs_argument_has_addr (gdbarch,
+ default_stabs_argument_has_addr);
set_gdbarch_skip_prologue (gdbarch, sparc64_skip_prologue);
set_gdbarch_stack_frame_destroyed_p (gdbarch, sparc_stack_frame_destroyed_p);
@@ -1852,29 +1819,28 @@ sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_addr_bits_remove (gdbarch, sparc64_addr_bits_remove);
}
-
/* Helper functions for dealing with register sets. */
-#define TSTATE_CWP 0x000000000000001fULL
-#define TSTATE_ICC 0x0000000f00000000ULL
-#define TSTATE_XCC 0x000000f000000000ULL
+#define TSTATE_CWP 0x000000000000001fULL
+#define TSTATE_ICC 0x0000000f00000000ULL
+#define TSTATE_XCC 0x000000f000000000ULL
-#define PSR_S 0x00000080
+#define PSR_S 0x00000080
#ifndef PSR_ICC
-#define PSR_ICC 0x00f00000
+#define PSR_ICC 0x00f00000
#endif
-#define PSR_VERS 0x0f000000
+#define PSR_VERS 0x0f000000
#ifndef PSR_IMPL
-#define PSR_IMPL 0xf0000000
+#define PSR_IMPL 0xf0000000
#endif
-#define PSR_V8PLUS 0xff000000
-#define PSR_XCC 0x000f0000
+#define PSR_V8PLUS 0xff000000
+#define PSR_XCC 0x000f0000
void
sparc64_supply_gregset (const struct sparc_gregmap *gregmap,
- struct regcache *regcache,
- int regnum, const void *gregs)
+ struct regcache *regcache, int regnum,
+ const void *gregs)
{
struct gdbarch *gdbarch = regcache->arch ();
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -1919,8 +1885,7 @@ sparc64_supply_gregset (const struct sparc_gregmap *gregmap,
regs + gregmap->r_tstate_offset);
if (regnum == SPARC64_PC_REGNUM || regnum == -1)
- regcache->raw_supply (SPARC64_PC_REGNUM,
- regs + gregmap->r_pc_offset);
+ regcache->raw_supply (SPARC64_PC_REGNUM, regs + gregmap->r_pc_offset);
if (regnum == SPARC64_NPC_REGNUM || regnum == -1)
regcache->raw_supply (SPARC64_NPC_REGNUM,
@@ -1931,8 +1896,8 @@ sparc64_supply_gregset (const struct sparc_gregmap *gregmap,
gdb_byte buf[8];
memset (buf, 0, 8);
- memcpy (buf + 8 - gregmap->r_y_size,
- regs + gregmap->r_y_offset, gregmap->r_y_size);
+ memcpy (buf + 8 - gregmap->r_y_size, regs + gregmap->r_y_offset,
+ gregmap->r_y_size);
regcache->raw_supply (SPARC64_Y_REGNUM, buf);
}
@@ -1990,8 +1955,8 @@ sparc64_supply_gregset (const struct sparc_gregmap *gregmap,
void
sparc64_collect_gregset (const struct sparc_gregmap *gregmap,
- const struct regcache *regcache,
- int regnum, void *gregs)
+ const struct regcache *regcache, int regnum,
+ void *gregs)
{
struct gdbarch *gdbarch = regcache->arch ();
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -2038,8 +2003,7 @@ sparc64_collect_gregset (const struct sparc_gregmap *gregmap,
regs + gregmap->r_tstate_offset);
if (regnum == SPARC64_PC_REGNUM || regnum == -1)
- regcache->raw_collect (SPARC64_PC_REGNUM,
- regs + gregmap->r_pc_offset);
+ regcache->raw_collect (SPARC64_PC_REGNUM, regs + gregmap->r_pc_offset);
if (regnum == SPARC64_NPC_REGNUM || regnum == -1)
regcache->raw_collect (SPARC64_NPC_REGNUM,
@@ -2050,15 +2014,14 @@ sparc64_collect_gregset (const struct sparc_gregmap *gregmap,
gdb_byte buf[8];
regcache->raw_collect (SPARC64_Y_REGNUM, buf);
- memcpy (regs + gregmap->r_y_offset,
- buf + 8 - gregmap->r_y_size, gregmap->r_y_size);
+ memcpy (regs + gregmap->r_y_offset, buf + 8 - gregmap->r_y_size,
+ gregmap->r_y_size);
}
if ((regnum == SPARC64_FPRS_REGNUM || regnum == -1)
&& gregmap->r_fprs_offset != -1)
regcache->raw_collect (SPARC64_FPRS_REGNUM,
regs + gregmap->r_fprs_offset);
-
}
if ((regnum >= SPARC_G1_REGNUM && regnum <= SPARC_O7_REGNUM) || regnum == -1)
@@ -2100,8 +2063,8 @@ sparc64_collect_gregset (const struct sparc_gregmap *gregmap,
void
sparc64_supply_fpregset (const struct sparc_fpregmap *fpregmap,
- struct regcache *regcache,
- int regnum, const void *fpregs)
+ struct regcache *regcache, int regnum,
+ const void *fpregs)
{
int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
const gdb_byte *regs = (const gdb_byte *) fpregs;
@@ -2118,16 +2081,16 @@ sparc64_supply_fpregset (const struct sparc_fpregmap *fpregmap,
{
if (regnum == SPARC32_FSR_REGNUM || regnum == -1)
regcache->raw_supply (SPARC32_FSR_REGNUM,
- regs + fpregmap->r_fsr_offset);
+ regs + fpregmap->r_fsr_offset);
}
else
{
for (i = 0; i < 16; i++)
{
if (regnum == (SPARC64_F32_REGNUM + i) || regnum == -1)
- regcache->raw_supply
- (SPARC64_F32_REGNUM + i,
- regs + fpregmap->r_f0_offset + (32 * 4) + (i * 8));
+ regcache->raw_supply (SPARC64_F32_REGNUM + i,
+ regs + fpregmap->r_f0_offset + (32 * 4)
+ + (i * 8));
}
if (regnum == SPARC64_FSR_REGNUM || regnum == -1)
@@ -2138,8 +2101,8 @@ sparc64_supply_fpregset (const struct sparc_fpregmap *fpregmap,
void
sparc64_collect_fpregset (const struct sparc_fpregmap *fpregmap,
- const struct regcache *regcache,
- int regnum, void *fpregs)
+ const struct regcache *regcache, int regnum,
+ void *fpregs)
{
int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
gdb_byte *regs = (gdb_byte *) fpregs;
@@ -2164,8 +2127,8 @@ sparc64_collect_fpregset (const struct sparc_fpregmap *fpregmap,
{
if (regnum == (SPARC64_F32_REGNUM + i) || regnum == -1)
regcache->raw_collect (SPARC64_F32_REGNUM + i,
- (regs + fpregmap->r_f0_offset
- + (32 * 4) + (i * 8)));
+ (regs + fpregmap->r_f0_offset + (32 * 4)
+ + (i * 8)));
}
if (regnum == SPARC64_FSR_REGNUM || regnum == -1)
@@ -2174,8 +2137,7 @@ sparc64_collect_fpregset (const struct sparc_fpregmap *fpregmap,
}
}
-const struct sparc_fpregmap sparc64_bsd_fpregmap =
-{
- 0 * 8, /* %f0 */
- 32 * 8, /* %fsr */
+const struct sparc_fpregmap sparc64_bsd_fpregmap = {
+ 0 * 8, /* %f0 */
+ 32 * 8, /* %fsr */
};