aboutsummaryrefslogtreecommitdiff
path: root/gdb/rs6000-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r--gdb/rs6000-tdep.c4397
1 files changed, 2119 insertions, 2278 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 592b447..03792ec 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -43,8 +43,8 @@
#include "record-full.h"
#include "auxv.h"
-#include "coff/internal.h" /* for libcoff.h */
-#include "libcoff.h" /* for xcoff_data */
+#include "coff/internal.h" /* for libcoff.h */
+#include "libcoff.h" /* for xcoff_data */
#include "coff/xcoff.h"
#include "libxcoff.h"
@@ -87,47 +87,47 @@
#include "features/rs6000/rs6000.c"
/* Determine if regnum is an SPE pseudo-register. */
-#define IS_SPE_PSEUDOREG(tdep, regnum) ((tdep)->ppc_ev0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_ev0_regnum \
- && (regnum) < (tdep)->ppc_ev0_regnum + 32)
+#define IS_SPE_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_ev0_regnum >= 0 && (regnum) >= (tdep)->ppc_ev0_regnum \
+ && (regnum) < (tdep)->ppc_ev0_regnum + 32)
/* Determine if regnum is a decimal float pseudo-register. */
-#define IS_DFP_PSEUDOREG(tdep, regnum) ((tdep)->ppc_dl0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_dl0_regnum \
- && (regnum) < (tdep)->ppc_dl0_regnum + 16)
+#define IS_DFP_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_dl0_regnum >= 0 && (regnum) >= (tdep)->ppc_dl0_regnum \
+ && (regnum) < (tdep)->ppc_dl0_regnum + 16)
/* Determine if regnum is a "vX" alias for the raw "vrX" vector
registers. */
-#define IS_V_ALIAS_PSEUDOREG(tdep, regnum) (\
- (tdep)->ppc_v0_alias_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_v0_alias_regnum \
- && (regnum) < (tdep)->ppc_v0_alias_regnum + ppc_num_vrs)
+#define IS_V_ALIAS_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_v0_alias_regnum >= 0 \
+ && (regnum) >= (tdep)->ppc_v0_alias_regnum \
+ && (regnum) < (tdep)->ppc_v0_alias_regnum + ppc_num_vrs)
/* Determine if regnum is a POWER7 VSX register. */
-#define IS_VSX_PSEUDOREG(tdep, regnum) ((tdep)->ppc_vsr0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_vsr0_regnum \
- && (regnum) < (tdep)->ppc_vsr0_regnum + ppc_num_vsrs)
+#define IS_VSX_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_vsr0_regnum >= 0 && (regnum) >= (tdep)->ppc_vsr0_regnum \
+ && (regnum) < (tdep)->ppc_vsr0_regnum + ppc_num_vsrs)
/* Determine if regnum is a POWER7 Extended FP register. */
-#define IS_EFP_PSEUDOREG(tdep, regnum) ((tdep)->ppc_efpr0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_efpr0_regnum \
- && (regnum) < (tdep)->ppc_efpr0_regnum + ppc_num_efprs)
+#define IS_EFP_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_efpr0_regnum >= 0 && (regnum) >= (tdep)->ppc_efpr0_regnum \
+ && (regnum) < (tdep)->ppc_efpr0_regnum + ppc_num_efprs)
/* Determine if regnum is a checkpointed decimal float
pseudo-register. */
-#define IS_CDFP_PSEUDOREG(tdep, regnum) ((tdep)->ppc_cdl0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_cdl0_regnum \
- && (regnum) < (tdep)->ppc_cdl0_regnum + 16)
+#define IS_CDFP_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_cdl0_regnum >= 0 && (regnum) >= (tdep)->ppc_cdl0_regnum \
+ && (regnum) < (tdep)->ppc_cdl0_regnum + 16)
/* Determine if regnum is a Checkpointed POWER7 VSX register. */
-#define IS_CVSX_PSEUDOREG(tdep, regnum) ((tdep)->ppc_cvsr0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_cvsr0_regnum \
- && (regnum) < (tdep)->ppc_cvsr0_regnum + ppc_num_vsrs)
+#define IS_CVSX_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_cvsr0_regnum >= 0 && (regnum) >= (tdep)->ppc_cvsr0_regnum \
+ && (regnum) < (tdep)->ppc_cvsr0_regnum + ppc_num_vsrs)
/* Determine if regnum is a Checkpointed POWER7 Extended FP register. */
-#define IS_CEFP_PSEUDOREG(tdep, regnum) ((tdep)->ppc_cefpr0_regnum >= 0 \
- && (regnum) >= (tdep)->ppc_cefpr0_regnum \
- && (regnum) < (tdep)->ppc_cefpr0_regnum + ppc_num_efprs)
+#define IS_CEFP_PSEUDOREG(tdep, regnum) \
+ ((tdep)->ppc_cefpr0_regnum >= 0 && (regnum) >= (tdep)->ppc_cefpr0_regnum \
+ && (regnum) < (tdep)->ppc_cefpr0_regnum + ppc_num_efprs)
/* Holds the current set of options to be passed to the disassembler. */
static char *powerpc_disassembler_options;
@@ -140,14 +140,8 @@ static struct cmd_list_element *showpowerpccmdlist = NULL;
static enum auto_boolean powerpc_soft_float_global = AUTO_BOOLEAN_AUTO;
/* The vector ABI to use. Keep this in sync with powerpc_vector_abi. */
-static const char *const powerpc_vector_strings[] =
-{
- "auto",
- "generic",
- "altivec",
- "spe",
- NULL
-};
+static const char *const powerpc_vector_strings[]
+ = { "auto", "generic", "altivec", "spe", NULL };
/* A variable that can be configured by the user. */
static enum powerpc_vector_abi powerpc_vector_abi_global = POWERPC_VEC_AUTO;
@@ -173,29 +167,28 @@ get_ppc_per_inferior (inferior *inf)
/* To be used by skip_prologue. */
struct rs6000_framedata
- {
- int offset; /* total size of frame --- the distance
+{
+ int offset; /* total size of frame --- the distance
by which we decrement sp to allocate
the frame */
- int saved_gpr; /* smallest # of saved gpr */
- unsigned int gpr_mask; /* Each bit is an individual saved GPR. */
- int saved_fpr; /* smallest # of saved fpr */
- int saved_vr; /* smallest # of saved vr */
- int saved_ev; /* smallest # of saved ev */
- int alloca_reg; /* alloca register number (frame ptr) */
- char frameless; /* true if frameless functions. */
- char nosavedpc; /* true if pc not saved. */
- char used_bl; /* true if link register clobbered */
- int gpr_offset; /* offset of saved gprs from prev sp */
- int fpr_offset; /* offset of saved fprs from prev sp */
- int vr_offset; /* offset of saved vrs from prev sp */
- int ev_offset; /* offset of saved evs from prev sp */
- int lr_offset; /* offset of saved lr */
- int lr_register; /* register of saved lr, if trustworthy */
- int cr_offset; /* offset of saved cr */
- int vrsave_offset; /* offset of saved vrsave register */
- };
-
+ int saved_gpr; /* smallest # of saved gpr */
+ unsigned int gpr_mask; /* Each bit is an individual saved GPR. */
+ int saved_fpr; /* smallest # of saved fpr */
+ int saved_vr; /* smallest # of saved vr */
+ int saved_ev; /* smallest # of saved ev */
+ int alloca_reg; /* alloca register number (frame ptr) */
+ char frameless; /* true if frameless functions. */
+ char nosavedpc; /* true if pc not saved. */
+ char used_bl; /* true if link register clobbered */
+ int gpr_offset; /* offset of saved gprs from prev sp */
+ int fpr_offset; /* offset of saved fprs from prev sp */
+ int vr_offset; /* offset of saved vrs from prev sp */
+ int ev_offset; /* offset of saved evs from prev sp */
+ int lr_offset; /* offset of saved lr */
+ int lr_register; /* register of saved lr, if trustworthy */
+ int cr_offset; /* offset of saved cr */
+ int vrsave_offset; /* offset of saved vrsave register */
+};
/* Is REGNO a VSX register? Return 1 if so, 0 otherwise. */
int
@@ -205,8 +198,8 @@ vsx_register_p (struct gdbarch *gdbarch, int regno)
if (tdep->ppc_vsr0_regnum < 0)
return 0;
else
- return (regno >= tdep->ppc_vsr0_upper_regnum && regno
- <= tdep->ppc_vsr0_upper_regnum + 31);
+ return (regno >= tdep->ppc_vsr0_upper_regnum
+ && regno <= tdep->ppc_vsr0_upper_regnum + 31);
}
/* Is REGNO an AltiVec register? Return 1 if so, 0 otherwise. */
@@ -220,38 +213,33 @@ altivec_register_p (struct gdbarch *gdbarch, int regno)
return (regno >= tdep->ppc_vr0_regnum && regno <= tdep->ppc_vrsave_regnum);
}
-
/* Return true if REGNO is an SPE register, false otherwise. */
int
spe_register_p (struct gdbarch *gdbarch, int regno)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
-
+
/* Is it a reference to EV0 -- EV31, and do we have those? */
if (IS_SPE_PSEUDOREG (tdep, regno))
return 1;
/* Is it a reference to one of the raw upper GPR halves? */
- if (tdep->ppc_ev0_upper_regnum >= 0
- && tdep->ppc_ev0_upper_regnum <= regno
+ if (tdep->ppc_ev0_upper_regnum >= 0 && tdep->ppc_ev0_upper_regnum <= regno
&& regno < tdep->ppc_ev0_upper_regnum + ppc_num_gprs)
return 1;
/* Is it a reference to the 64-bit accumulator, and do we have that? */
- if (tdep->ppc_acc_regnum >= 0
- && tdep->ppc_acc_regnum == regno)
+ if (tdep->ppc_acc_regnum >= 0 && tdep->ppc_acc_regnum == regno)
return 1;
/* Is it a reference to the SPE floating-point status and control register,
and do we have that? */
- if (tdep->ppc_spefscr_regnum >= 0
- && tdep->ppc_spefscr_regnum == regno)
+ if (tdep->ppc_spefscr_regnum >= 0 && tdep->ppc_spefscr_regnum == regno)
return 1;
return 0;
}
-
/* Return non-zero if the architecture described by GDBARCH has
floating-point registers (f0 --- f31 and fpscr). */
int
@@ -259,8 +247,7 @@ ppc_floating_point_unit_p (struct gdbarch *gdbarch)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
- return (tdep->ppc_fp0_regnum >= 0
- && tdep->ppc_fpscr_regnum >= 0);
+ return (tdep->ppc_fp0_regnum >= 0 && tdep->ppc_fpscr_regnum >= 0);
}
/* Return non-zero if the architecture described by GDBARCH has
@@ -270,8 +257,7 @@ ppc_altivec_support_p (struct gdbarch *gdbarch)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
- return (tdep->ppc_vr0_regnum >= 0
- && tdep->ppc_vrsave_regnum >= 0);
+ return (tdep->ppc_vr0_regnum >= 0 && tdep->ppc_vrsave_regnum >= 0);
}
/* Check that TABLE[GDB_REGNO] is not already initialized, and then
@@ -290,7 +276,6 @@ set_sim_regno (int *table, int gdb_regno, int sim_regno)
table[gdb_regno] = sim_regno;
}
-
/* Initialize ARCH->tdep->sim_regno, the table mapping GDB register
numbers to simulator register numbers, based on the values placed
in the ARCH->tdep->ppc_foo_regnum members. */
@@ -301,10 +286,9 @@ init_sim_regno_table (struct gdbarch *arch)
int total_regs = gdbarch_num_regs (arch);
int *sim_regno = GDBARCH_OBSTACK_CALLOC (arch, total_regs, int);
int i;
- static const char *const segment_regs[] = {
- "sr0", "sr1", "sr2", "sr3", "sr4", "sr5", "sr6", "sr7",
- "sr8", "sr9", "sr10", "sr11", "sr12", "sr13", "sr14", "sr15"
- };
+ static const char *const segment_regs[]
+ = { "sr0", "sr1", "sr2", "sr3", "sr4", "sr5", "sr6", "sr7",
+ "sr8", "sr9", "sr10", "sr11", "sr12", "sr13", "sr14", "sr15" };
/* Presume that all registers not explicitly mentioned below are
unavailable from the sim. */
@@ -314,12 +298,11 @@ init_sim_regno_table (struct gdbarch *arch)
/* General-purpose registers. */
for (i = 0; i < ppc_num_gprs; i++)
set_sim_regno (sim_regno, tdep->ppc_gp0_regnum + i, sim_ppc_r0_regnum + i);
-
+
/* Floating-point registers. */
if (tdep->ppc_fp0_regnum >= 0)
for (i = 0; i < ppc_num_fprs; i++)
- set_sim_regno (sim_regno,
- tdep->ppc_fp0_regnum + i,
+ set_sim_regno (sim_regno, tdep->ppc_fp0_regnum + i,
sim_ppc_f0_regnum + i);
if (tdep->ppc_fpscr_regnum >= 0)
set_sim_regno (sim_regno, tdep->ppc_fpscr_regnum, sim_ppc_fpscr_regnum);
@@ -342,14 +325,12 @@ init_sim_regno_table (struct gdbarch *arch)
if (tdep->ppc_vr0_regnum >= 0)
{
for (i = 0; i < ppc_num_vrs; i++)
- set_sim_regno (sim_regno,
- tdep->ppc_vr0_regnum + i,
+ set_sim_regno (sim_regno, tdep->ppc_vr0_regnum + i,
sim_ppc_vr0_regnum + i);
/* FIXME: jimb/2004-07-15: when we have tdep->ppc_vscr_regnum,
we can treat this more like the other cases. */
- set_sim_regno (sim_regno,
- tdep->ppc_vr0_regnum + ppc_num_vrs,
+ set_sim_regno (sim_regno, tdep->ppc_vr0_regnum + ppc_num_vrs,
sim_ppc_vscr_regnum);
}
/* vsave is a special-purpose register, so the code below handles it. */
@@ -357,12 +338,11 @@ init_sim_regno_table (struct gdbarch *arch)
/* SPE APU (E500) registers. */
if (tdep->ppc_ev0_upper_regnum >= 0)
for (i = 0; i < ppc_num_gprs; i++)
- set_sim_regno (sim_regno,
- tdep->ppc_ev0_upper_regnum + i,
+ set_sim_regno (sim_regno, tdep->ppc_ev0_upper_regnum + i,
sim_ppc_rh0_regnum + i);
if (tdep->ppc_acc_regnum >= 0)
set_sim_regno (sim_regno, tdep->ppc_acc_regnum, sim_ppc_acc_regnum);
- /* spefscr is a special-purpose register, so the code below handles it. */
+ /* spefscr is a special-purpose register, so the code below handles it. */
#ifdef WITH_PPC_SIM
/* Now handle all special-purpose registers. Verify that they
@@ -385,7 +365,6 @@ init_sim_regno_table (struct gdbarch *arch)
tdep->sim_regno = sim_regno;
}
-
/* Given a GDB register number REG, return the corresponding SIM
register number. */
static int
@@ -406,16 +385,14 @@ rs6000_register_sim_regno (struct gdbarch *gdbarch, int reg)
return LEGACY_SIM_REGNO_IGNORE;
}
-
-
/* Register set support functions. */
/* REGS + OFFSET contains register REGNUM in a field REGSIZE wide.
Write the register to REGCACHE. */
void
-ppc_supply_reg (struct regcache *regcache, int regnum,
- const gdb_byte *regs, size_t offset, int regsize)
+ppc_supply_reg (struct regcache *regcache, int regnum, const gdb_byte *regs,
+ size_t offset, int regsize)
{
if (regnum != -1 && offset != -1)
{
@@ -435,8 +412,8 @@ ppc_supply_reg (struct regcache *regcache, int regnum,
in a field REGSIZE wide. Zero pad as necessary. */
void
-ppc_collect_reg (const struct regcache *regcache, int regnum,
- gdb_byte *regs, size_t offset, int regsize)
+ppc_collect_reg (const struct regcache *regcache, int regnum, gdb_byte *regs,
+ size_t offset, int regsize)
{
if (regnum != -1 && offset != -1)
{
@@ -459,12 +436,10 @@ ppc_collect_reg (const struct regcache *regcache, int regnum,
regcache->raw_collect (regnum, regs + offset);
}
}
-
+
static int
-ppc_greg_offset (struct gdbarch *gdbarch,
- ppc_gdbarch_tdep *tdep,
- const struct ppc_reg_offsets *offsets,
- int regnum,
+ppc_greg_offset (struct gdbarch *gdbarch, ppc_gdbarch_tdep *tdep,
+ const struct ppc_reg_offsets *offsets, int regnum,
int *regsize)
{
*regsize = offsets->gpr_size;
@@ -500,8 +475,7 @@ ppc_greg_offset (struct gdbarch *gdbarch,
static int
ppc_fpreg_offset (ppc_gdbarch_tdep *tdep,
- const struct ppc_reg_offsets *offsets,
- int regnum)
+ const struct ppc_reg_offsets *offsets, int regnum)
{
if (regnum >= tdep->ppc_fp0_regnum
&& regnum < tdep->ppc_fp0_regnum + ppc_num_fprs)
@@ -534,28 +508,24 @@ ppc_supply_gregset (const struct regset *regset, struct regcache *regcache,
int gpr_size = offsets->gpr_size;
for (i = tdep->ppc_gp0_regnum, offset = offsets->r0_offset;
- i < tdep->ppc_gp0_regnum + ppc_num_gprs;
- i++, offset += gpr_size)
+ i < tdep->ppc_gp0_regnum + ppc_num_gprs; i++, offset += gpr_size)
ppc_supply_reg (regcache, i, (const gdb_byte *) gregs, offset,
gpr_size);
ppc_supply_reg (regcache, gdbarch_pc_regnum (gdbarch),
(const gdb_byte *) gregs, offsets->pc_offset, gpr_size);
- ppc_supply_reg (regcache, tdep->ppc_ps_regnum,
- (const gdb_byte *) gregs, offsets->ps_offset, gpr_size);
- ppc_supply_reg (regcache, tdep->ppc_lr_regnum,
- (const gdb_byte *) gregs, offsets->lr_offset, gpr_size);
- ppc_supply_reg (regcache, tdep->ppc_ctr_regnum,
- (const gdb_byte *) gregs, offsets->ctr_offset, gpr_size);
- ppc_supply_reg (regcache, tdep->ppc_cr_regnum,
- (const gdb_byte *) gregs, offsets->cr_offset,
- offsets->xr_size);
- ppc_supply_reg (regcache, tdep->ppc_xer_regnum,
- (const gdb_byte *) gregs, offsets->xer_offset,
- offsets->xr_size);
- ppc_supply_reg (regcache, tdep->ppc_mq_regnum,
- (const gdb_byte *) gregs, offsets->mq_offset,
- offsets->xr_size);
+ ppc_supply_reg (regcache, tdep->ppc_ps_regnum, (const gdb_byte *) gregs,
+ offsets->ps_offset, gpr_size);
+ ppc_supply_reg (regcache, tdep->ppc_lr_regnum, (const gdb_byte *) gregs,
+ offsets->lr_offset, gpr_size);
+ ppc_supply_reg (regcache, tdep->ppc_ctr_regnum, (const gdb_byte *) gregs,
+ offsets->ctr_offset, gpr_size);
+ ppc_supply_reg (regcache, tdep->ppc_cr_regnum, (const gdb_byte *) gregs,
+ offsets->cr_offset, offsets->xr_size);
+ ppc_supply_reg (regcache, tdep->ppc_xer_regnum, (const gdb_byte *) gregs,
+ offsets->xer_offset, offsets->xr_size);
+ ppc_supply_reg (regcache, tdep->ppc_mq_regnum, (const gdb_byte *) gregs,
+ offsets->mq_offset, offsets->xr_size);
return;
}
@@ -585,8 +555,7 @@ ppc_supply_fpregset (const struct regset *regset, struct regcache *regcache,
int i;
for (i = tdep->ppc_fp0_regnum, offset = offsets->f0_offset;
- i < tdep->ppc_fp0_regnum + ppc_num_fprs;
- i++, offset += 8)
+ i < tdep->ppc_fp0_regnum + ppc_num_fprs; i++, offset += 8)
ppc_supply_reg (regcache, i, (const gdb_byte *) fpregs, offset, 8);
ppc_supply_reg (regcache, tdep->ppc_fpscr_regnum,
@@ -607,8 +576,8 @@ ppc_supply_fpregset (const struct regset *regset, struct regcache *regcache,
void
ppc_collect_gregset (const struct regset *regset,
- const struct regcache *regcache,
- int regnum, void *gregs, size_t len)
+ const struct regcache *regcache, int regnum, void *gregs,
+ size_t len)
{
struct gdbarch *gdbarch = regcache->arch ();
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
@@ -623,27 +592,23 @@ ppc_collect_gregset (const struct regset *regset,
int gpr_size = offsets->gpr_size;
for (i = tdep->ppc_gp0_regnum, offset = offsets->r0_offset;
- i < tdep->ppc_gp0_regnum + ppc_num_gprs;
- i++, offset += gpr_size)
+ i < tdep->ppc_gp0_regnum + ppc_num_gprs; i++, offset += gpr_size)
ppc_collect_reg (regcache, i, (gdb_byte *) gregs, offset, gpr_size);
ppc_collect_reg (regcache, gdbarch_pc_regnum (gdbarch),
(gdb_byte *) gregs, offsets->pc_offset, gpr_size);
- ppc_collect_reg (regcache, tdep->ppc_ps_regnum,
- (gdb_byte *) gregs, offsets->ps_offset, gpr_size);
- ppc_collect_reg (regcache, tdep->ppc_lr_regnum,
- (gdb_byte *) gregs, offsets->lr_offset, gpr_size);
- ppc_collect_reg (regcache, tdep->ppc_ctr_regnum,
- (gdb_byte *) gregs, offsets->ctr_offset, gpr_size);
- ppc_collect_reg (regcache, tdep->ppc_cr_regnum,
- (gdb_byte *) gregs, offsets->cr_offset,
- offsets->xr_size);
- ppc_collect_reg (regcache, tdep->ppc_xer_regnum,
- (gdb_byte *) gregs, offsets->xer_offset,
- offsets->xr_size);
- ppc_collect_reg (regcache, tdep->ppc_mq_regnum,
- (gdb_byte *) gregs, offsets->mq_offset,
- offsets->xr_size);
+ ppc_collect_reg (regcache, tdep->ppc_ps_regnum, (gdb_byte *) gregs,
+ offsets->ps_offset, gpr_size);
+ ppc_collect_reg (regcache, tdep->ppc_lr_regnum, (gdb_byte *) gregs,
+ offsets->lr_offset, gpr_size);
+ ppc_collect_reg (regcache, tdep->ppc_ctr_regnum, (gdb_byte *) gregs,
+ offsets->ctr_offset, gpr_size);
+ ppc_collect_reg (regcache, tdep->ppc_cr_regnum, (gdb_byte *) gregs,
+ offsets->cr_offset, offsets->xr_size);
+ ppc_collect_reg (regcache, tdep->ppc_xer_regnum, (gdb_byte *) gregs,
+ offsets->xer_offset, offsets->xr_size);
+ ppc_collect_reg (regcache, tdep->ppc_mq_regnum, (gdb_byte *) gregs,
+ offsets->mq_offset, offsets->xr_size);
return;
}
@@ -658,8 +623,8 @@ ppc_collect_gregset (const struct regset *regset,
void
ppc_collect_fpregset (const struct regset *regset,
- const struct regcache *regcache,
- int regnum, void *fpregs, size_t len)
+ const struct regcache *regcache, int regnum,
+ void *fpregs, size_t len)
{
struct gdbarch *gdbarch = regcache->arch ();
const struct ppc_reg_offsets *offsets;
@@ -675,13 +640,11 @@ ppc_collect_fpregset (const struct regset *regset,
int i;
for (i = tdep->ppc_fp0_regnum, offset = offsets->f0_offset;
- i < tdep->ppc_fp0_regnum + ppc_num_fprs;
- i++, offset += 8)
+ i < tdep->ppc_fp0_regnum + ppc_num_fprs; i++, offset += 8)
ppc_collect_reg (regcache, i, (gdb_byte *) fpregs, offset, 8);
- ppc_collect_reg (regcache, tdep->ppc_fpscr_regnum,
- (gdb_byte *) fpregs, offsets->fpscr_offset,
- offsets->fpscr_size);
+ ppc_collect_reg (regcache, tdep->ppc_fpscr_regnum, (gdb_byte *) fpregs,
+ offsets->fpscr_offset, offsets->fpscr_size);
return;
}
@@ -705,22 +668,22 @@ insn_changes_sp_or_jumps (unsigned long insn)
in a funtion's epilogue. */
if (opcode == 31 && subcode == 444 && a == 1)
- return 1; /* mr R1,Rn */
+ return 1; /* mr R1,Rn */
if (opcode == 14 && sd == 1)
- return 1; /* addi R1,Rn,simm */
+ return 1; /* addi R1,Rn,simm */
if (opcode == 58 && sd == 1)
- return 1; /* ld R1,ds(Rn) */
+ return 1; /* ld R1,ds(Rn) */
/* Transfers control. */
if (opcode == 18)
- return 1; /* b */
+ return 1; /* b */
if (opcode == 16)
- return 1; /* bc */
+ return 1; /* bc */
if (opcode == 19 && subcode == 16)
- return 1; /* bclr */
+ return 1; /* bclr */
if (opcode == 19 && subcode == 528)
- return 1; /* bcctr */
+ return 1; /* bcctr */
return 0;
}
@@ -758,17 +721,19 @@ rs6000_in_function_epilogue_frame_p (frame_info_ptr curfrm,
return 0;
epilogue_start = pc - PPC_MAX_EPILOGUE_INSTRUCTIONS * PPC_INSN_SIZE;
- if (epilogue_start < func_start) epilogue_start = func_start;
+ if (epilogue_start < func_start)
+ epilogue_start = func_start;
epilogue_end = pc + PPC_MAX_EPILOGUE_INSTRUCTIONS * PPC_INSN_SIZE;
- if (epilogue_end > func_end) epilogue_end = func_end;
+ if (epilogue_end > func_end)
+ epilogue_end = func_end;
/* Scan forward until next 'blr'. */
for (scan_pc = pc; scan_pc < epilogue_end; scan_pc += PPC_INSN_SIZE)
{
if (!safe_frame_unwind_memory (curfrm, scan_pc,
- {insn_buf, PPC_INSN_SIZE}))
+ { insn_buf, PPC_INSN_SIZE }))
return 0;
insn = extract_unsigned_integer (insn_buf, PPC_INSN_SIZE, byte_order);
if (insn == 0x4e800020)
@@ -777,8 +742,8 @@ rs6000_in_function_epilogue_frame_p (frame_info_ptr curfrm,
this function. */
if (insn == 0x4e800420)
{
- CORE_ADDR ctr = get_frame_register_unsigned (curfrm,
- tdep->ppc_ctr_regnum);
+ CORE_ADDR ctr
+ = get_frame_register_unsigned (curfrm, tdep->ppc_ctr_regnum);
if (ctr > func_start && ctr < func_end)
return 0;
else
@@ -790,12 +755,11 @@ rs6000_in_function_epilogue_frame_p (frame_info_ptr curfrm,
/* Scan backward until adjustment to stack pointer (R1). */
- for (scan_pc = pc - PPC_INSN_SIZE;
- scan_pc >= epilogue_start;
+ for (scan_pc = pc - PPC_INSN_SIZE; scan_pc >= epilogue_start;
scan_pc -= PPC_INSN_SIZE)
{
if (!safe_frame_unwind_memory (curfrm, scan_pc,
- {insn_buf, PPC_INSN_SIZE}))
+ { insn_buf, PPC_INSN_SIZE }))
return 0;
insn = extract_unsigned_integer (insn_buf, PPC_INSN_SIZE, byte_order);
if (insn_changes_sp_or_jumps (insn))
@@ -810,13 +774,13 @@ rs6000_in_function_epilogue_frame_p (frame_info_ptr curfrm,
static int
rs6000_stack_frame_destroyed_p (struct gdbarch *gdbarch, CORE_ADDR pc)
{
- return rs6000_in_function_epilogue_frame_p (get_current_frame (),
- gdbarch, pc);
+ return rs6000_in_function_epilogue_frame_p (get_current_frame (), gdbarch,
+ pc);
}
/* Get the ith function argument for the current function. */
static CORE_ADDR
-rs6000_fetch_pointer_argument (frame_info_ptr frame, int argi,
+rs6000_fetch_pointer_argument (frame_info_ptr frame, int argi,
struct type *type)
{
return get_frame_register_unsigned (frame, 3 + argi);
@@ -827,8 +791,8 @@ rs6000_fetch_pointer_argument (frame_info_ptr frame, int argi,
constexpr gdb_byte big_breakpoint[] = { 0x7f, 0xe0, 0x00, 0x08 };
constexpr gdb_byte little_breakpoint[] = { 0x08, 0x00, 0xe0, 0x7f };
-typedef BP_MANIPULATION_ENDIAN (little_breakpoint, big_breakpoint)
- rs6000_breakpoint;
+typedef BP_MANIPULATION_ENDIAN (little_breakpoint,
+ big_breakpoint) rs6000_breakpoint;
/* Instruction masks for displaced stepping. */
#define OP_MASK 0xfc000000
@@ -854,10 +818,10 @@ typedef BP_MANIPULATION_ENDIAN (little_breakpoint, big_breakpoint)
#define STQCX_INSTRUCTION 0x7c00016d
/* Instruction masks for single-stepping of addpcis/lnia. */
-#define ADDPCIS_INSN 0x4c000004
-#define ADDPCIS_INSN_MASK 0xfc00003e
+#define ADDPCIS_INSN 0x4c000004
+#define ADDPCIS_INSN_MASK 0xfc00003e
#define ADDPCIS_TARGET_REGISTER 0x03F00000
-#define ADDPCIS_INSN_REGSHIFT 21
+#define ADDPCIS_INSN_REGSHIFT 21
#define PNOP_MASK 0xfff3ffff
#define PNOP_INSN 0x07000000
@@ -866,18 +830,20 @@ typedef BP_MANIPULATION_ENDIAN (little_breakpoint, big_breakpoint)
/* Check if insn is one of the Load And Reserve instructions used for atomic
sequences. */
-#define IS_LOAD_AND_RESERVE_INSN(insn) ((insn & LOAD_AND_RESERVE_MASK) == LWARX_INSTRUCTION \
- || (insn & LOAD_AND_RESERVE_MASK) == LDARX_INSTRUCTION \
- || (insn & LOAD_AND_RESERVE_MASK) == LBARX_INSTRUCTION \
- || (insn & LOAD_AND_RESERVE_MASK) == LHARX_INSTRUCTION \
- || (insn & LOAD_AND_RESERVE_MASK) == LQARX_INSTRUCTION)
+#define IS_LOAD_AND_RESERVE_INSN(insn) \
+ ((insn & LOAD_AND_RESERVE_MASK) == LWARX_INSTRUCTION \
+ || (insn & LOAD_AND_RESERVE_MASK) == LDARX_INSTRUCTION \
+ || (insn & LOAD_AND_RESERVE_MASK) == LBARX_INSTRUCTION \
+ || (insn & LOAD_AND_RESERVE_MASK) == LHARX_INSTRUCTION \
+ || (insn & LOAD_AND_RESERVE_MASK) == LQARX_INSTRUCTION)
/* Check if insn is one of the Store Conditional instructions used for atomic
sequences. */
-#define IS_STORE_CONDITIONAL_INSN(insn) ((insn & STORE_CONDITIONAL_MASK) == STWCX_INSTRUCTION \
- || (insn & STORE_CONDITIONAL_MASK) == STDCX_INSTRUCTION \
- || (insn & STORE_CONDITIONAL_MASK) == STBCX_INSTRUCTION \
- || (insn & STORE_CONDITIONAL_MASK) == STHCX_INSTRUCTION \
- || (insn & STORE_CONDITIONAL_MASK) == STQCX_INSTRUCTION)
+#define IS_STORE_CONDITIONAL_INSN(insn) \
+ ((insn & STORE_CONDITIONAL_MASK) == STWCX_INSTRUCTION \
+ || (insn & STORE_CONDITIONAL_MASK) == STDCX_INSTRUCTION \
+ || (insn & STORE_CONDITIONAL_MASK) == STBCX_INSTRUCTION \
+ || (insn & STORE_CONDITIONAL_MASK) == STHCX_INSTRUCTION \
+ || (insn & STORE_CONDITIONAL_MASK) == STQCX_INSTRUCTION)
typedef buf_displaced_step_copy_insn_closure
ppc_displaced_step_copy_insn_closure;
@@ -885,19 +851,18 @@ typedef buf_displaced_step_copy_insn_closure
/* We can't displaced step atomic sequences. */
static displaced_step_copy_insn_closure_up
-ppc_displaced_step_copy_insn (struct gdbarch *gdbarch,
- CORE_ADDR from, CORE_ADDR to,
- struct regcache *regs)
+ppc_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from,
+ CORE_ADDR to, struct regcache *regs)
{
size_t len = gdbarch_max_insn_length (gdbarch);
- std::unique_ptr<ppc_displaced_step_copy_insn_closure> closure
- (new ppc_displaced_step_copy_insn_closure (len));
+ std::unique_ptr<ppc_displaced_step_copy_insn_closure> closure (
+ new ppc_displaced_step_copy_insn_closure (len));
gdb_byte *buf = closure->buf.data ();
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int insn;
- len = target_read (current_inferior()->top_target(), TARGET_OBJECT_MEMORY, NULL,
- buf, from, len);
+ len = target_read (current_inferior ()->top_target (), TARGET_OBJECT_MEMORY,
+ NULL, buf, from, len);
if ((ssize_t) len < PPC_INSN_SIZE)
memory_error (TARGET_XFER_E_IO, from);
@@ -910,11 +875,11 @@ ppc_displaced_step_copy_insn (struct gdbarch *gdbarch,
into a displaced location, so decline to displace those instructions. */
if ((insn & OP_MASK) == 1 << 26)
{
- if (((insn & PNOP_MASK) != PNOP_INSN)
- && ((insn & R_MASK) != R_ZERO))
+ if (((insn & PNOP_MASK) != PNOP_INSN) && ((insn & R_MASK) != R_ZERO))
{
- displaced_debug_printf ("Not displacing prefixed instruction %08x at %s",
- insn, paddress (gdbarch, from));
+ displaced_debug_printf (
+ "Not displacing prefixed instruction %08x at %s", insn,
+ paddress (gdbarch, from));
return NULL;
}
}
@@ -937,8 +902,8 @@ ppc_displaced_step_copy_insn (struct gdbarch *gdbarch,
write_memory (to, buf, len);
- displaced_debug_printf ("copy %s->%s: %s",
- paddress (gdbarch, from), paddress (gdbarch, to),
+ displaced_debug_printf ("copy %s->%s: %s", paddress (gdbarch, from),
+ paddress (gdbarch, to),
displaced_step_dump_bytes (buf, len).c_str ());
/* This is a work around for a problem with g++ 4.8. */
@@ -950,15 +915,14 @@ ppc_displaced_step_copy_insn (struct gdbarch *gdbarch,
static void
ppc_displaced_step_fixup (struct gdbarch *gdbarch,
struct displaced_step_copy_insn_closure *closure_,
- CORE_ADDR from, CORE_ADDR to,
- struct regcache *regs)
+ CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
/* Our closure is a copy of the instruction. */
ppc_displaced_step_copy_insn_closure *closure
= (ppc_displaced_step_copy_insn_closure *) closure_;
- ULONGEST insn = extract_unsigned_integer (closure->buf.data (),
- PPC_INSN_SIZE, byte_order);
+ ULONGEST insn = extract_unsigned_integer (closure->buf.data (),
+ PPC_INSN_SIZE, byte_order);
ULONGEST opcode;
/* Offset for non PC-relative instructions. */
LONGEST offset;
@@ -971,8 +935,8 @@ ppc_displaced_step_fixup (struct gdbarch *gdbarch,
else
offset = PPC_INSN_SIZE;
- displaced_debug_printf ("(ppc) fixup (%s, %s)",
- paddress (gdbarch, from), paddress (gdbarch, to));
+ displaced_debug_printf ("(ppc) fixup (%s, %s)", paddress (gdbarch, from),
+ paddress (gdbarch, to));
/* Handle the addpcis/lnia instruction. */
if ((insn & ADDPCIS_INSN_MASK) == ADDPCIS_INSN)
@@ -984,16 +948,16 @@ ppc_displaced_step_fixup (struct gdbarch *gdbarch,
/* Identify the target register that was updated by the instruction. */
int regnum = (insn & ADDPCIS_TARGET_REGISTER) >> ADDPCIS_INSN_REGSHIFT;
/* Read and update the target value. */
- regcache_cooked_read_unsigned (regs, regnum , &current_val);
- displaced_debug_printf ("addpcis target regnum %d was %s now %s",
- regnum, paddress (gdbarch, current_val),
- paddress (gdbarch, current_val
- + displaced_offset));
+ regcache_cooked_read_unsigned (regs, regnum, &current_val);
+ displaced_debug_printf ("addpcis target regnum %d was %s now %s", regnum,
+ paddress (gdbarch, current_val),
+ paddress (gdbarch,
+ current_val + displaced_offset));
regcache_cooked_write_unsigned (regs, regnum,
- current_val + displaced_offset);
+ current_val + displaced_offset);
/* point the PC back at the non-displaced instruction. */
regcache_cooked_write_unsigned (regs, gdbarch_pc_regnum (gdbarch),
- from + offset);
+ from + offset);
}
/* Handle PC-relative branch instructions. */
else if (opcode == B_INSN || opcode == BC_INSN || opcode == BXL_INSN)
@@ -1004,7 +968,7 @@ ppc_displaced_step_fixup (struct gdbarch *gdbarch,
in a displaced location. Calculate the offset to be applied to the
original PC value before the displaced stepping. */
regcache_cooked_read_unsigned (regs, gdbarch_pc_regnum (gdbarch),
- &current_pc);
+ &current_pc);
offset = current_pc - to;
if (opcode != BXL_INSN)
@@ -1043,12 +1007,10 @@ ppc_displaced_step_fixup (struct gdbarch *gdbarch,
{
/* Link register needs to be set to the next instruction's PC. */
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
- regcache_cooked_write_unsigned (regs,
- tdep->ppc_lr_regnum,
+ regcache_cooked_write_unsigned (regs, tdep->ppc_lr_regnum,
from + PPC_INSN_SIZE);
displaced_debug_printf ("(ppc) adjusted LR to %s",
paddress (gdbarch, from + PPC_INSN_SIZE));
-
}
}
/* Check for breakpoints in the inferior. If we've found one, place the PC
@@ -1067,8 +1029,8 @@ ppc_displaced_step_fixup (struct gdbarch *gdbarch,
/* Implementation of gdbarch_displaced_step_prepare. */
static displaced_step_prepare_status
-ppc_displaced_step_prepare (gdbarch *arch, thread_info *thread,
- CORE_ADDR &displaced_pc)
+ppc_displaced_step_prepare (gdbarch *arch, thread_info *thread,
+ CORE_ADDR &displaced_pc)
{
ppc_inferior_data *per_inferior = get_ppc_per_inferior (thread->inf);
@@ -1087,8 +1049,7 @@ ppc_displaced_step_prepare (gdbarch *arch, thread_info *thread,
/* Implementation of gdbarch_displaced_step_finish. */
static displaced_step_finish_status
-ppc_displaced_step_finish (gdbarch *arch, thread_info *thread,
- gdb_signal sig)
+ppc_displaced_step_finish (gdbarch *arch, thread_info *thread, gdb_signal sig)
{
ppc_inferior_data *per_inferior = get_ppc_per_inferior (thread->inf);
@@ -1104,8 +1065,7 @@ ppc_displaced_step_restore_all_in_ptid (inferior *parent_inf, ptid_t ptid)
{
ppc_inferior_data *per_inferior = ppc_inferior_data_key.get (parent_inf);
- if (per_inferior == nullptr
- || !per_inferior->disp_step_buf.has_value ())
+ if (per_inferior == nullptr || !per_inferior->disp_step_buf.has_value ())
return;
per_inferior->disp_step_buf->restore_in_ptid (ptid);
@@ -1129,13 +1089,13 @@ ppc_deal_with_atomic_sequence (struct regcache *regcache)
struct gdbarch *gdbarch = regcache->arch ();
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR pc = regcache_read_pc (regcache);
- CORE_ADDR breaks[2] = {CORE_ADDR_MAX, CORE_ADDR_MAX};
+ CORE_ADDR breaks[2] = { CORE_ADDR_MAX, CORE_ADDR_MAX };
CORE_ADDR loc = pc;
CORE_ADDR closing_insn; /* Instruction that closes the atomic sequence. */
int insn = read_memory_integer (loc, PPC_INSN_SIZE, byte_order);
int insn_count;
int index;
- int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
+ int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
const int atomic_sequence_length = 16; /* Instruction sequence length. */
int bc_insn_count = 0; /* Conditional branch instruction count. */
@@ -1164,7 +1124,7 @@ ppc_deal_with_atomic_sequence (struct regcache *regcache)
if (bc_insn_count >= 1)
return {}; /* More than one conditional branch found, fallback
to the standard single-step code. */
-
+
if (absolute)
breaks[1] = immediate;
else
@@ -1204,11 +1164,9 @@ ppc_deal_with_atomic_sequence (struct regcache *regcache)
return next_pcs;
}
-
-#define SIGNED_SHORT(x) \
- ((sizeof (short) == 2) \
- ? ((int)(short)(x)) \
- : ((int)((((x) & 0xffff) ^ 0x8000) - 0x8000)))
+#define SIGNED_SHORT(x) \
+ ((sizeof (short) == 2) ? ((int) (short) (x)) \
+ : ((int) ((((x) &0xffff) ^ 0x8000) - 0x8000)))
#define GET_SRC_REG(x) (((x) >> 21) & 0x1f)
@@ -1225,7 +1183,7 @@ static int
store_param_on_stack_p (unsigned long op, int framep, int *r0_contains_arg)
{
/* Move parameters from argument registers to temporary register. */
- if ((op & 0xfc0007fe) == 0x7c000378) /* mr(.) Rx,Ry */
+ if ((op & 0xfc0007fe) == 0x7c000378) /* mr(.) Rx,Ry */
{
/* Rx must be scratch register r0. */
const int rx_regno = (op >> 16) & 31;
@@ -1243,21 +1201,21 @@ store_param_on_stack_p (unsigned long op, int framep, int *r0_contains_arg)
/* Save a General Purpose Register on stack. */
- if ((op & 0xfc1f0003) == 0xf8010000 || /* std Rx,NUM(r1) */
- (op & 0xfc1f0000) == 0xd8010000) /* stfd Rx,NUM(r1) */
+ if ((op & 0xfc1f0003) == 0xf8010000 || /* std Rx,NUM(r1) */
+ (op & 0xfc1f0000) == 0xd8010000) /* stfd Rx,NUM(r1) */
{
/* Rx: Only r3 - r10 are used for parameter passing. */
const int rx_regno = GET_SRC_REG (op);
return (rx_regno >= 3 && rx_regno <= 10);
}
-
+
/* Save a General Purpose Register on stack via the Frame Pointer. */
- if (framep &&
- ((op & 0xfc1f0000) == 0x901f0000 || /* st rx,NUM(r31) */
- (op & 0xfc1f0000) == 0x981f0000 || /* stb Rx,NUM(r31) */
- (op & 0xfc1f0000) == 0xd81f0000)) /* stfd Rx,NUM(r31) */
+ if (framep
+ && ((op & 0xfc1f0000) == 0x901f0000 || /* st rx,NUM(r31) */
+ (op & 0xfc1f0000) == 0x981f0000 || /* stb Rx,NUM(r31) */
+ (op & 0xfc1f0000) == 0xd81f0000)) /* stfd Rx,NUM(r31) */
{
/* Rx: Usually, only r3 - r10 are used for parameter passing.
However, the compiler sometimes uses r0 to hold an argument. */
@@ -1267,7 +1225,7 @@ store_param_on_stack_p (unsigned long op, int framep, int *r0_contains_arg)
|| (rx_regno == 0 && *r0_contains_arg));
}
- if ((op & 0xfc1f0000) == 0xfc010000) /* frsp, fp?,NUM(r1) */
+ if ((op & 0xfc1f0000) == 0xfc010000) /* frsp, fp?,NUM(r1) */
{
/* Only f2 - f8 are used for parameter passing. */
const int src_regno = GET_SRC_REG (op);
@@ -1275,7 +1233,7 @@ store_param_on_stack_p (unsigned long op, int framep, int *r0_contains_arg)
return (src_regno >= 2 && src_regno <= 8);
}
- if (framep && ((op & 0xfc1f0000) == 0xfc1f0000)) /* frsp, fp?,NUM(r31) */
+ if (framep && ((op & 0xfc1f0000) == 0xfc1f0000)) /* frsp, fp?,NUM(r31) */
{
/* Only f2 - f8 are used for parameter passing. */
const int src_regno = GET_SRC_REG (op);
@@ -1325,8 +1283,8 @@ bl_to_blrl_insn_p (CORE_ADDR pc, int insn, enum bfd_endian byte_order)
Return false otherwise.
*/
static bool
-store_insn_p (unsigned long op, unsigned long rs,
- unsigned long ra, bool with_update)
+store_insn_p (unsigned long op, unsigned long rs, unsigned long ra,
+ bool with_update)
{
rs = rs << 21;
ra = ra << 16;
@@ -1382,7 +1340,7 @@ rs6000_fetch_instruction (struct gdbarch *gdbarch, const CORE_ADDR pc)
of each function prologue when compiling with -fstack-check. If one of
such sequences starts at START_PC, then return the address of the
instruction immediately past this sequence. Otherwise, return START_PC. */
-
+
static CORE_ADDR
rs6000_skip_stack_check (struct gdbarch *gdbarch, const CORE_ADDR start_pc)
{
@@ -1392,7 +1350,7 @@ rs6000_skip_stack_check (struct gdbarch *gdbarch, const CORE_ADDR start_pc)
/* First possible sequence: A small number of probes.
stw 0, -<some immediate>(1)
[repeat this instruction any (small) number of times]. */
-
+
if ((op & 0xffff0000) == 0x90010000)
{
while ((op & 0xffff0000) == 0x90010000)
@@ -1522,7 +1480,7 @@ rs6000_skip_stack_check (struct gdbarch *gdbarch, const CORE_ADDR start_pc)
op = rs6000_fetch_instruction (gdbarch, pc);
if ((op & 0xffff0000) != 0x3d800000)
break;
-
+
/* lwz 12,<some immediate>(12) */
pc = pc + 4;
op = rs6000_fetch_instruction (gdbarch, pc);
@@ -1628,7 +1586,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
op = extract_unsigned_integer (buf, 4, byte_order);
if ((op & 0xfc1fffff) == 0x7c0802a6)
- { /* mflr Rx */
+ { /* mflr Rx */
/* Since shared library / PIC code, which needs to get its
address at runtime, can appear to save more than one link
register vis:
@@ -1653,15 +1611,14 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
continue;
}
else if ((op & 0xfc1fffff) == 0x7c000026)
- { /* mfcr Rx */
+ { /* mfcr Rx */
cr_reg = (op & 0x03e00000) >> 21;
if (cr_reg == 0)
r0_contains_arg = 0;
continue;
-
}
else if ((op & 0xfc1f0000) == 0xd8010000)
- { /* stfd Rx,NUM(r1) */
+ { /* stfd Rx,NUM(r1) */
reg = GET_SRC_REG (op);
if (fdata->saved_fpr == -1 || fdata->saved_fpr > reg)
{
@@ -1669,14 +1626,13 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
fdata->fpr_offset = SIGNED_SHORT (op) + offset;
}
continue;
-
}
- else if (((op & 0xfc1f0000) == 0xbc010000) || /* stm Rx, NUM(r1) */
- (((op & 0xfc1f0000) == 0x90010000 || /* st rx,NUM(r1) */
- (op & 0xfc1f0003) == 0xf8010000) && /* std rx,NUM(r1) */
- (op & 0x03e00000) >= 0x01a00000)) /* rx >= r13 */
+ else if (((op & 0xfc1f0000) == 0xbc010000) || /* stm Rx, NUM(r1) */
+ (((op & 0xfc1f0000) == 0x90010000 || /* st rx,NUM(r1) */
+ (op & 0xfc1f0003) == 0xf8010000)
+ && /* std rx,NUM(r1) */
+ (op & 0x03e00000) >= 0x01a00000)) /* rx >= r13 */
{
-
reg = GET_SRC_REG (op);
if ((op & 0xfc1f0000) == 0xbc010000)
fdata->gpr_mask |= ~((1U << reg) - 1);
@@ -1690,7 +1646,6 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
fdata->gpr_offset = SIGNED_SHORT (op) + offset;
}
continue;
-
}
else if ((op & 0xffff0000) == 0x3c4c0000
|| (op & 0xffff0000) == 0x3c400000
@@ -1712,30 +1667,27 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
instructions. */
prev_insn_was_prologue_insn = 0;
continue;
-
}
else if ((op & 0xffff0000) == 0x3c000000)
- { /* addis 0,0,NUM, used for >= 32k frames */
+ { /* addis 0,0,NUM, used for >= 32k frames */
fdata->offset = (op & 0x0000ffff) << 16;
fdata->frameless = 0;
r0_contains_arg = 0;
continue;
-
}
else if ((op & 0xffff0000) == 0x60000000)
- { /* ori 0,0,NUM, 2nd half of >= 32k frames */
+ { /* ori 0,0,NUM, 2nd half of >= 32k frames */
fdata->offset |= (op & 0x0000ffff);
fdata->frameless = 0;
r0_contains_arg = 0;
continue;
-
}
- else if (lr_reg >= 0 &&
- ((store_insn_p (op, lr_reg, 1, true)) ||
- (framep &&
- (store_insn_p (op, lr_reg,
- fdata->alloca_reg - tdep->ppc_gp0_regnum,
- false)))))
+ else if (lr_reg >= 0
+ && ((store_insn_p (op, lr_reg, 1, true))
+ || (framep
+ && (store_insn_p (
+ op, lr_reg, fdata->alloca_reg - tdep->ppc_gp0_regnum,
+ false)))))
{
if (store_insn_p (op, lr_reg, 1, true))
fdata->lr_offset = offset;
@@ -1746,30 +1698,27 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* Invalidate lr_reg, but don't set it to -1.
That would mean that it had never been set. */
lr_reg = -2;
- if ((op & 0xfc000003) == 0xf8000000 || /* std */
- (op & 0xfc000000) == 0x90000000) /* stw */
+ if ((op & 0xfc000003) == 0xf8000000 || /* std */
+ (op & 0xfc000000) == 0x90000000) /* stw */
{
/* Does not update r1, so add displacement to lr_offset. */
fdata->lr_offset += SIGNED_SHORT (op);
}
continue;
-
}
- else if (cr_reg >= 0 &&
- (store_insn_p (op, cr_reg, 1, true)))
+ else if (cr_reg >= 0 && (store_insn_p (op, cr_reg, 1, true)))
{
fdata->cr_offset = offset;
/* Invalidate cr_reg, but don't set it to -1.
That would mean that it had never been set. */
cr_reg = -2;
- if ((op & 0xfc000003) == 0xf8000000 ||
- (op & 0xfc000000) == 0x90000000)
+ if ((op & 0xfc000003) == 0xf8000000
+ || (op & 0xfc000000) == 0x90000000)
{
/* Does not update r1, so add displacement to cr_offset. */
fdata->cr_offset += SIGNED_SHORT (op);
}
continue;
-
}
else if ((op & 0xfe80ffff) == 0x42800005 && lr_reg != -1)
{
@@ -1779,26 +1728,23 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
continue;
}
else if (op == 0x48000005)
- { /* bl .+4 used in
+ { /* bl .+4 used in
-mrelocatable */
fdata->used_bl = 1;
continue;
-
}
else if (op == 0x48000004)
- { /* b .+4 (xlc) */
+ { /* b .+4 (xlc) */
break;
-
}
- else if ((op & 0xffff0000) == 0x3fc00000 || /* addis 30,0,foo@ha, used
+ else if ((op & 0xffff0000) == 0x3fc00000 || /* addis 30,0,foo@ha, used
in V.4 -mminimal-toc */
(op & 0xffff0000) == 0x3bde0000)
- { /* addi 30,30,foo@l */
+ { /* addi 30,30,foo@l */
continue;
-
}
else if ((op & 0xfc000001) == 0x48000001)
- { /* bl foo,
+ { /* bl foo,
to save fprs??? */
fdata->frameless = 0;
@@ -1833,8 +1779,8 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
and nothing else). If the next is not a nop, this branch
was part of the function prologue. */
- if (op == 0x4def7b82 || op == 0) /* crorc 15, 15, 15 */
- break; /* Don't skip over
+ if (op == 0x4def7b82 || op == 0) /* crorc 15, 15, 15 */
+ break; /* Don't skip over
this branch. */
fdata->used_bl = 1;
@@ -1842,28 +1788,28 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
}
/* update stack pointer */
else if ((op & 0xfc1f0000) == 0x94010000)
- { /* stu rX,NUM(r1) || stwu rX,NUM(r1) */
+ { /* stu rX,NUM(r1) || stwu rX,NUM(r1) */
fdata->frameless = 0;
fdata->offset = SIGNED_SHORT (op);
offset = fdata->offset;
continue;
}
else if ((op & 0xfc1f07fa) == 0x7c01016a)
- { /* stwux rX,r1,rY || stdux rX,r1,rY */
+ { /* stwux rX,r1,rY || stdux rX,r1,rY */
/* No way to figure out what r1 is going to be. */
fdata->frameless = 0;
offset = fdata->offset;
continue;
}
else if ((op & 0xfc1f0003) == 0xf8010001)
- { /* stdu rX,NUM(r1) */
+ { /* stdu rX,NUM(r1) */
fdata->frameless = 0;
fdata->offset = SIGNED_SHORT (op & ~3UL);
offset = fdata->offset;
continue;
}
else if ((op & 0xffff0000) == 0x38210000)
- { /* addi r1,r1,SIMM */
+ { /* addi r1,r1,SIMM */
fdata->frameless = 0;
fdata->offset += SIGNED_SHORT (op);
offset = fdata->offset;
@@ -1871,10 +1817,9 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
}
/* Load up minimal toc pointer. Do not treat an epilogue restore
of r31 as a minimal TOC load. */
- else if (((op >> 22) == 0x20f || /* l r31,... or l r30,... */
- (op >> 22) == 0x3af) /* ld r31,... or ld r30,... */
- && !framep
- && !minimal_toc_loaded)
+ else if (((op >> 22) == 0x20f || /* l r31,... or l r30,... */
+ (op >> 22) == 0x3af) /* ld r31,... or ld r30,... */
+ && !framep && !minimal_toc_loaded)
{
minimal_toc_loaded = 1;
continue;
@@ -1882,11 +1827,11 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* move parameters from argument registers to local variable
registers */
}
- else if ((op & 0xfc0007fe) == 0x7c000378 && /* mr(.) Rx,Ry */
- (((op >> 21) & 31) >= 3) && /* R3 >= Ry >= R10 */
- (((op >> 21) & 31) <= 10) &&
- ((long) ((op >> 16) & 31)
- >= fdata->saved_gpr)) /* Rx: local var reg */
+ else if ((op & 0xfc0007fe) == 0x7c000378 && /* mr(.) Rx,Ry */
+ (((op >> 21) & 31) >= 3) && /* R3 >= Ry >= R10 */
+ (((op >> 21) & 31) <= 10)
+ && ((long) ((op >> 16) & 31)
+ >= fdata->saved_gpr)) /* Rx: local var reg */
{
continue;
@@ -1899,7 +1844,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* Set up frame pointer */
}
- else if (op == 0x603d0000) /* oril r29, r1, 0x0 */
+ else if (op == 0x603d0000) /* oril r29, r1, 0x0 */
{
fdata->frameless = 0;
framep = 1;
@@ -1909,9 +1854,9 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* Another way to set up the frame pointer. */
}
- else if (op == 0x603f0000 /* oril r31, r1, 0x0 */
+ else if (op == 0x603f0000 /* oril r31, r1, 0x0 */
|| op == 0x7c3f0b78)
- { /* mr r31, r1 */
+ { /* mr r31, r1 */
fdata->frameless = 0;
framep = 1;
fdata->alloca_reg = (tdep->ppc_gp0_regnum + 31);
@@ -1921,11 +1866,11 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* Another way to set up the frame pointer. */
}
else if ((op & 0xfc1fffff) == 0x38010000)
- { /* addi rX, r1, 0x0 */
+ { /* addi rX, r1, 0x0 */
fdata->frameless = 0;
framep = 1;
- fdata->alloca_reg = (tdep->ppc_gp0_regnum
- + ((op & ~0x38010000) >> 21));
+ fdata->alloca_reg
+ = (tdep->ppc_gp0_regnum + ((op & ~0x38010000) >> 21));
alloca_reg_offset = offset;
continue;
}
@@ -1937,12 +1882,12 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
and mtspr SPR256, Rn. */
/* mfspr Rn SPR256 == 011111 nnnnn 0000001000 01010100110
mtspr SPR256 Rn == 011111 nnnnn 0000001000 01110100110 */
- else if ((op & 0xfc1fffff) == 0x7c0042a6) /* mfvrsave Rn */
+ else if ((op & 0xfc1fffff) == 0x7c0042a6) /* mfvrsave Rn */
{
vrsave_reg = GET_SRC_REG (op);
continue;
}
- else if ((op & 0xfc1fffff) == 0x7c0043a6) /* mtvrsave Rn */
+ else if ((op & 0xfc1fffff) == 0x7c0043a6) /* mtvrsave Rn */
{
continue;
}
@@ -1950,7 +1895,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
rS is the register where vrsave was stored in a previous
instruction. */
/* 100100 sssss 00001 dddddddd dddddddd */
- else if ((op & 0xfc1f0000) == 0x90010000) /* stw rS, d(r1) */
+ else if ((op & 0xfc1f0000) == 0x90010000) /* stw rS, d(r1) */
{
if (vrsave_reg == GET_SRC_REG (op))
{
@@ -1961,8 +1906,8 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
}
/* Compute the new value of vrsave, by modifying the register
where vrsave was saved to. */
- else if (((op & 0xfc000000) == 0x64000000) /* oris Ra, Rs, UIMM */
- || ((op & 0xfc000000) == 0x60000000))/* ori Ra, Rs, UIMM */
+ else if (((op & 0xfc000000) == 0x64000000) /* oris Ra, Rs, UIMM */
+ || ((op & 0xfc000000) == 0x60000000)) /* ori Ra, Rs, UIMM */
{
continue;
}
@@ -1971,8 +1916,8 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
stack. */
/* 001110 00000 00000 iiii iiii iiii iiii */
/* 001110 01110 00000 iiii iiii iiii iiii */
- else if ((op & 0xffff0000) == 0x38000000 /* li r0, SIMM */
- || (op & 0xffff0000) == 0x39c00000) /* li r14, SIMM */
+ else if ((op & 0xffff0000) == 0x38000000 /* li r0, SIMM */
+ || (op & 0xffff0000) == 0x39c00000) /* li r14, SIMM */
{
if ((op & 0xffff0000) == 0x38000000)
r0_contains_arg = 0;
@@ -1984,9 +1929,9 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
record this insn as part of the prologue yet. */
prev_insn_was_prologue_insn = 0;
}
- /* Store vector register S at (r31+r0) aligned to 16 bytes. */
+ /* Store vector register S at (r31+r0) aligned to 16 bytes. */
/* 011111 sssss 11111 00000 00111001110 */
- else if ((op & 0xfc1fffff) == 0x7c1f01ce) /* stvx Vs, R31, R0 */
+ else if ((op & 0xfc1fffff) == 0x7c1f01ce) /* stvx Vs, R31, R0 */
{
if (pc == (li_found_pc + 4))
{
@@ -2011,9 +1956,9 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
Any register less than r13 is volatile, so we don't care. */
/* 000100 sssss 11111 iiiii 01100100001 */
else if (arch_info->mach == bfd_mach_ppc_e500
- && (op & 0xfc1f07ff) == 0x101f0321) /* evstdd Rs,uimm(R31) */
+ && (op & 0xfc1f07ff) == 0x101f0321) /* evstdd Rs,uimm(R31) */
{
- if ((op & 0x03e00000) >= 0x01a00000) /* Rs >= r13 */
+ if ((op & 0x03e00000) >= 0x01a00000) /* Rs >= r13 */
{
unsigned int imm;
ev_reg = GET_SRC_REG (op);
@@ -2033,7 +1978,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* Store gen register rS at (r1+rB). */
/* 000100 sssss 00001 bbbbb 01100100000 */
else if (arch_info->mach == bfd_mach_ppc_e500
- && (op & 0xffe007ff) == 0x13e00320) /* evstddx RS,R1,Rb */
+ && (op & 0xffe007ff) == 0x13e00320) /* evstddx RS,R1,Rb */
{
if (pc == (li_found_pc + 4))
{
@@ -2056,7 +2001,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
/* Store gen register r31 at (rA+uimm). */
/* 000100 11111 aaaaa iiiii 01100100001 */
else if (arch_info->mach == bfd_mach_ppc_e500
- && (op & 0xffe007ff) == 0x13e00321) /* evstdd R31,Ra,UIMM */
+ && (op & 0xffe007ff) == 0x13e00321) /* evstdd R31,Ra,UIMM */
{
/* Wwe know that the source register is 31 already, but
it can't hurt to compute it. */
@@ -2077,7 +2022,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
Store param on stack when offset from SP bigger than 4 bytes. */
/* 000100 sssss 11111 00000 01100100000 */
else if (arch_info->mach == bfd_mach_ppc_e500
- && (op & 0xfc1fffff) == 0x101f0320) /* evstddx Rs,R31,R0 */
+ && (op & 0xfc1fffff) == 0x101f0320) /* evstddx Rs,R31,R0 */
{
if (pc == (li_found_pc + 4))
{
@@ -2119,8 +2064,8 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
break;
}
- if (op == 0x4e800020 /* blr */
- || op == 0x4e800420) /* bctr */
+ if (op == 0x4e800020 /* blr */
+ || op == 0x4e800420) /* bctr */
/* Do not scan past epilogue in frameless functions or
trampolines. */
break;
@@ -2207,7 +2152,7 @@ rs6000_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
that bound, then use an arbitrary large number as the upper bound. */
limit_pc = skip_prologue_using_sal (gdbarch, pc);
if (limit_pc == 0)
- limit_pc = pc + 100; /* Magic. */
+ limit_pc = pc + 100; /* Magic. */
/* Do not allow limit_pc to be past the function end, if we know
where that end is... */
@@ -2246,8 +2191,7 @@ rs6000_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
/* We check for ___eabi (three leading underscores) in addition
to __eabi in case the GCC option "-fleading-underscore" was
used to compile the program. */
- if (s.minsym != NULL
- && s.minsym->linkage_name () != NULL
+ if (s.minsym != NULL && s.minsym->linkage_name () != NULL
&& (strcmp (s.minsym->linkage_name (), "__eabi") == 0
|| strcmp (s.minsym->linkage_name (), "___eabi") == 0))
pc += 4;
@@ -2286,8 +2230,8 @@ rs6000_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
@FIX code. */
static int
-rs6000_in_solib_return_trampoline (struct gdbarch *gdbarch,
- CORE_ADDR pc, const char *name)
+rs6000_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc,
+ const char *name)
{
return name && startswith (name, "@FIX");
}
@@ -2317,17 +2261,14 @@ rs6000_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc)
CORE_ADDR solib_target_pc;
struct bound_minimal_symbol msymbol;
- static unsigned trampoline_code[] =
- {
- 0x800b0000, /* l r0,0x0(r11) */
- 0x90410014, /* st r2,0x14(r1) */
- 0x7c0903a6, /* mtctr r0 */
- 0x804b0004, /* l r2,0x4(r11) */
- 0x816b0008, /* l r11,0x8(r11) */
- 0x4e800420, /* bctr */
- 0x4e800020, /* br */
- 0
- };
+ static unsigned trampoline_code[] = { 0x800b0000, /* l r0,0x0(r11) */
+ 0x90410014, /* st r2,0x14(r1) */
+ 0x7c0903a6, /* mtctr r0 */
+ 0x804b0004, /* l r2,0x4(r11) */
+ 0x816b0008, /* l r11,0x8(r11) */
+ 0x4e800420, /* bctr */
+ 0x4e800020, /* br */
+ 0 };
/* Check for bigtoc fixup code. */
msymbol = lookup_minimal_symbol_by_pc (pc);
@@ -2341,7 +2282,7 @@ rs6000_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc)
{
/* Extract bits 6-29 as a signed 24-bit relative word address and
add it to the containing PC. */
- rel = ((int)(op << 6) >> 6);
+ rel = ((int) (op << 6) >> 6);
return pc + 8 + rel;
}
}
@@ -2357,7 +2298,7 @@ rs6000_skip_trampoline_code (frame_info_ptr frame, CORE_ADDR pc)
if (op != trampoline_code[ii])
return 0;
}
- ii = get_frame_register_unsigned (frame, 11); /* r11 holds destination
+ ii = get_frame_register_unsigned (frame, 11); /* r11 holds destination
addr. */
pc = read_memory_unsigned_integer (ii, tdep->wordsize, byte_order);
return pc;
@@ -2388,8 +2329,8 @@ rs6000_builtin_type_vec64 (struct gdbarch *gdbarch)
struct type *t;
- t = arch_composite_type (gdbarch,
- "__ppc_builtin_type_vec64", TYPE_CODE_UNION);
+ t = arch_composite_type (gdbarch, "__ppc_builtin_type_vec64",
+ TYPE_CODE_UNION);
append_composite_type_field (t, "uint64", bt->builtin_int64);
append_composite_type_field (t, "v2_float",
init_vector_type (bt->builtin_float, 2));
@@ -2438,8 +2379,8 @@ rs6000_builtin_type_vec128 (struct gdbarch *gdbarch)
struct type *t;
- t = arch_composite_type (gdbarch,
- "__ppc_builtin_type_vec128", TYPE_CODE_UNION);
+ t = arch_composite_type (gdbarch, "__ppc_builtin_type_vec128",
+ TYPE_CODE_UNION);
append_composite_type_field (t, "float128", t_float128);
append_composite_type_field (t, "uint128", bt->builtin_uint128);
append_composite_type_field (t, "v2_double",
@@ -2472,14 +2413,12 @@ rs6000_register_name (struct gdbarch *gdbarch, int regno)
/* The upper half "registers" have names in the XML description,
but we present only the low GPRs and the full 64-bit registers
to the user. */
- if (tdep->ppc_ev0_upper_regnum >= 0
- && tdep->ppc_ev0_upper_regnum <= regno
+ if (tdep->ppc_ev0_upper_regnum >= 0 && tdep->ppc_ev0_upper_regnum <= regno
&& regno < tdep->ppc_ev0_upper_regnum + ppc_num_gprs)
return "";
/* Hide the upper halves of the vs0~vs31 registers. */
- if (tdep->ppc_vsr0_regnum >= 0
- && tdep->ppc_vsr0_upper_regnum <= regno
+ if (tdep->ppc_vsr0_regnum >= 0 && tdep->ppc_vsr0_upper_regnum <= regno
&& regno < tdep->ppc_vsr0_upper_regnum + ppc_num_gprs)
return "";
@@ -2492,8 +2431,8 @@ rs6000_register_name (struct gdbarch *gdbarch, int regno)
if (IS_SPE_PSEUDOREG (tdep, regno))
{
static const char *const spe_regnames[] = {
- "ev0", "ev1", "ev2", "ev3", "ev4", "ev5", "ev6", "ev7",
- "ev8", "ev9", "ev10", "ev11", "ev12", "ev13", "ev14", "ev15",
+ "ev0", "ev1", "ev2", "ev3", "ev4", "ev5", "ev6", "ev7",
+ "ev8", "ev9", "ev10", "ev11", "ev12", "ev13", "ev14", "ev15",
"ev16", "ev17", "ev18", "ev19", "ev20", "ev21", "ev22", "ev23",
"ev24", "ev25", "ev26", "ev27", "ev28", "ev29", "ev30", "ev31",
};
@@ -2503,66 +2442,56 @@ rs6000_register_name (struct gdbarch *gdbarch, int regno)
/* Check if the decimal128 pseudo-registers are available. */
if (IS_DFP_PSEUDOREG (tdep, regno))
{
- static const char *const dfp128_regnames[] = {
- "dl0", "dl1", "dl2", "dl3",
- "dl4", "dl5", "dl6", "dl7",
- "dl8", "dl9", "dl10", "dl11",
- "dl12", "dl13", "dl14", "dl15"
- };
+ static const char *const dfp128_regnames[]
+ = { "dl0", "dl1", "dl2", "dl3", "dl4", "dl5", "dl6", "dl7",
+ "dl8", "dl9", "dl10", "dl11", "dl12", "dl13", "dl14", "dl15" };
return dfp128_regnames[regno - tdep->ppc_dl0_regnum];
}
/* Check if this is a vX alias for a raw vrX vector register. */
if (IS_V_ALIAS_PSEUDOREG (tdep, regno))
{
- static const char *const vector_alias_regnames[] = {
- "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
- "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
- "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
- "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31"
- };
+ static const char *const vector_alias_regnames[]
+ = { "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
+ "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
+ "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
+ "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31" };
return vector_alias_regnames[regno - tdep->ppc_v0_alias_regnum];
}
/* Check if this is a VSX pseudo-register. */
if (IS_VSX_PSEUDOREG (tdep, regno))
{
- static const char *const vsx_regnames[] = {
- "vs0", "vs1", "vs2", "vs3", "vs4", "vs5", "vs6", "vs7",
- "vs8", "vs9", "vs10", "vs11", "vs12", "vs13", "vs14",
- "vs15", "vs16", "vs17", "vs18", "vs19", "vs20", "vs21",
- "vs22", "vs23", "vs24", "vs25", "vs26", "vs27", "vs28",
- "vs29", "vs30", "vs31", "vs32", "vs33", "vs34", "vs35",
- "vs36", "vs37", "vs38", "vs39", "vs40", "vs41", "vs42",
- "vs43", "vs44", "vs45", "vs46", "vs47", "vs48", "vs49",
- "vs50", "vs51", "vs52", "vs53", "vs54", "vs55", "vs56",
- "vs57", "vs58", "vs59", "vs60", "vs61", "vs62", "vs63"
- };
+ static const char *const vsx_regnames[]
+ = { "vs0", "vs1", "vs2", "vs3", "vs4", "vs5", "vs6", "vs7",
+ "vs8", "vs9", "vs10", "vs11", "vs12", "vs13", "vs14", "vs15",
+ "vs16", "vs17", "vs18", "vs19", "vs20", "vs21", "vs22", "vs23",
+ "vs24", "vs25", "vs26", "vs27", "vs28", "vs29", "vs30", "vs31",
+ "vs32", "vs33", "vs34", "vs35", "vs36", "vs37", "vs38", "vs39",
+ "vs40", "vs41", "vs42", "vs43", "vs44", "vs45", "vs46", "vs47",
+ "vs48", "vs49", "vs50", "vs51", "vs52", "vs53", "vs54", "vs55",
+ "vs56", "vs57", "vs58", "vs59", "vs60", "vs61", "vs62", "vs63" };
return vsx_regnames[regno - tdep->ppc_vsr0_regnum];
}
/* Check if the this is a Extended FP pseudo-register. */
if (IS_EFP_PSEUDOREG (tdep, regno))
{
- static const char *const efpr_regnames[] = {
- "f32", "f33", "f34", "f35", "f36", "f37", "f38",
- "f39", "f40", "f41", "f42", "f43", "f44", "f45",
- "f46", "f47", "f48", "f49", "f50", "f51",
- "f52", "f53", "f54", "f55", "f56", "f57",
- "f58", "f59", "f60", "f61", "f62", "f63"
- };
+ static const char *const efpr_regnames[]
+ = { "f32", "f33", "f34", "f35", "f36", "f37", "f38", "f39",
+ "f40", "f41", "f42", "f43", "f44", "f45", "f46", "f47",
+ "f48", "f49", "f50", "f51", "f52", "f53", "f54", "f55",
+ "f56", "f57", "f58", "f59", "f60", "f61", "f62", "f63" };
return efpr_regnames[regno - tdep->ppc_efpr0_regnum];
}
/* Check if this is a Checkpointed DFP pseudo-register. */
if (IS_CDFP_PSEUDOREG (tdep, regno))
{
- static const char *const cdfp128_regnames[] = {
- "cdl0", "cdl1", "cdl2", "cdl3",
- "cdl4", "cdl5", "cdl6", "cdl7",
- "cdl8", "cdl9", "cdl10", "cdl11",
- "cdl12", "cdl13", "cdl14", "cdl15"
- };
+ static const char *const cdfp128_regnames[]
+ = { "cdl0", "cdl1", "cdl2", "cdl3", "cdl4", "cdl5",
+ "cdl6", "cdl7", "cdl8", "cdl9", "cdl10", "cdl11",
+ "cdl12", "cdl13", "cdl14", "cdl15" };
return cdfp128_regnames[regno - tdep->ppc_cdl0_regnum];
}
@@ -2570,15 +2499,14 @@ rs6000_register_name (struct gdbarch *gdbarch, int regno)
if (IS_CVSX_PSEUDOREG (tdep, regno))
{
static const char *const cvsx_regnames[] = {
- "cvs0", "cvs1", "cvs2", "cvs3", "cvs4", "cvs5", "cvs6", "cvs7",
- "cvs8", "cvs9", "cvs10", "cvs11", "cvs12", "cvs13", "cvs14",
- "cvs15", "cvs16", "cvs17", "cvs18", "cvs19", "cvs20", "cvs21",
- "cvs22", "cvs23", "cvs24", "cvs25", "cvs26", "cvs27", "cvs28",
- "cvs29", "cvs30", "cvs31", "cvs32", "cvs33", "cvs34", "cvs35",
- "cvs36", "cvs37", "cvs38", "cvs39", "cvs40", "cvs41", "cvs42",
- "cvs43", "cvs44", "cvs45", "cvs46", "cvs47", "cvs48", "cvs49",
- "cvs50", "cvs51", "cvs52", "cvs53", "cvs54", "cvs55", "cvs56",
- "cvs57", "cvs58", "cvs59", "cvs60", "cvs61", "cvs62", "cvs63"
+ "cvs0", "cvs1", "cvs2", "cvs3", "cvs4", "cvs5", "cvs6", "cvs7",
+ "cvs8", "cvs9", "cvs10", "cvs11", "cvs12", "cvs13", "cvs14", "cvs15",
+ "cvs16", "cvs17", "cvs18", "cvs19", "cvs20", "cvs21", "cvs22", "cvs23",
+ "cvs24", "cvs25", "cvs26", "cvs27", "cvs28", "cvs29", "cvs30", "cvs31",
+ "cvs32", "cvs33", "cvs34", "cvs35", "cvs36", "cvs37", "cvs38", "cvs39",
+ "cvs40", "cvs41", "cvs42", "cvs43", "cvs44", "cvs45", "cvs46", "cvs47",
+ "cvs48", "cvs49", "cvs50", "cvs51", "cvs52", "cvs53", "cvs54", "cvs55",
+ "cvs56", "cvs57", "cvs58", "cvs59", "cvs60", "cvs61", "cvs62", "cvs63"
};
return cvsx_regnames[regno - tdep->ppc_cvsr0_regnum];
}
@@ -2586,13 +2514,11 @@ rs6000_register_name (struct gdbarch *gdbarch, int regno)
/* Check if the this is a Checkpointed Extended FP pseudo-register. */
if (IS_CEFP_PSEUDOREG (tdep, regno))
{
- static const char *const cefpr_regnames[] = {
- "cf32", "cf33", "cf34", "cf35", "cf36", "cf37", "cf38",
- "cf39", "cf40", "cf41", "cf42", "cf43", "cf44", "cf45",
- "cf46", "cf47", "cf48", "cf49", "cf50", "cf51",
- "cf52", "cf53", "cf54", "cf55", "cf56", "cf57",
- "cf58", "cf59", "cf60", "cf61", "cf62", "cf63"
- };
+ static const char *const cefpr_regnames[]
+ = { "cf32", "cf33", "cf34", "cf35", "cf36", "cf37", "cf38", "cf39",
+ "cf40", "cf41", "cf42", "cf43", "cf44", "cf45", "cf46", "cf47",
+ "cf48", "cf49", "cf50", "cf51", "cf52", "cf53", "cf54", "cf55",
+ "cf56", "cf57", "cf58", "cf59", "cf60", "cf61", "cf62", "cf63" };
return cefpr_regnames[regno - tdep->ppc_cefpr0_regnum];
}
@@ -2610,26 +2536,22 @@ rs6000_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
/* These are the e500 pseudo-registers. */
if (IS_SPE_PSEUDOREG (tdep, regnum))
return rs6000_builtin_type_vec64 (gdbarch);
- else if (IS_DFP_PSEUDOREG (tdep, regnum)
- || IS_CDFP_PSEUDOREG (tdep, regnum))
+ else if (IS_DFP_PSEUDOREG (tdep, regnum) || IS_CDFP_PSEUDOREG (tdep, regnum))
/* PPC decimal128 pseudo-registers. */
return builtin_type (gdbarch)->builtin_declong;
else if (IS_V_ALIAS_PSEUDOREG (tdep, regnum))
return gdbarch_register_type (gdbarch,
tdep->ppc_vr0_regnum
- + (regnum
- - tdep->ppc_v0_alias_regnum));
- else if (IS_VSX_PSEUDOREG (tdep, regnum)
- || IS_CVSX_PSEUDOREG (tdep, regnum))
+ + (regnum - tdep->ppc_v0_alias_regnum));
+ else if (IS_VSX_PSEUDOREG (tdep, regnum) || IS_CVSX_PSEUDOREG (tdep, regnum))
/* POWER7 VSX pseudo-registers. */
return rs6000_builtin_type_vec128 (gdbarch);
- else if (IS_EFP_PSEUDOREG (tdep, regnum)
- || IS_CEFP_PSEUDOREG (tdep, regnum))
+ else if (IS_EFP_PSEUDOREG (tdep, regnum) || IS_CEFP_PSEUDOREG (tdep, regnum))
/* POWER7 Extended FP pseudo-registers. */
return builtin_type (gdbarch)->builtin_double;
else
- internal_error (_("rs6000_pseudo_register_type: "
- "called on unexpected register '%s' (%d)"),
+ internal_error (_ ("rs6000_pseudo_register_type: "
+ "called on unexpected register '%s' (%d)"),
gdbarch_register_name (gdbarch, regnum), regnum);
}
@@ -2660,8 +2582,7 @@ rs6000_convert_register_p (struct gdbarch *gdbarch, int regnum,
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
- return (tdep->ppc_fp0_regnum >= 0
- && regnum >= tdep->ppc_fp0_regnum
+ return (tdep->ppc_fp0_regnum >= 0 && regnum >= tdep->ppc_fp0_regnum
&& regnum < tdep->ppc_fp0_regnum + ppc_num_fprs
&& type->code () == TYPE_CODE_FLT
&& (type->length ()
@@ -2669,34 +2590,28 @@ rs6000_convert_register_p (struct gdbarch *gdbarch, int regnum,
}
static int
-rs6000_register_to_value (frame_info_ptr frame,
- int regnum,
- struct type *type,
- gdb_byte *to,
- int *optimizedp, int *unavailablep)
+rs6000_register_to_value (frame_info_ptr frame, int regnum, struct type *type,
+ gdb_byte *to, int *optimizedp, int *unavailablep)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
gdb_byte from[PPC_MAX_REGISTER_SIZE];
-
+
gdb_assert (type->code () == TYPE_CODE_FLT);
- if (!get_frame_register_bytes (frame, regnum, 0,
- gdb::make_array_view (from,
- register_size (gdbarch,
- regnum)),
- optimizedp, unavailablep))
+ if (!get_frame_register_bytes (
+ frame, regnum, 0,
+ gdb::make_array_view (from, register_size (gdbarch, regnum)),
+ optimizedp, unavailablep))
return 0;
- target_float_convert (from, builtin_type (gdbarch)->builtin_double,
- to, type);
+ target_float_convert (from, builtin_type (gdbarch)->builtin_double, to,
+ type);
*optimizedp = *unavailablep = 0;
return 1;
}
static void
-rs6000_value_to_register (frame_info_ptr frame,
- int regnum,
- struct type *type,
+rs6000_value_to_register (frame_info_ptr frame, int regnum, struct type *type,
const gdb_byte *from)
{
struct gdbarch *gdbarch = get_frame_arch (frame);
@@ -2704,15 +2619,15 @@ rs6000_value_to_register (frame_info_ptr frame,
gdb_assert (type->code () == TYPE_CODE_FLT);
- target_float_convert (from, type,
- to, builtin_type (gdbarch)->builtin_double);
+ target_float_convert (from, type, to,
+ builtin_type (gdbarch)->builtin_double);
put_frame_register (frame, regnum, to);
}
- /* The type of a function that moves the value of REG between CACHE
+/* The type of a function that moves the value of REG between CACHE
or BUF --- in either direction. */
-typedef enum register_status (*move_ev_register_func) (struct regcache *,
- int, void *);
+typedef enum register_status (*move_ev_register_func) (struct regcache *, int,
+ void *);
/* Move SPE vector register values between a 64-bit buffer and the two
32-bit raw register halves in a regcache. This function handles
@@ -2739,8 +2654,8 @@ typedef enum register_status (*move_ev_register_func) (struct regcache *,
co-variant type qualifiers, ... */
static enum register_status
-e500_move_ev_register (move_ev_register_func move,
- struct regcache *regcache, int ev_reg, void *buffer)
+e500_move_ev_register (move_ev_register_func move, struct regcache *regcache,
+ int ev_reg, void *buffer)
{
struct gdbarch *arch = regcache->arch ();
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (arch);
@@ -2754,11 +2669,11 @@ e500_move_ev_register (move_ev_register_func move,
if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG)
{
- status = move (regcache, tdep->ppc_ev0_upper_regnum + reg_index,
- byte_buffer);
+ status
+ = move (regcache, tdep->ppc_ev0_upper_regnum + reg_index, byte_buffer);
if (status == REG_VALID)
- status = move (regcache, tdep->ppc_gp0_regnum + reg_index,
- byte_buffer + 4);
+ status
+ = move (regcache, tdep->ppc_gp0_regnum + reg_index, byte_buffer + 4);
}
else
{
@@ -2780,8 +2695,9 @@ do_regcache_raw_write (struct regcache *regcache, int regnum, void *buffer)
}
static enum register_status
-e500_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
- int ev_reg, gdb_byte *buffer)
+e500_pseudo_register_read (struct gdbarch *gdbarch,
+ readable_regcache *regcache, int ev_reg,
+ gdb_byte *buffer)
{
struct gdbarch *arch = regcache->arch ();
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
@@ -2794,11 +2710,11 @@ e500_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG)
{
- status = regcache->raw_read (tdep->ppc_ev0_upper_regnum + reg_index,
- buffer);
+ status
+ = regcache->raw_read (tdep->ppc_ev0_upper_regnum + reg_index, buffer);
if (status == REG_VALID)
- status = regcache->raw_read (tdep->ppc_gp0_regnum + reg_index,
- buffer + 4);
+ status
+ = regcache->raw_read (tdep->ppc_gp0_regnum + reg_index, buffer + 4);
}
else
{
@@ -2809,21 +2725,20 @@ e500_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
}
return status;
-
}
static void
e500_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
int reg_nr, const gdb_byte *buffer)
{
- e500_move_ev_register (do_regcache_raw_write, regcache,
- reg_nr, (void *) buffer);
+ e500_move_ev_register (do_regcache_raw_write, regcache, reg_nr,
+ (void *) buffer);
}
/* Read method for DFP pseudo-registers. */
static enum register_status
dfp_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
- int reg_nr, gdb_byte *buffer)
+ int reg_nr, gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, fp0;
@@ -2847,8 +2762,7 @@ dfp_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
/* Read two FP registers to form a whole dl register. */
status = regcache->raw_read (fp0 + 2 * reg_index, buffer);
if (status == REG_VALID)
- status = regcache->raw_read (fp0 + 2 * reg_index + 1,
- buffer + 8);
+ status = regcache->raw_read (fp0 + 2 * reg_index + 1, buffer + 8);
}
else
{
@@ -2863,7 +2777,7 @@ dfp_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
/* Write method for DFP pseudo-registers. */
static void
dfp_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
- int reg_nr, const gdb_byte *buffer)
+ int reg_nr, const gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, fp0;
@@ -2906,7 +2820,7 @@ v_alias_pseudo_register_read (struct gdbarch *gdbarch,
gdb_assert (IS_V_ALIAS_PSEUDOREG (tdep, reg_nr));
return regcache->raw_read (tdep->ppc_vr0_regnum
- + (reg_nr - tdep->ppc_v0_alias_regnum),
+ + (reg_nr - tdep->ppc_v0_alias_regnum),
buffer);
}
@@ -2914,20 +2828,21 @@ v_alias_pseudo_register_read (struct gdbarch *gdbarch,
static void
v_alias_pseudo_register_write (struct gdbarch *gdbarch,
- struct regcache *regcache,
- int reg_nr, const gdb_byte *buffer)
+ struct regcache *regcache, int reg_nr,
+ const gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
gdb_assert (IS_V_ALIAS_PSEUDOREG (tdep, reg_nr));
regcache->raw_write (tdep->ppc_vr0_regnum
- + (reg_nr - tdep->ppc_v0_alias_regnum), buffer);
+ + (reg_nr - tdep->ppc_v0_alias_regnum),
+ buffer);
}
/* Read method for POWER7 VSX pseudo-registers. */
static enum register_status
vsx_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
- int reg_nr, gdb_byte *buffer)
+ int reg_nr, gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, vr0, fp0, vsr0_upper;
@@ -2959,8 +2874,7 @@ vsx_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
{
status = regcache->raw_read (fp0 + reg_index, buffer);
if (status == REG_VALID)
- status = regcache->raw_read (vsr0_upper + reg_index,
- buffer + 8);
+ status = regcache->raw_read (vsr0_upper + reg_index, buffer + 8);
}
else
{
@@ -2975,7 +2889,7 @@ vsx_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
/* Write method for POWER7 VSX pseudo-registers. */
static void
vsx_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
- int reg_nr, const gdb_byte *buffer)
+ int reg_nr, const gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, vr0, fp0, vsr0_upper;
@@ -3017,7 +2931,7 @@ vsx_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
/* Read method for POWER7 Extended FP pseudo-registers. */
static enum register_status
efp_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
- int reg_nr, gdb_byte *buffer)
+ int reg_nr, gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, vr0;
@@ -3039,14 +2953,13 @@ efp_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache,
/* Read the portion that overlaps the VMX register. */
return regcache->raw_read_part (vr0 + reg_index, offset,
- register_size (gdbarch, reg_nr),
- buffer);
+ register_size (gdbarch, reg_nr), buffer);
}
/* Write method for POWER7 Extended FP pseudo-registers. */
static void
efp_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
- int reg_nr, const gdb_byte *buffer)
+ int reg_nr, const gdb_byte *buffer)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, vr0;
@@ -3069,8 +2982,8 @@ efp_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
so we check this manually and throw an error if needed. */
regcache->raw_update (vr0 + reg_index);
if (regcache->get_register_status (vr0 + reg_index) != REG_VALID)
- error (_("Cannot write to the checkpointed EFP register, "
- "the corresponding vector register is unavailable."));
+ error (_ ("Cannot write to the checkpointed EFP register, "
+ "the corresponding vector register is unavailable."));
}
/* Write the portion that overlaps the VMX register. */
@@ -3080,8 +2993,8 @@ efp_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
static enum register_status
rs6000_pseudo_register_read (struct gdbarch *gdbarch,
- readable_regcache *regcache,
- int reg_nr, gdb_byte *buffer)
+ readable_regcache *regcache, int reg_nr,
+ gdb_byte *buffer)
{
struct gdbarch *regcache_arch = regcache->arch ();
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
@@ -3090,28 +3003,24 @@ rs6000_pseudo_register_read (struct gdbarch *gdbarch,
if (IS_SPE_PSEUDOREG (tdep, reg_nr))
return e500_pseudo_register_read (gdbarch, regcache, reg_nr, buffer);
- else if (IS_DFP_PSEUDOREG (tdep, reg_nr)
- || IS_CDFP_PSEUDOREG (tdep, reg_nr))
+ else if (IS_DFP_PSEUDOREG (tdep, reg_nr) || IS_CDFP_PSEUDOREG (tdep, reg_nr))
return dfp_pseudo_register_read (gdbarch, regcache, reg_nr, buffer);
else if (IS_V_ALIAS_PSEUDOREG (tdep, reg_nr))
- return v_alias_pseudo_register_read (gdbarch, regcache, reg_nr,
- buffer);
- else if (IS_VSX_PSEUDOREG (tdep, reg_nr)
- || IS_CVSX_PSEUDOREG (tdep, reg_nr))
+ return v_alias_pseudo_register_read (gdbarch, regcache, reg_nr, buffer);
+ else if (IS_VSX_PSEUDOREG (tdep, reg_nr) || IS_CVSX_PSEUDOREG (tdep, reg_nr))
return vsx_pseudo_register_read (gdbarch, regcache, reg_nr, buffer);
- else if (IS_EFP_PSEUDOREG (tdep, reg_nr)
- || IS_CEFP_PSEUDOREG (tdep, reg_nr))
+ else if (IS_EFP_PSEUDOREG (tdep, reg_nr) || IS_CEFP_PSEUDOREG (tdep, reg_nr))
return efp_pseudo_register_read (gdbarch, regcache, reg_nr, buffer);
else
- internal_error (_("rs6000_pseudo_register_read: "
- "called on unexpected register '%s' (%d)"),
+ internal_error (_ ("rs6000_pseudo_register_read: "
+ "called on unexpected register '%s' (%d)"),
gdbarch_register_name (gdbarch, reg_nr), reg_nr);
}
static void
rs6000_pseudo_register_write (struct gdbarch *gdbarch,
- struct regcache *regcache,
- int reg_nr, const gdb_byte *buffer)
+ struct regcache *regcache, int reg_nr,
+ const gdb_byte *buffer)
{
struct gdbarch *regcache_arch = regcache->arch ();
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
@@ -3120,20 +3029,17 @@ rs6000_pseudo_register_write (struct gdbarch *gdbarch,
if (IS_SPE_PSEUDOREG (tdep, reg_nr))
e500_pseudo_register_write (gdbarch, regcache, reg_nr, buffer);
- else if (IS_DFP_PSEUDOREG (tdep, reg_nr)
- || IS_CDFP_PSEUDOREG (tdep, reg_nr))
+ else if (IS_DFP_PSEUDOREG (tdep, reg_nr) || IS_CDFP_PSEUDOREG (tdep, reg_nr))
dfp_pseudo_register_write (gdbarch, regcache, reg_nr, buffer);
else if (IS_V_ALIAS_PSEUDOREG (tdep, reg_nr))
v_alias_pseudo_register_write (gdbarch, regcache, reg_nr, buffer);
- else if (IS_VSX_PSEUDOREG (tdep, reg_nr)
- || IS_CVSX_PSEUDOREG (tdep, reg_nr))
+ else if (IS_VSX_PSEUDOREG (tdep, reg_nr) || IS_CVSX_PSEUDOREG (tdep, reg_nr))
vsx_pseudo_register_write (gdbarch, regcache, reg_nr, buffer);
- else if (IS_EFP_PSEUDOREG (tdep, reg_nr)
- || IS_CEFP_PSEUDOREG (tdep, reg_nr))
+ else if (IS_EFP_PSEUDOREG (tdep, reg_nr) || IS_CEFP_PSEUDOREG (tdep, reg_nr))
efp_pseudo_register_write (gdbarch, regcache, reg_nr, buffer);
else
- internal_error (_("rs6000_pseudo_register_write: "
- "called on unexpected register '%s' (%d)"),
+ internal_error (_ ("rs6000_pseudo_register_write: "
+ "called on unexpected register '%s' (%d)"),
gdbarch_register_name (gdbarch, reg_nr), reg_nr);
}
@@ -3141,8 +3047,8 @@ rs6000_pseudo_register_write (struct gdbarch *gdbarch,
checkpointed DFP pseudo-register REG_NR. */
static void
-dfp_ax_pseudo_register_collect (struct gdbarch *gdbarch,
- struct agent_expr *ax, int reg_nr)
+dfp_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax,
+ int reg_nr)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, fp0;
@@ -3174,16 +3080,16 @@ v_alias_pseudo_register_collect (struct gdbarch *gdbarch,
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
gdb_assert (IS_V_ALIAS_PSEUDOREG (tdep, reg_nr));
- ax_reg_mask (ax, tdep->ppc_vr0_regnum
- + (reg_nr - tdep->ppc_v0_alias_regnum));
+ ax_reg_mask (ax,
+ tdep->ppc_vr0_regnum + (reg_nr - tdep->ppc_v0_alias_regnum));
}
/* Set the register mask in AX with the registers that form the VSX or
checkpointed VSX pseudo-register REG_NR. */
static void
-vsx_ax_pseudo_register_collect (struct gdbarch *gdbarch,
- struct agent_expr *ax, int reg_nr)
+vsx_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax,
+ int reg_nr)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, vr0, fp0, vsr0_upper;
@@ -3220,8 +3126,8 @@ vsx_ax_pseudo_register_collect (struct gdbarch *gdbarch,
the EFP or checkpointed EFP pseudo-register REG_NR. */
static void
-efp_ax_pseudo_register_collect (struct gdbarch *gdbarch,
- struct agent_expr *ax, int reg_nr)
+efp_ax_pseudo_register_collect (struct gdbarch *gdbarch, struct agent_expr *ax,
+ int reg_nr)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int reg_index, vr0;
@@ -3253,8 +3159,7 @@ rs6000_ax_pseudo_register_collect (struct gdbarch *gdbarch,
ax_reg_mask (ax, tdep->ppc_gp0_regnum + reg_index);
ax_reg_mask (ax, tdep->ppc_ev0_upper_regnum + reg_index);
}
- else if (IS_DFP_PSEUDOREG (tdep, reg_nr)
- || IS_CDFP_PSEUDOREG (tdep, reg_nr))
+ else if (IS_DFP_PSEUDOREG (tdep, reg_nr) || IS_CDFP_PSEUDOREG (tdep, reg_nr))
{
dfp_ax_pseudo_register_collect (gdbarch, ax, reg_nr);
}
@@ -3262,28 +3167,24 @@ rs6000_ax_pseudo_register_collect (struct gdbarch *gdbarch,
{
v_alias_pseudo_register_collect (gdbarch, ax, reg_nr);
}
- else if (IS_VSX_PSEUDOREG (tdep, reg_nr)
- || IS_CVSX_PSEUDOREG (tdep, reg_nr))
+ else if (IS_VSX_PSEUDOREG (tdep, reg_nr) || IS_CVSX_PSEUDOREG (tdep, reg_nr))
{
vsx_ax_pseudo_register_collect (gdbarch, ax, reg_nr);
}
- else if (IS_EFP_PSEUDOREG (tdep, reg_nr)
- || IS_CEFP_PSEUDOREG (tdep, reg_nr))
+ else if (IS_EFP_PSEUDOREG (tdep, reg_nr) || IS_CEFP_PSEUDOREG (tdep, reg_nr))
{
efp_ax_pseudo_register_collect (gdbarch, ax, reg_nr);
}
else
- internal_error (_("rs6000_pseudo_register_collect: "
- "called on unexpected register '%s' (%d)"),
+ internal_error (_ ("rs6000_pseudo_register_collect: "
+ "called on unexpected register '%s' (%d)"),
gdbarch_register_name (gdbarch, reg_nr), reg_nr);
return 0;
}
-
static void
-rs6000_gen_return_address (struct gdbarch *gdbarch,
- struct agent_expr *ax, struct axs_value *value,
- CORE_ADDR scope)
+rs6000_gen_return_address (struct gdbarch *gdbarch, struct agent_expr *ax,
+ struct axs_value *value, CORE_ADDR scope)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
value->type = register_type (gdbarch, tdep->ppc_lr_regnum);
@@ -3291,7 +3192,6 @@ rs6000_gen_return_address (struct gdbarch *gdbarch,
value->u.reg = tdep->ppc_lr_regnum;
}
-
/* Convert a DBX STABS register number to a GDB register number. */
static int
rs6000_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
@@ -3312,13 +3212,13 @@ rs6000_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
else
switch (num)
{
- case 64:
+ case 64:
return tdep->ppc_mq_regnum;
case 65:
return tdep->ppc_lr_regnum;
- case 66:
+ case 66:
return tdep->ppc_ctr_regnum;
- case 76:
+ case 76:
return tdep->ppc_xer_regnum;
case 109:
return tdep->ppc_vrsave_regnum;
@@ -3328,12 +3228,11 @@ rs6000_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
return tdep->ppc_acc_regnum;
case 112:
return tdep->ppc_spefscr_regnum;
- default:
+ default:
return num;
}
}
-
/* Convert a Dwarf 2 register number to a GDB register number. */
static int
rs6000_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int num)
@@ -3412,7 +3311,7 @@ rs6000_adjust_frame_regnum (struct gdbarch *gdbarch, int num, int eh_frame_p)
/* .eh_frame is GCC specific. For binary compatibility, it uses GCC
internal register numbering; translate that to the standard DWARF2
register numbering. */
- if (0 <= num && num <= 63) /* r0-r31,fp0-fp31 */
+ if (0 <= num && num <= 63) /* r0-r31,fp0-fp31 */
return num;
else if (68 <= num && num <= 75) /* cr0-cr8 */
return num - 68 + 86;
@@ -3441,86 +3340,83 @@ rs6000_adjust_frame_regnum (struct gdbarch *gdbarch, int num, int eh_frame_p)
return num;
}
}
-
/* Handling the various POWER/PowerPC variants. */
/* Information about a particular processor variant. */
struct ppc_variant
- {
- /* Name of this variant. */
- const char *name;
-
- /* English description of the variant. */
- const char *description;
+{
+ /* Name of this variant. */
+ const char *name;
- /* bfd_arch_info.arch corresponding to variant. */
- enum bfd_architecture arch;
+ /* English description of the variant. */
+ const char *description;
- /* bfd_arch_info.mach corresponding to variant. */
- unsigned long mach;
+ /* bfd_arch_info.arch corresponding to variant. */
+ enum bfd_architecture arch;
- /* Target description for this variant. */
- const struct target_desc **tdesc;
- };
+ /* bfd_arch_info.mach corresponding to variant. */
+ unsigned long mach;
-static struct ppc_variant variants[] =
-{
- {"powerpc", "PowerPC user-level", bfd_arch_powerpc,
- bfd_mach_ppc, &tdesc_powerpc_altivec32},
- {"power", "POWER user-level", bfd_arch_rs6000,
- bfd_mach_rs6k, &tdesc_rs6000},
- {"403", "IBM PowerPC 403", bfd_arch_powerpc,
- bfd_mach_ppc_403, &tdesc_powerpc_403},
- {"405", "IBM PowerPC 405", bfd_arch_powerpc,
- bfd_mach_ppc_405, &tdesc_powerpc_405},
- {"601", "Motorola PowerPC 601", bfd_arch_powerpc,
- bfd_mach_ppc_601, &tdesc_powerpc_601},
- {"602", "Motorola PowerPC 602", bfd_arch_powerpc,
- bfd_mach_ppc_602, &tdesc_powerpc_602},
- {"603", "Motorola/IBM PowerPC 603 or 603e", bfd_arch_powerpc,
- bfd_mach_ppc_603, &tdesc_powerpc_603},
- {"604", "Motorola PowerPC 604 or 604e", bfd_arch_powerpc,
- 604, &tdesc_powerpc_604},
- {"403GC", "IBM PowerPC 403GC", bfd_arch_powerpc,
- bfd_mach_ppc_403gc, &tdesc_powerpc_403gc},
- {"505", "Motorola PowerPC 505", bfd_arch_powerpc,
- bfd_mach_ppc_505, &tdesc_powerpc_505},
- {"860", "Motorola PowerPC 860 or 850", bfd_arch_powerpc,
- bfd_mach_ppc_860, &tdesc_powerpc_860},
- {"750", "Motorola/IBM PowerPC 750 or 740", bfd_arch_powerpc,
- bfd_mach_ppc_750, &tdesc_powerpc_750},
- {"7400", "Motorola/IBM PowerPC 7400 (G4)", bfd_arch_powerpc,
- bfd_mach_ppc_7400, &tdesc_powerpc_7400},
- {"e500", "Motorola PowerPC e500", bfd_arch_powerpc,
- bfd_mach_ppc_e500, &tdesc_powerpc_e500},
-
- /* 64-bit */
- {"powerpc64", "PowerPC 64-bit user-level", bfd_arch_powerpc,
- bfd_mach_ppc64, &tdesc_powerpc_altivec64},
- {"620", "Motorola PowerPC 620", bfd_arch_powerpc,
- bfd_mach_ppc_620, &tdesc_powerpc_64},
- {"630", "Motorola PowerPC 630", bfd_arch_powerpc,
- bfd_mach_ppc_630, &tdesc_powerpc_64},
- {"a35", "PowerPC A35", bfd_arch_powerpc,
- bfd_mach_ppc_a35, &tdesc_powerpc_64},
- {"rs64ii", "PowerPC rs64ii", bfd_arch_powerpc,
- bfd_mach_ppc_rs64ii, &tdesc_powerpc_64},
- {"rs64iii", "PowerPC rs64iii", bfd_arch_powerpc,
- bfd_mach_ppc_rs64iii, &tdesc_powerpc_64},
-
- /* FIXME: I haven't checked the register sets of the following. */
- {"rs1", "IBM POWER RS1", bfd_arch_rs6000,
- bfd_mach_rs6k_rs1, &tdesc_rs6000},
- {"rsc", "IBM POWER RSC", bfd_arch_rs6000,
- bfd_mach_rs6k_rsc, &tdesc_rs6000},
- {"rs2", "IBM POWER RS2", bfd_arch_rs6000,
- bfd_mach_rs6k_rs2, &tdesc_rs6000},
-
- {0, 0, (enum bfd_architecture) 0, 0, 0}
+ /* Target description for this variant. */
+ const struct target_desc **tdesc;
};
+static struct ppc_variant variants[]
+ = { { "powerpc", "PowerPC user-level", bfd_arch_powerpc, bfd_mach_ppc,
+ &tdesc_powerpc_altivec32 },
+ { "power", "POWER user-level", bfd_arch_rs6000, bfd_mach_rs6k,
+ &tdesc_rs6000 },
+ { "403", "IBM PowerPC 403", bfd_arch_powerpc, bfd_mach_ppc_403,
+ &tdesc_powerpc_403 },
+ { "405", "IBM PowerPC 405", bfd_arch_powerpc, bfd_mach_ppc_405,
+ &tdesc_powerpc_405 },
+ { "601", "Motorola PowerPC 601", bfd_arch_powerpc, bfd_mach_ppc_601,
+ &tdesc_powerpc_601 },
+ { "602", "Motorola PowerPC 602", bfd_arch_powerpc, bfd_mach_ppc_602,
+ &tdesc_powerpc_602 },
+ { "603", "Motorola/IBM PowerPC 603 or 603e", bfd_arch_powerpc,
+ bfd_mach_ppc_603, &tdesc_powerpc_603 },
+ { "604", "Motorola PowerPC 604 or 604e", bfd_arch_powerpc, 604,
+ &tdesc_powerpc_604 },
+ { "403GC", "IBM PowerPC 403GC", bfd_arch_powerpc, bfd_mach_ppc_403gc,
+ &tdesc_powerpc_403gc },
+ { "505", "Motorola PowerPC 505", bfd_arch_powerpc, bfd_mach_ppc_505,
+ &tdesc_powerpc_505 },
+ { "860", "Motorola PowerPC 860 or 850", bfd_arch_powerpc,
+ bfd_mach_ppc_860, &tdesc_powerpc_860 },
+ { "750", "Motorola/IBM PowerPC 750 or 740", bfd_arch_powerpc,
+ bfd_mach_ppc_750, &tdesc_powerpc_750 },
+ { "7400", "Motorola/IBM PowerPC 7400 (G4)", bfd_arch_powerpc,
+ bfd_mach_ppc_7400, &tdesc_powerpc_7400 },
+ { "e500", "Motorola PowerPC e500", bfd_arch_powerpc, bfd_mach_ppc_e500,
+ &tdesc_powerpc_e500 },
+
+ /* 64-bit */
+ { "powerpc64", "PowerPC 64-bit user-level", bfd_arch_powerpc,
+ bfd_mach_ppc64, &tdesc_powerpc_altivec64 },
+ { "620", "Motorola PowerPC 620", bfd_arch_powerpc, bfd_mach_ppc_620,
+ &tdesc_powerpc_64 },
+ { "630", "Motorola PowerPC 630", bfd_arch_powerpc, bfd_mach_ppc_630,
+ &tdesc_powerpc_64 },
+ { "a35", "PowerPC A35", bfd_arch_powerpc, bfd_mach_ppc_a35,
+ &tdesc_powerpc_64 },
+ { "rs64ii", "PowerPC rs64ii", bfd_arch_powerpc, bfd_mach_ppc_rs64ii,
+ &tdesc_powerpc_64 },
+ { "rs64iii", "PowerPC rs64iii", bfd_arch_powerpc, bfd_mach_ppc_rs64iii,
+ &tdesc_powerpc_64 },
+
+ /* FIXME: I haven't checked the register sets of the following. */
+ { "rs1", "IBM POWER RS1", bfd_arch_rs6000, bfd_mach_rs6k_rs1,
+ &tdesc_rs6000 },
+ { "rsc", "IBM POWER RSC", bfd_arch_rs6000, bfd_mach_rs6k_rsc,
+ &tdesc_rs6000 },
+ { "rs2", "IBM POWER RS2", bfd_arch_rs6000, bfd_mach_rs6k_rs2,
+ &tdesc_rs6000 },
+
+ { 0, 0, (enum bfd_architecture) 0, 0, 0 } };
+
/* Return the variant corresponding to architecture ARCH and machine number
MACH. If no such variant exists, return null. */
@@ -3536,8 +3432,6 @@ find_variant_by_arch (enum bfd_architecture arch, unsigned long mach)
return NULL;
}
-
-
struct rs6000_frame_cache
{
CORE_ADDR base;
@@ -3584,8 +3478,8 @@ rs6000_frame_cache (frame_info_ptr this_frame, void **this_cache)
->frame pointed to the outer-most address of the frame. In
the mean time, the address of the prev frame is used as the
base address of this frame. */
- cache->base = get_frame_register_unsigned
- (this_frame, gdbarch_sp_regnum (gdbarch));
+ cache->base = get_frame_register_unsigned (this_frame,
+ gdbarch_sp_regnum (gdbarch));
}
catch (const gdb_exception_error &ex)
{
@@ -3630,8 +3524,8 @@ rs6000_frame_cache (frame_info_ptr this_frame, void **this_cache)
/* Frameless really means stackless. */
ULONGEST backchain;
- if (safe_read_memory_unsigned_integer (cache->base, wordsize,
- byte_order, &backchain))
+ if (safe_read_memory_unsigned_integer (cache->base, wordsize, byte_order,
+ &backchain))
cache->base = (CORE_ADDR) backchain;
}
@@ -3723,14 +3617,14 @@ rs6000_frame_cache (frame_info_ptr this_frame, void **this_cache)
else if (fdata.lr_register != -1)
cache->saved_regs[tdep->ppc_lr_regnum].set_realreg (fdata.lr_register);
/* The PC is found in the link register. */
- cache->saved_regs[gdbarch_pc_regnum (gdbarch)] =
- cache->saved_regs[tdep->ppc_lr_regnum];
+ cache->saved_regs[gdbarch_pc_regnum (gdbarch)]
+ = cache->saved_regs[tdep->ppc_lr_regnum];
/* If != 0, fdata.vrsave_offset is the offset from the frame that
holds the VRSAVE. */
if (fdata.vrsave_offset != 0)
- cache->saved_regs[tdep->ppc_vrsave_regnum].set_addr (cache->base
- + fdata.vrsave_offset);
+ cache->saved_regs[tdep->ppc_vrsave_regnum].set_addr (
+ cache->base + fdata.vrsave_offset);
if (fdata.alloca_reg < 0)
/* If no alloca register used, then fi->frame is the value of the
@@ -3749,8 +3643,8 @@ static void
rs6000_frame_this_id (frame_info_ptr this_frame, void **this_cache,
struct frame_id *this_id)
{
- struct rs6000_frame_cache *info = rs6000_frame_cache (this_frame,
- this_cache);
+ struct rs6000_frame_cache *info
+ = rs6000_frame_cache (this_frame, this_cache);
if (!info->base_p)
{
@@ -3766,24 +3660,22 @@ rs6000_frame_this_id (frame_info_ptr this_frame, void **this_cache,
}
static struct value *
-rs6000_frame_prev_register (frame_info_ptr this_frame,
- void **this_cache, int regnum)
+rs6000_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
+ int regnum)
{
- struct rs6000_frame_cache *info = rs6000_frame_cache (this_frame,
- this_cache);
+ struct rs6000_frame_cache *info
+ = rs6000_frame_cache (this_frame, this_cache);
return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
}
-static const struct frame_unwind rs6000_frame_unwind =
-{
- "rs6000 prologue",
- NORMAL_FRAME,
- default_frame_unwind_stop_reason,
- rs6000_frame_this_id,
- rs6000_frame_prev_register,
- NULL,
- default_frame_sniffer
-};
+static const struct frame_unwind rs6000_frame_unwind
+ = { "rs6000 prologue",
+ NORMAL_FRAME,
+ default_frame_unwind_stop_reason,
+ rs6000_frame_this_id,
+ rs6000_frame_prev_register,
+ NULL,
+ default_frame_sniffer };
/* Allocate and initialize a frame cache for an epilogue frame.
SP is restored and prev-PC is stored in LR. */
@@ -3808,7 +3700,8 @@ rs6000_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
function, and the return address is stored in LR. */
CORE_ADDR sp, lr;
- sp = get_frame_register_unsigned (this_frame, gdbarch_sp_regnum (gdbarch));
+ sp = get_frame_register_unsigned (this_frame,
+ gdbarch_sp_regnum (gdbarch));
lr = get_frame_register_unsigned (this_frame, tdep->ppc_lr_regnum);
cache->base = sp;
@@ -3829,12 +3722,12 @@ rs6000_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
Return the frame ID of an epilogue frame. */
static void
-rs6000_epilogue_frame_this_id (frame_info_ptr this_frame,
- void **this_cache, struct frame_id *this_id)
+rs6000_epilogue_frame_this_id (frame_info_ptr this_frame, void **this_cache,
+ struct frame_id *this_id)
{
CORE_ADDR pc;
- struct rs6000_frame_cache *info =
- rs6000_epilogue_frame_cache (this_frame, this_cache);
+ struct rs6000_frame_cache *info
+ = rs6000_epilogue_frame_cache (this_frame, this_cache);
pc = get_frame_func (this_frame);
if (info->base == 0)
@@ -3850,8 +3743,8 @@ static struct value *
rs6000_epilogue_frame_prev_register (frame_info_ptr this_frame,
void **this_cache, int regnum)
{
- struct rs6000_frame_cache *info =
- rs6000_epilogue_frame_cache (this_frame, this_cache);
+ struct rs6000_frame_cache *info
+ = rs6000_epilogue_frame_cache (this_frame, this_cache);
return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
}
@@ -3874,31 +3767,26 @@ rs6000_epilogue_frame_sniffer (const struct frame_unwind *self,
/* Frame unwinder for epilogue frame. This is required for reverse step-over
a function without debug information. */
-static const struct frame_unwind rs6000_epilogue_frame_unwind =
-{
- "rs6000 epilogue",
- NORMAL_FRAME,
- default_frame_unwind_stop_reason,
- rs6000_epilogue_frame_this_id, rs6000_epilogue_frame_prev_register,
- NULL,
- rs6000_epilogue_frame_sniffer
-};
-
+static const struct frame_unwind rs6000_epilogue_frame_unwind
+ = { "rs6000 epilogue",
+ NORMAL_FRAME,
+ default_frame_unwind_stop_reason,
+ rs6000_epilogue_frame_this_id,
+ rs6000_epilogue_frame_prev_register,
+ NULL,
+ rs6000_epilogue_frame_sniffer };
static CORE_ADDR
rs6000_frame_base_address (frame_info_ptr this_frame, void **this_cache)
{
- struct rs6000_frame_cache *info = rs6000_frame_cache (this_frame,
- this_cache);
+ struct rs6000_frame_cache *info
+ = rs6000_frame_cache (this_frame, this_cache);
return info->initial_sp;
}
-static const struct frame_base rs6000_frame_base = {
- &rs6000_frame_unwind,
- rs6000_frame_base_address,
- rs6000_frame_base_address,
- rs6000_frame_base_address
-};
+static const struct frame_base rs6000_frame_base
+ = { &rs6000_frame_unwind, rs6000_frame_base_address,
+ rs6000_frame_base_address, rs6000_frame_base_address };
static const struct frame_base *
rs6000_frame_base_sniffer (frame_info_ptr this_frame)
@@ -3911,8 +3799,8 @@ rs6000_frame_base_sniffer (frame_info_ptr this_frame)
static void
ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
- struct dwarf2_frame_state_reg *reg,
- frame_info_ptr this_frame)
+ struct dwarf2_frame_state_reg *reg,
+ frame_info_ptr this_frame)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
@@ -3921,13 +3809,13 @@ ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
/* Call-saved GP registers. */
if ((regnum >= tdep->ppc_gp0_regnum + 14
- && regnum <= tdep->ppc_gp0_regnum + 31)
+ && regnum <= tdep->ppc_gp0_regnum + 31)
|| (regnum == tdep->ppc_gp0_regnum + 1))
reg->how = DWARF2_FRAME_REG_SAME_VALUE;
/* Call-clobbered GP registers. */
if ((regnum >= tdep->ppc_gp0_regnum + 3
- && regnum <= tdep->ppc_gp0_regnum + 12)
+ && regnum <= tdep->ppc_gp0_regnum + 12)
|| (regnum == tdep->ppc_gp0_regnum))
reg->how = DWARF2_FRAME_REG_UNDEFINED;
@@ -3936,12 +3824,12 @@ ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
{
/* Call-saved FP registers. */
if ((regnum >= tdep->ppc_fp0_regnum + 14
- && regnum <= tdep->ppc_fp0_regnum + 31))
+ && regnum <= tdep->ppc_fp0_regnum + 31))
reg->how = DWARF2_FRAME_REG_SAME_VALUE;
/* Call-clobbered FP registers. */
if ((regnum >= tdep->ppc_fp0_regnum
- && regnum <= tdep->ppc_fp0_regnum + 13))
+ && regnum <= tdep->ppc_fp0_regnum + 13))
reg->how = DWARF2_FRAME_REG_UNDEFINED;
}
@@ -3950,13 +3838,13 @@ ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
{
/* Call-saved Altivec registers. */
if ((regnum >= tdep->ppc_vr0_regnum + 20
- && regnum <= tdep->ppc_vr0_regnum + 31)
+ && regnum <= tdep->ppc_vr0_regnum + 31)
|| regnum == tdep->ppc_vrsave_regnum)
reg->how = DWARF2_FRAME_REG_SAME_VALUE;
/* Call-clobbered Altivec registers. */
if ((regnum >= tdep->ppc_vr0_regnum
- && regnum <= tdep->ppc_vr0_regnum + 19))
+ && regnum <= tdep->ppc_vr0_regnum + 19))
reg->how = DWARF2_FRAME_REG_UNDEFINED;
}
@@ -3967,7 +3855,6 @@ ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
reg->how = DWARF2_FRAME_REG_CFA;
}
-
/* Return true if a .gnu_attributes section exists in BFD and it
indicates we are using SPE extensions OR if a .PPC.EMB.apuinfo
section exists in BFD and it indicates that SPE extensions are in
@@ -3990,8 +3877,8 @@ bfd_uses_spe_extensions (bfd *abfd)
/* Using Tag_GNU_Power_ABI_Vector here is a bit of a hack, as the user
could be using the SPE vector abi without actually using any spe
bits whatsoever. But it's close enough for now. */
- int vector_abi = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_GNU,
- Tag_GNU_Power_ABI_Vector);
+ int vector_abi
+ = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_GNU, Tag_GNU_Power_ABI_Vector);
if (vector_abi == 3)
return 1;
#endif
@@ -4044,8 +3931,7 @@ bfd_uses_spe_extensions (bfd *abfd)
ptr += 12;
/* The name must be "APUinfo\0". */
- if (name_len != 8
- && strcmp ((const char *) ptr, "APUinfo") != 0)
+ if (name_len != 8 && strcmp ((const char *) ptr, "APUinfo") != 0)
break;
ptr += name_len;
@@ -4089,52 +3975,51 @@ bfd_uses_spe_extensions (bfd *abfd)
/* These are macros for parsing instruction fields (I.1.6.28) */
#define PPC_FIELD(value, from, len) \
- (((value) >> (32 - (from) - (len))) & ((1 << (len)) - 1))
-#define PPC_SEXT(v, bs) \
- ((((CORE_ADDR) (v) & (((CORE_ADDR) 1 << (bs)) - 1)) \
- ^ ((CORE_ADDR) 1 << ((bs) - 1))) \
- - ((CORE_ADDR) 1 << ((bs) - 1)))
-#define PPC_OP6(insn) PPC_FIELD (insn, 0, 6)
-#define PPC_EXTOP(insn) PPC_FIELD (insn, 21, 10)
-#define PPC_RT(insn) PPC_FIELD (insn, 6, 5)
-#define PPC_RS(insn) PPC_FIELD (insn, 6, 5)
-#define PPC_RA(insn) PPC_FIELD (insn, 11, 5)
-#define PPC_RB(insn) PPC_FIELD (insn, 16, 5)
-#define PPC_NB(insn) PPC_FIELD (insn, 16, 5)
-#define PPC_VRT(insn) PPC_FIELD (insn, 6, 5)
-#define PPC_FRT(insn) PPC_FIELD (insn, 6, 5)
-#define PPC_SPR(insn) (PPC_FIELD (insn, 11, 5) \
- | (PPC_FIELD (insn, 16, 5) << 5))
-#define PPC_BO(insn) PPC_FIELD (insn, 6, 5)
-#define PPC_T(insn) PPC_FIELD (insn, 6, 5)
-#define PPC_D(insn) PPC_SEXT (PPC_FIELD (insn, 16, 16), 16)
-#define PPC_DS(insn) PPC_SEXT (PPC_FIELD (insn, 16, 14), 14)
-#define PPC_DQ(insn) PPC_SEXT (PPC_FIELD (insn, 16, 12), 12)
-#define PPC_BIT(insn,n) ((insn & (1 << (31 - (n)))) ? 1 : 0)
-#define PPC_OE(insn) PPC_BIT (insn, 21)
-#define PPC_RC(insn) PPC_BIT (insn, 31)
-#define PPC_Rc(insn) PPC_BIT (insn, 21)
-#define PPC_LK(insn) PPC_BIT (insn, 31)
-#define PPC_TX(insn) PPC_BIT (insn, 31)
-#define PPC_LEV(insn) PPC_FIELD (insn, 20, 7)
-
-#define PPC_XT(insn) ((PPC_TX (insn) << 5) | PPC_T (insn))
-#define PPC_XTp(insn) ((PPC_BIT (insn, 10) << 5) \
- | PPC_FIELD (insn, 6, 4) << 1)
-#define PPC_XSp(insn) ((PPC_BIT (insn, 10) << 5) \
- | PPC_FIELD (insn, 6, 4) << 1)
-#define PPC_XER_NB(xer) (xer & 0x7f)
+ (((value) >> (32 - (from) - (len))) & ((1 << (len)) - 1))
+#define PPC_SEXT(v, bs) \
+ ((((CORE_ADDR) (v) & (((CORE_ADDR) 1 << (bs)) - 1)) \
+ ^ ((CORE_ADDR) 1 << ((bs) -1))) \
+ - ((CORE_ADDR) 1 << ((bs) -1)))
+#define PPC_OP6(insn) PPC_FIELD (insn, 0, 6)
+#define PPC_EXTOP(insn) PPC_FIELD (insn, 21, 10)
+#define PPC_RT(insn) PPC_FIELD (insn, 6, 5)
+#define PPC_RS(insn) PPC_FIELD (insn, 6, 5)
+#define PPC_RA(insn) PPC_FIELD (insn, 11, 5)
+#define PPC_RB(insn) PPC_FIELD (insn, 16, 5)
+#define PPC_NB(insn) PPC_FIELD (insn, 16, 5)
+#define PPC_VRT(insn) PPC_FIELD (insn, 6, 5)
+#define PPC_FRT(insn) PPC_FIELD (insn, 6, 5)
+#define PPC_SPR(insn) \
+ (PPC_FIELD (insn, 11, 5) | (PPC_FIELD (insn, 16, 5) << 5))
+#define PPC_BO(insn) PPC_FIELD (insn, 6, 5)
+#define PPC_T(insn) PPC_FIELD (insn, 6, 5)
+#define PPC_D(insn) PPC_SEXT (PPC_FIELD (insn, 16, 16), 16)
+#define PPC_DS(insn) PPC_SEXT (PPC_FIELD (insn, 16, 14), 14)
+#define PPC_DQ(insn) PPC_SEXT (PPC_FIELD (insn, 16, 12), 12)
+#define PPC_BIT(insn, n) ((insn & (1 << (31 - (n)))) ? 1 : 0)
+#define PPC_OE(insn) PPC_BIT (insn, 21)
+#define PPC_RC(insn) PPC_BIT (insn, 31)
+#define PPC_Rc(insn) PPC_BIT (insn, 21)
+#define PPC_LK(insn) PPC_BIT (insn, 31)
+#define PPC_TX(insn) PPC_BIT (insn, 31)
+#define PPC_LEV(insn) PPC_FIELD (insn, 20, 7)
+
+#define PPC_XT(insn) ((PPC_TX (insn) << 5) | PPC_T (insn))
+#define PPC_XTp(insn) ((PPC_BIT (insn, 10) << 5) | PPC_FIELD (insn, 6, 4) << 1)
+#define PPC_XSp(insn) ((PPC_BIT (insn, 10) << 5) | PPC_FIELD (insn, 6, 4) << 1)
+#define PPC_XER_NB(xer) (xer & 0x7f)
/* The following macros are for the prefixed instructions. */
-#define P_PPC_D(insn_prefix, insn_suffix) \
+#define P_PPC_D(insn_prefix, insn_suffix) \
PPC_SEXT (PPC_FIELD (insn_prefix, 14, 18) << 16 \
- | PPC_FIELD (insn_suffix, 16, 16), 34)
-#define P_PPC_TX5(insn_sufix) PPC_BIT (insn_suffix, 5)
+ | PPC_FIELD (insn_suffix, 16, 16), \
+ 34)
+#define P_PPC_TX5(insn_sufix) PPC_BIT (insn_suffix, 5)
#define P_PPC_TX15(insn_suffix) PPC_BIT (insn_suffix, 15)
-#define P_PPC_XT(insn_suffix) ((PPC_TX (insn_suffix) << 5) \
- | PPC_T (insn_suffix))
-#define P_PPC_XT5(insn_suffix) ((P_PPC_TX5 (insn_suffix) << 5) \
- | PPC_T (insn_suffix))
+#define P_PPC_XT(insn_suffix) \
+ ((PPC_TX (insn_suffix) << 5) | PPC_T (insn_suffix))
+#define P_PPC_XT5(insn_suffix) \
+ ((P_PPC_TX5 (insn_suffix) << 5) | PPC_T (insn_suffix))
#define P_PPC_XT15(insn_suffix) \
((P_PPC_TX15 (insn_suffix) << 5) | PPC_T (insn_suffix))
@@ -4151,7 +4036,8 @@ ppc_record_vsr (struct regcache *regcache, ppc_gdbarch_tdep *tdep, int vsr)
if (vsr >= 32)
{
if (tdep->ppc_vr0_regnum >= 0)
- record_full_arch_list_add_reg (regcache, tdep->ppc_vr0_regnum + vsr - 32);
+ record_full_arch_list_add_reg (regcache,
+ tdep->ppc_vr0_regnum + vsr - 32);
}
else
{
@@ -4205,11 +4091,10 @@ ppc_record_ACC_fpscr (struct regcache *regcache, ppc_gdbarch_tdep *tdep,
/* ACC maps over the same VSR space as the fp registers. */
for (i = 0; i < 4; i++)
{
- record_full_arch_list_add_reg (regcache, tdep->ppc_fp0_regnum
- + entry * 4 + i);
record_full_arch_list_add_reg (regcache,
- tdep->ppc_vsr0_upper_regnum
- + entry * 4 + i);
+ tdep->ppc_fp0_regnum + entry * 4 + i);
+ record_full_arch_list_add_reg (regcache, tdep->ppc_vsr0_upper_regnum
+ + entry * 4 + i);
}
if (save_fpscr)
@@ -4231,61 +4116,61 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext & 0x3f)
{
- case 32: /* Vector Multiply-High-Add Signed Halfword Saturate */
- case 33: /* Vector Multiply-High-Round-Add Signed Halfword Saturate */
- case 39: /* Vector Multiply-Sum Unsigned Halfword Saturate */
- case 41: /* Vector Multiply-Sum Signed Halfword Saturate */
+ case 32: /* Vector Multiply-High-Add Signed Halfword Saturate */
+ case 33: /* Vector Multiply-High-Round-Add Signed Halfword Saturate */
+ case 39: /* Vector Multiply-Sum Unsigned Halfword Saturate */
+ case 41: /* Vector Multiply-Sum Signed Halfword Saturate */
record_full_arch_list_add_reg (regcache, PPC_VSCR_REGNUM);
/* FALL-THROUGH */
- case 20: /* Move To VSR Byte Mask Immediate opcode, b2 = 0,
+ case 20: /* Move To VSR Byte Mask Immediate opcode, b2 = 0,
ignore bit 31 */
- case 21: /* Move To VSR Byte Mask Immediate opcode, b2 = 1,
+ case 21: /* Move To VSR Byte Mask Immediate opcode, b2 = 1,
ignore bit 31 */
- case 23: /* Vector Multiply-Sum & write Carry-out Unsigned
+ case 23: /* Vector Multiply-Sum & write Carry-out Unsigned
Doubleword */
- case 24: /* Vector Extract Double Unsigned Byte to VSR
+ case 24: /* Vector Extract Double Unsigned Byte to VSR
using GPR-specified Left-Index */
- case 25: /* Vector Extract Double Unsigned Byte to VSR
+ case 25: /* Vector Extract Double Unsigned Byte to VSR
using GPR-specified Right-Index */
- case 26: /* Vector Extract Double Unsigned Halfword to VSR
+ case 26: /* Vector Extract Double Unsigned Halfword to VSR
using GPR-specified Left-Index */
- case 27: /* Vector Extract Double Unsigned Halfword to VSR
+ case 27: /* Vector Extract Double Unsigned Halfword to VSR
using GPR-specified Right-Index */
- case 28: /* Vector Extract Double Unsigned Word to VSR
+ case 28: /* Vector Extract Double Unsigned Word to VSR
using GPR-specified Left-Index */
- case 29: /* Vector Extract Double Unsigned Word to VSR
+ case 29: /* Vector Extract Double Unsigned Word to VSR
using GPR-specified Right-Index */
- case 30: /* Vector Extract Double Unsigned Doubleword to VSR
+ case 30: /* Vector Extract Double Unsigned Doubleword to VSR
using GPR-specified Left-Index */
- case 31: /* Vector Extract Double Unsigned Doubleword to VSR
+ case 31: /* Vector Extract Double Unsigned Doubleword to VSR
using GPR-specified Right-Index */
- case 42: /* Vector Select */
- case 43: /* Vector Permute */
- case 59: /* Vector Permute Right-indexed */
- case 22: /* Vector Shift
+ case 42: /* Vector Select */
+ case 43: /* Vector Permute */
+ case 59: /* Vector Permute Right-indexed */
+ case 22: /* Vector Shift
Left Double by Bit Immediate if insn[21] = 0
Right Double by Bit Immediate if insn[21] = 1 */
- case 44: /* Vector Shift Left Double by Octet Immediate */
- case 45: /* Vector Permute and Exclusive-OR */
- case 60: /* Vector Add Extended Unsigned Quadword Modulo */
- case 61: /* Vector Add Extended & write Carry Unsigned Quadword */
- case 62: /* Vector Subtract Extended Unsigned Quadword Modulo */
- case 63: /* Vector Subtract Extended & write Carry Unsigned Quadword */
- case 34: /* Vector Multiply-Low-Add Unsigned Halfword Modulo */
- case 35: /* Vector Multiply-Sum Unsigned Doubleword Modulo */
- case 36: /* Vector Multiply-Sum Unsigned Byte Modulo */
- case 37: /* Vector Multiply-Sum Mixed Byte Modulo */
- case 38: /* Vector Multiply-Sum Unsigned Halfword Modulo */
- case 40: /* Vector Multiply-Sum Signed Halfword Modulo */
- case 46: /* Vector Multiply-Add Single-Precision */
- case 47: /* Vector Negative Multiply-Subtract Single-Precision */
+ case 44: /* Vector Shift Left Double by Octet Immediate */
+ case 45: /* Vector Permute and Exclusive-OR */
+ case 60: /* Vector Add Extended Unsigned Quadword Modulo */
+ case 61: /* Vector Add Extended & write Carry Unsigned Quadword */
+ case 62: /* Vector Subtract Extended Unsigned Quadword Modulo */
+ case 63: /* Vector Subtract Extended & write Carry Unsigned Quadword */
+ case 34: /* Vector Multiply-Low-Add Unsigned Halfword Modulo */
+ case 35: /* Vector Multiply-Sum Unsigned Doubleword Modulo */
+ case 36: /* Vector Multiply-Sum Unsigned Byte Modulo */
+ case 37: /* Vector Multiply-Sum Mixed Byte Modulo */
+ case 38: /* Vector Multiply-Sum Unsigned Halfword Modulo */
+ case 40: /* Vector Multiply-Sum Signed Halfword Modulo */
+ case 46: /* Vector Multiply-Add Single-Precision */
+ case 47: /* Vector Negative Multiply-Subtract Single-Precision */
record_full_arch_list_add_reg (regcache,
tdep->ppc_vr0_regnum + PPC_VRT (insn));
return 0;
- case 48: /* Multiply-Add High Doubleword */
- case 49: /* Multiply-Add High Doubleword Unsigned */
- case 51: /* Multiply-Add Low Doubleword */
+ case 48: /* Multiply-Add High Doubleword */
+ case 49: /* Multiply-Add High Doubleword Unsigned */
+ case 51: /* Multiply-Add Low Doubleword */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
@@ -4300,19 +4185,19 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
&& vra != 5 /* Decimal Convert To National */
&& vra != 6 /* Decimal Convert From Zoned */
&& vra != 7 /* Decimal Convert From National */
- && vra != 31) /* Decimal Set Sign */
+ && vra != 31) /* Decimal Set Sign */
break;
/* Fall through. */
- /* 5.16 Decimal Integer Arithmetic Instructions */
- case 1: /* Decimal Add Modulo */
- case 65: /* Decimal Subtract Modulo */
+ /* 5.16 Decimal Integer Arithmetic Instructions */
+ case 1: /* Decimal Add Modulo */
+ case 65: /* Decimal Subtract Modulo */
- case 193: /* Decimal Shift */
- case 129: /* Decimal Unsigned Shift */
- case 449: /* Decimal Shift and Round */
+ case 193: /* Decimal Shift */
+ case 129: /* Decimal Unsigned Shift */
+ case 449: /* Decimal Shift and Round */
- case 257: /* Decimal Truncate */
- case 321: /* Decimal Unsigned Truncate */
+ case 257: /* Decimal Truncate */
+ case 321: /* Decimal Unsigned Truncate */
/* Bit-21 should be set. */
if (!PPC_BIT (insn, 21))
@@ -4327,34 +4212,34 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
/* Bit-21 is used for RC */
switch (ext & 0x3ff)
{
- case 5: /* Vector Rotate Left Quadword */
- case 69: /* Vector Rotate Left Quadword then Mask Insert */
- case 325: /* Vector Rotate Left Quadword then AND with Mask */
- case 6: /* Vector Compare Equal To Unsigned Byte */
- case 70: /* Vector Compare Equal To Unsigned Halfword */
- case 134: /* Vector Compare Equal To Unsigned Word */
- case 199: /* Vector Compare Equal To Unsigned Doubleword */
- case 774: /* Vector Compare Greater Than Signed Byte */
- case 838: /* Vector Compare Greater Than Signed Halfword */
- case 902: /* Vector Compare Greater Than Signed Word */
- case 967: /* Vector Compare Greater Than Signed Doubleword */
- case 903: /* Vector Compare Greater Than Signed Quadword */
- case 518: /* Vector Compare Greater Than Unsigned Byte */
- case 646: /* Vector Compare Greater Than Unsigned Word */
- case 582: /* Vector Compare Greater Than Unsigned Halfword */
- case 711: /* Vector Compare Greater Than Unsigned Doubleword */
- case 647: /* Vector Compare Greater Than Unsigned Quadword */
- case 966: /* Vector Compare Bounds Single-Precision */
- case 198: /* Vector Compare Equal To Single-Precision */
- case 454: /* Vector Compare Greater Than or Equal To Single-Precision */
- case 455: /* Vector Compare Equal Quadword */
- case 710: /* Vector Compare Greater Than Single-Precision */
- case 7: /* Vector Compare Not Equal Byte */
- case 71: /* Vector Compare Not Equal Halfword */
- case 135: /* Vector Compare Not Equal Word */
- case 263: /* Vector Compare Not Equal or Zero Byte */
- case 327: /* Vector Compare Not Equal or Zero Halfword */
- case 391: /* Vector Compare Not Equal or Zero Word */
+ case 5: /* Vector Rotate Left Quadword */
+ case 69: /* Vector Rotate Left Quadword then Mask Insert */
+ case 325: /* Vector Rotate Left Quadword then AND with Mask */
+ case 6: /* Vector Compare Equal To Unsigned Byte */
+ case 70: /* Vector Compare Equal To Unsigned Halfword */
+ case 134: /* Vector Compare Equal To Unsigned Word */
+ case 199: /* Vector Compare Equal To Unsigned Doubleword */
+ case 774: /* Vector Compare Greater Than Signed Byte */
+ case 838: /* Vector Compare Greater Than Signed Halfword */
+ case 902: /* Vector Compare Greater Than Signed Word */
+ case 967: /* Vector Compare Greater Than Signed Doubleword */
+ case 903: /* Vector Compare Greater Than Signed Quadword */
+ case 518: /* Vector Compare Greater Than Unsigned Byte */
+ case 646: /* Vector Compare Greater Than Unsigned Word */
+ case 582: /* Vector Compare Greater Than Unsigned Halfword */
+ case 711: /* Vector Compare Greater Than Unsigned Doubleword */
+ case 647: /* Vector Compare Greater Than Unsigned Quadword */
+ case 966: /* Vector Compare Bounds Single-Precision */
+ case 198: /* Vector Compare Equal To Single-Precision */
+ case 454: /* Vector Compare Greater Than or Equal To Single-Precision */
+ case 455: /* Vector Compare Equal Quadword */
+ case 710: /* Vector Compare Greater Than Single-Precision */
+ case 7: /* Vector Compare Not Equal Byte */
+ case 71: /* Vector Compare Not Equal Halfword */
+ case 135: /* Vector Compare Not Equal Word */
+ case 263: /* Vector Compare Not Equal or Zero Byte */
+ case 327: /* Vector Compare Not Equal or Zero Halfword */
+ case 391: /* Vector Compare Not Equal or Zero Word */
if (PPC_Rc (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache,
@@ -4362,50 +4247,49 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
case 13:
- switch (vra) /* Bit-21 is used for RC */
+ switch (vra) /* Bit-21 is used for RC */
{
- case 0: /* Vector String Isolate Byte Left-justified */
- case 1: /* Vector String Isolate Byte Right-justified */
- case 2: /* Vector String Isolate Halfword Left-justified */
- case 3: /* Vector String Isolate Halfword Right-justified */
+ case 0: /* Vector String Isolate Byte Left-justified */
+ case 1: /* Vector String Isolate Byte Right-justified */
+ case 2: /* Vector String Isolate Halfword Left-justified */
+ case 3: /* Vector String Isolate Halfword Right-justified */
if (PPC_Rc (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_vr0_regnum
- + PPC_VRT (insn));
- return 0;
+ record_full_arch_list_add_reg (regcache, tdep->ppc_vr0_regnum
+ + PPC_VRT (insn));
+ return 0;
}
}
- if (ext == 1538)
+ if (ext == 1538)
{
switch (vra)
{
- case 0: /* Vector Count Leading Zero Least-Significant Bits
+ case 0: /* Vector Count Leading Zero Least-Significant Bits
Byte */
- case 1: /* Vector Count Trailing Zero Least-Significant Bits
+ case 1: /* Vector Count Trailing Zero Least-Significant Bits
Byte */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
- case 6: /* Vector Negate Word */
- case 7: /* Vector Negate Doubleword */
- case 8: /* Vector Parity Byte Word */
- case 9: /* Vector Parity Byte Doubleword */
- case 10: /* Vector Parity Byte Quadword */
- case 16: /* Vector Extend Sign Byte To Word */
- case 17: /* Vector Extend Sign Halfword To Word */
- case 24: /* Vector Extend Sign Byte To Doubleword */
- case 25: /* Vector Extend Sign Halfword To Doubleword */
- case 26: /* Vector Extend Sign Word To Doubleword */
- case 27: /* Vector Extend Sign Doubleword To Quadword */
- case 28: /* Vector Count Trailing Zeros Byte */
- case 29: /* Vector Count Trailing Zeros Halfword */
- case 30: /* Vector Count Trailing Zeros Word */
- case 31: /* Vector Count Trailing Zeros Doubleword */
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_vr0_regnum + PPC_VRT (insn));
+ case 6: /* Vector Negate Word */
+ case 7: /* Vector Negate Doubleword */
+ case 8: /* Vector Parity Byte Word */
+ case 9: /* Vector Parity Byte Doubleword */
+ case 10: /* Vector Parity Byte Quadword */
+ case 16: /* Vector Extend Sign Byte To Word */
+ case 17: /* Vector Extend Sign Halfword To Word */
+ case 24: /* Vector Extend Sign Byte To Doubleword */
+ case 25: /* Vector Extend Sign Halfword To Doubleword */
+ case 26: /* Vector Extend Sign Word To Doubleword */
+ case 27: /* Vector Extend Sign Doubleword To Quadword */
+ case 28: /* Vector Count Trailing Zeros Byte */
+ case 29: /* Vector Count Trailing Zeros Halfword */
+ case 30: /* Vector Count Trailing Zeros Word */
+ case 31: /* Vector Count Trailing Zeros Doubleword */
+ record_full_arch_list_add_reg (regcache, tdep->ppc_vr0_regnum
+ + PPC_VRT (insn));
return 0;
}
}
@@ -4414,34 +4298,34 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
{
switch (vra)
{
- case 0: /* Vector Expand Byte Mask */
- case 1: /* Vector Expand Halfword Mask */
- case 2: /* Vector Expand Word Mask */
- case 3: /* Vector Expand Doubleword Mask */
- case 4: /* Vector Expand Quadword Mask */
- case 16: /* Move to VSR Byte Mask */
- case 17: /* Move to VSR Halfword Mask */
- case 18: /* Move to VSR Word Mask */
- case 19: /* Move to VSR Doubleword Mask */
- case 20: /* Move to VSR Quadword Mask */
+ case 0: /* Vector Expand Byte Mask */
+ case 1: /* Vector Expand Halfword Mask */
+ case 2: /* Vector Expand Word Mask */
+ case 3: /* Vector Expand Doubleword Mask */
+ case 4: /* Vector Expand Quadword Mask */
+ case 16: /* Move to VSR Byte Mask */
+ case 17: /* Move to VSR Halfword Mask */
+ case 18: /* Move to VSR Word Mask */
+ case 19: /* Move to VSR Doubleword Mask */
+ case 20: /* Move to VSR Quadword Mask */
ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
return 0;
- case 8: /* Vector Extract Byte Mask */
- case 9: /* Vector Extract Halfword Mask */
- case 10: /* Vector Extract Word Mask */
- case 11: /* Vector Extract Doubleword Mask */
- case 12: /* Vector Extract Quadword Mask */
+ case 8: /* Vector Extract Byte Mask */
+ case 9: /* Vector Extract Halfword Mask */
+ case 10: /* Vector Extract Word Mask */
+ case 11: /* Vector Extract Doubleword Mask */
+ case 12: /* Vector Extract Quadword Mask */
/* Ignore the MP bit in the LSB position of the vra value. */
- case 24: /* Vector Count Mask Bits Byte, MP = 0 */
- case 25: /* Vector Count Mask Bits Byte, MP = 1 */
- case 26: /* Vector Count Mask Bits Halfword, MP = 0 */
- case 27: /* Vector Count Mask Bits Halfword, MP = 1 */
- case 28: /* Vector Count Mask Bits Word, MP = 0 */
- case 29: /* Vector Count Mask Bits Word, MP = 1 */
- case 30: /* Vector Count Mask Bits Doubleword, MP = 0 */
- case 31: /* Vector Count Mask Bits Doubleword, MP = 1 */
+ case 24: /* Vector Count Mask Bits Byte, MP = 0 */
+ case 25: /* Vector Count Mask Bits Byte, MP = 1 */
+ case 26: /* Vector Count Mask Bits Halfword, MP = 0 */
+ case 27: /* Vector Count Mask Bits Halfword, MP = 1 */
+ case 28: /* Vector Count Mask Bits Word, MP = 0 */
+ case 29: /* Vector Count Mask Bits Word, MP = 1 */
+ case 30: /* Vector Count Mask Bits Doubleword, MP = 0 */
+ case 31: /* Vector Count Mask Bits Doubleword, MP = 1 */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
record_full_arch_list_add_reg (regcache,
@@ -4452,311 +4336,312 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
-
- case 257: /* Vector Compare Unsigned Quadword */
- case 321: /* Vector Compare Signed Quadword */
+ case 257: /* Vector Compare Unsigned Quadword */
+ case 321: /* Vector Compare Signed Quadword */
/* Comparison tests that always set CR field BF */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache,
tdep->ppc_vr0_regnum + PPC_VRT (insn));
return 0;
- case 142: /* Vector Pack Unsigned Halfword Unsigned Saturate */
- case 206: /* Vector Pack Unsigned Word Unsigned Saturate */
- case 270: /* Vector Pack Signed Halfword Unsigned Saturate */
- case 334: /* Vector Pack Signed Word Unsigned Saturate */
- case 398: /* Vector Pack Signed Halfword Signed Saturate */
- case 462: /* Vector Pack Signed Word Signed Saturate */
- case 1230: /* Vector Pack Unsigned Doubleword Unsigned Saturate */
- case 1358: /* Vector Pack Signed Doubleword Unsigned Saturate */
- case 1486: /* Vector Pack Signed Doubleword Signed Saturate */
- case 512: /* Vector Add Unsigned Byte Saturate */
- case 576: /* Vector Add Unsigned Halfword Saturate */
- case 640: /* Vector Add Unsigned Word Saturate */
- case 768: /* Vector Add Signed Byte Saturate */
- case 832: /* Vector Add Signed Halfword Saturate */
- case 896: /* Vector Add Signed Word Saturate */
- case 1536: /* Vector Subtract Unsigned Byte Saturate */
- case 1600: /* Vector Subtract Unsigned Halfword Saturate */
- case 1664: /* Vector Subtract Unsigned Word Saturate */
- case 1792: /* Vector Subtract Signed Byte Saturate */
- case 1856: /* Vector Subtract Signed Halfword Saturate */
- case 1920: /* Vector Subtract Signed Word Saturate */
-
- case 1544: /* Vector Sum across Quarter Unsigned Byte Saturate */
- case 1800: /* Vector Sum across Quarter Signed Byte Saturate */
- case 1608: /* Vector Sum across Quarter Signed Halfword Saturate */
- case 1672: /* Vector Sum across Half Signed Word Saturate */
- case 1928: /* Vector Sum across Signed Word Saturate */
- case 970: /* Vector Convert To Signed Fixed-Point Word Saturate */
- case 906: /* Vector Convert To Unsigned Fixed-Point Word Saturate */
+ case 142: /* Vector Pack Unsigned Halfword Unsigned Saturate */
+ case 206: /* Vector Pack Unsigned Word Unsigned Saturate */
+ case 270: /* Vector Pack Signed Halfword Unsigned Saturate */
+ case 334: /* Vector Pack Signed Word Unsigned Saturate */
+ case 398: /* Vector Pack Signed Halfword Signed Saturate */
+ case 462: /* Vector Pack Signed Word Signed Saturate */
+ case 1230: /* Vector Pack Unsigned Doubleword Unsigned Saturate */
+ case 1358: /* Vector Pack Signed Doubleword Unsigned Saturate */
+ case 1486: /* Vector Pack Signed Doubleword Signed Saturate */
+ case 512: /* Vector Add Unsigned Byte Saturate */
+ case 576: /* Vector Add Unsigned Halfword Saturate */
+ case 640: /* Vector Add Unsigned Word Saturate */
+ case 768: /* Vector Add Signed Byte Saturate */
+ case 832: /* Vector Add Signed Halfword Saturate */
+ case 896: /* Vector Add Signed Word Saturate */
+ case 1536: /* Vector Subtract Unsigned Byte Saturate */
+ case 1600: /* Vector Subtract Unsigned Halfword Saturate */
+ case 1664: /* Vector Subtract Unsigned Word Saturate */
+ case 1792: /* Vector Subtract Signed Byte Saturate */
+ case 1856: /* Vector Subtract Signed Halfword Saturate */
+ case 1920: /* Vector Subtract Signed Word Saturate */
+
+ case 1544: /* Vector Sum across Quarter Unsigned Byte Saturate */
+ case 1800: /* Vector Sum across Quarter Signed Byte Saturate */
+ case 1608: /* Vector Sum across Quarter Signed Halfword Saturate */
+ case 1672: /* Vector Sum across Half Signed Word Saturate */
+ case 1928: /* Vector Sum across Signed Word Saturate */
+ case 970: /* Vector Convert To Signed Fixed-Point Word Saturate */
+ case 906: /* Vector Convert To Unsigned Fixed-Point Word Saturate */
record_full_arch_list_add_reg (regcache, PPC_VSCR_REGNUM);
/* FALL-THROUGH */
- case 12: /* Vector Merge High Byte */
- case 14: /* Vector Pack Unsigned Halfword Unsigned Modulo */
- case 76: /* Vector Merge High Halfword */
- case 78: /* Vector Pack Unsigned Word Unsigned Modulo */
- case 140: /* Vector Merge High Word */
- case 268: /* Vector Merge Low Byte */
- case 332: /* Vector Merge Low Halfword */
- case 396: /* Vector Merge Low Word */
- case 397: /* Vector Clear Leftmost Bytes */
- case 461: /* Vector Clear Rightmost Bytes */
- case 526: /* Vector Unpack High Signed Byte */
- case 590: /* Vector Unpack High Signed Halfword */
- case 654: /* Vector Unpack Low Signed Byte */
- case 718: /* Vector Unpack Low Signed Halfword */
- case 782: /* Vector Pack Pixel */
- case 846: /* Vector Unpack High Pixel */
- case 974: /* Vector Unpack Low Pixel */
- case 1102: /* Vector Pack Unsigned Doubleword Unsigned Modulo */
- case 1614: /* Vector Unpack High Signed Word */
- case 1676: /* Vector Merge Odd Word */
- case 1742: /* Vector Unpack Low Signed Word */
- case 1932: /* Vector Merge Even Word */
- case 524: /* Vector Splat Byte */
- case 588: /* Vector Splat Halfword */
- case 652: /* Vector Splat Word */
- case 780: /* Vector Splat Immediate Signed Byte */
- case 844: /* Vector Splat Immediate Signed Halfword */
- case 908: /* Vector Splat Immediate Signed Word */
- case 261: /* Vector Shift Left Quadword */
- case 452: /* Vector Shift Left */
- case 517: /* Vector Shift Right Quadword */
- case 708: /* Vector Shift Right */
- case 773: /* Vector Shift Right Algebraic Quadword */
- case 1036: /* Vector Shift Left by Octet */
- case 1100: /* Vector Shift Right by Octet */
- case 0: /* Vector Add Unsigned Byte Modulo */
- case 64: /* Vector Add Unsigned Halfword Modulo */
- case 128: /* Vector Add Unsigned Word Modulo */
- case 192: /* Vector Add Unsigned Doubleword Modulo */
- case 256: /* Vector Add Unsigned Quadword Modulo */
- case 320: /* Vector Add & write Carry Unsigned Quadword */
- case 384: /* Vector Add and Write Carry-Out Unsigned Word */
- case 8: /* Vector Multiply Odd Unsigned Byte */
- case 72: /* Vector Multiply Odd Unsigned Halfword */
- case 136: /* Vector Multiply Odd Unsigned Word */
- case 200: /* Vector Multiply Odd Unsigned Doubleword */
- case 264: /* Vector Multiply Odd Signed Byte */
- case 328: /* Vector Multiply Odd Signed Halfword */
- case 392: /* Vector Multiply Odd Signed Word */
- case 456: /* Vector Multiply Odd Signed Doubleword */
- case 520: /* Vector Multiply Even Unsigned Byte */
- case 584: /* Vector Multiply Even Unsigned Halfword */
- case 648: /* Vector Multiply Even Unsigned Word */
- case 712: /* Vector Multiply Even Unsigned Doubleword */
- case 776: /* Vector Multiply Even Signed Byte */
- case 840: /* Vector Multiply Even Signed Halfword */
- case 904: /* Vector Multiply Even Signed Word */
- case 968: /* Vector Multiply Even Signed Doubleword */
- case 457: /* Vector Multiply Low Doubleword */
- case 649: /* Vector Multiply High Unsigned Word */
- case 713: /* Vector Multiply High Unsigned Doubleword */
- case 905: /* Vector Multiply High Signed Word */
- case 969: /* Vector Multiply High Signed Doubleword */
- case 11: /* Vector Divide Unsigned Quadword */
- case 203: /* Vector Divide Unsigned Doubleword */
- case 139: /* Vector Divide Unsigned Word */
- case 267: /* Vector Divide Signed Quadword */
- case 459: /* Vector Divide Signed Doubleword */
- case 395: /* Vector Divide Signed Word */
- case 523: /* Vector Divide Extended Unsigned Quadword */
- case 715: /* Vector Divide Extended Unsigned Doubleword */
- case 651: /* Vector Divide Extended Unsigned Word */
- case 779: /* Vector Divide Extended Signed Quadword */
- case 971: /* Vector Divide Extended Signed Doubleword */
- case 907: /* Vector Divide Extended Unsigned Word */
- case 1547: /* Vector Modulo Unsigned Quadword */
- case 1675: /* Vector Modulo Unsigned Word */
- case 1739: /* Vector Modulo Unsigned Doubleword */
- case 1803: /* Vector Modulo Signed Quadword */
- case 1931: /* Vector Modulo Signed Word */
- case 1995: /* Vector Modulo Signed Doubleword */
-
- case 137: /* Vector Multiply Unsigned Word Modulo */
- case 1024: /* Vector Subtract Unsigned Byte Modulo */
- case 1088: /* Vector Subtract Unsigned Halfword Modulo */
- case 1152: /* Vector Subtract Unsigned Word Modulo */
- case 1216: /* Vector Subtract Unsigned Doubleword Modulo */
- case 1280: /* Vector Subtract Unsigned Quadword Modulo */
- case 1344: /* Vector Subtract & write Carry Unsigned Quadword */
- case 1408: /* Vector Subtract and Write Carry-Out Unsigned Word */
- case 1282: /* Vector Average Signed Byte */
- case 1346: /* Vector Average Signed Halfword */
- case 1410: /* Vector Average Signed Word */
- case 1026: /* Vector Average Unsigned Byte */
- case 1090: /* Vector Average Unsigned Halfword */
- case 1154: /* Vector Average Unsigned Word */
- case 258: /* Vector Maximum Signed Byte */
- case 322: /* Vector Maximum Signed Halfword */
- case 386: /* Vector Maximum Signed Word */
- case 450: /* Vector Maximum Signed Doubleword */
- case 2: /* Vector Maximum Unsigned Byte */
- case 66: /* Vector Maximum Unsigned Halfword */
- case 130: /* Vector Maximum Unsigned Word */
- case 194: /* Vector Maximum Unsigned Doubleword */
- case 770: /* Vector Minimum Signed Byte */
- case 834: /* Vector Minimum Signed Halfword */
- case 898: /* Vector Minimum Signed Word */
- case 962: /* Vector Minimum Signed Doubleword */
- case 514: /* Vector Minimum Unsigned Byte */
- case 578: /* Vector Minimum Unsigned Halfword */
- case 642: /* Vector Minimum Unsigned Word */
- case 706: /* Vector Minimum Unsigned Doubleword */
- case 1028: /* Vector Logical AND */
- case 1668: /* Vector Logical Equivalent */
- case 1092: /* Vector Logical AND with Complement */
- case 1412: /* Vector Logical NAND */
- case 1348: /* Vector Logical OR with Complement */
- case 1156: /* Vector Logical OR */
- case 1284: /* Vector Logical NOR */
- case 1220: /* Vector Logical XOR */
- case 4: /* Vector Rotate Left Byte */
- case 132: /* Vector Rotate Left Word VX-form */
- case 68: /* Vector Rotate Left Halfword */
- case 196: /* Vector Rotate Left Doubleword */
- case 260: /* Vector Shift Left Byte */
- case 388: /* Vector Shift Left Word */
- case 324: /* Vector Shift Left Halfword */
- case 1476: /* Vector Shift Left Doubleword */
- case 516: /* Vector Shift Right Byte */
- case 644: /* Vector Shift Right Word */
- case 580: /* Vector Shift Right Halfword */
- case 1732: /* Vector Shift Right Doubleword */
- case 772: /* Vector Shift Right Algebraic Byte */
- case 900: /* Vector Shift Right Algebraic Word */
- case 836: /* Vector Shift Right Algebraic Halfword */
- case 964: /* Vector Shift Right Algebraic Doubleword */
- case 10: /* Vector Add Single-Precision */
- case 74: /* Vector Subtract Single-Precision */
- case 1034: /* Vector Maximum Single-Precision */
- case 1098: /* Vector Minimum Single-Precision */
- case 842: /* Vector Convert From Signed Fixed-Point Word */
- case 778: /* Vector Convert From Unsigned Fixed-Point Word */
- case 714: /* Vector Round to Single-Precision Integer toward -Infinity */
- case 522: /* Vector Round to Single-Precision Integer Nearest */
- case 650: /* Vector Round to Single-Precision Integer toward +Infinity */
- case 586: /* Vector Round to Single-Precision Integer toward Zero */
- case 394: /* Vector 2 Raised to the Exponent Estimate Floating-Point */
- case 458: /* Vector Log Base 2 Estimate Floating-Point */
- case 266: /* Vector Reciprocal Estimate Single-Precision */
- case 330: /* Vector Reciprocal Square Root Estimate Single-Precision */
- case 1288: /* Vector AES Cipher */
- case 1289: /* Vector AES Cipher Last */
- case 1352: /* Vector AES Inverse Cipher */
- case 1353: /* Vector AES Inverse Cipher Last */
- case 1480: /* Vector AES SubBytes */
- case 1730: /* Vector SHA-512 Sigma Doubleword */
- case 1666: /* Vector SHA-256 Sigma Word */
- case 1032: /* Vector Polynomial Multiply-Sum Byte */
- case 1160: /* Vector Polynomial Multiply-Sum Word */
- case 1096: /* Vector Polynomial Multiply-Sum Halfword */
- case 1224: /* Vector Polynomial Multiply-Sum Doubleword */
- case 1292: /* Vector Gather Bits by Bytes by Doubleword */
- case 1794: /* Vector Count Leading Zeros Byte */
- case 1858: /* Vector Count Leading Zeros Halfword */
- case 1922: /* Vector Count Leading Zeros Word */
- case 1924: /* Vector Count Leading Zeros Doubleword under
+ case 12: /* Vector Merge High Byte */
+ case 14: /* Vector Pack Unsigned Halfword Unsigned Modulo */
+ case 76: /* Vector Merge High Halfword */
+ case 78: /* Vector Pack Unsigned Word Unsigned Modulo */
+ case 140: /* Vector Merge High Word */
+ case 268: /* Vector Merge Low Byte */
+ case 332: /* Vector Merge Low Halfword */
+ case 396: /* Vector Merge Low Word */
+ case 397: /* Vector Clear Leftmost Bytes */
+ case 461: /* Vector Clear Rightmost Bytes */
+ case 526: /* Vector Unpack High Signed Byte */
+ case 590: /* Vector Unpack High Signed Halfword */
+ case 654: /* Vector Unpack Low Signed Byte */
+ case 718: /* Vector Unpack Low Signed Halfword */
+ case 782: /* Vector Pack Pixel */
+ case 846: /* Vector Unpack High Pixel */
+ case 974: /* Vector Unpack Low Pixel */
+ case 1102: /* Vector Pack Unsigned Doubleword Unsigned Modulo */
+ case 1614: /* Vector Unpack High Signed Word */
+ case 1676: /* Vector Merge Odd Word */
+ case 1742: /* Vector Unpack Low Signed Word */
+ case 1932: /* Vector Merge Even Word */
+ case 524: /* Vector Splat Byte */
+ case 588: /* Vector Splat Halfword */
+ case 652: /* Vector Splat Word */
+ case 780: /* Vector Splat Immediate Signed Byte */
+ case 844: /* Vector Splat Immediate Signed Halfword */
+ case 908: /* Vector Splat Immediate Signed Word */
+ case 261: /* Vector Shift Left Quadword */
+ case 452: /* Vector Shift Left */
+ case 517: /* Vector Shift Right Quadword */
+ case 708: /* Vector Shift Right */
+ case 773: /* Vector Shift Right Algebraic Quadword */
+ case 1036: /* Vector Shift Left by Octet */
+ case 1100: /* Vector Shift Right by Octet */
+ case 0: /* Vector Add Unsigned Byte Modulo */
+ case 64: /* Vector Add Unsigned Halfword Modulo */
+ case 128: /* Vector Add Unsigned Word Modulo */
+ case 192: /* Vector Add Unsigned Doubleword Modulo */
+ case 256: /* Vector Add Unsigned Quadword Modulo */
+ case 320: /* Vector Add & write Carry Unsigned Quadword */
+ case 384: /* Vector Add and Write Carry-Out Unsigned Word */
+ case 8: /* Vector Multiply Odd Unsigned Byte */
+ case 72: /* Vector Multiply Odd Unsigned Halfword */
+ case 136: /* Vector Multiply Odd Unsigned Word */
+ case 200: /* Vector Multiply Odd Unsigned Doubleword */
+ case 264: /* Vector Multiply Odd Signed Byte */
+ case 328: /* Vector Multiply Odd Signed Halfword */
+ case 392: /* Vector Multiply Odd Signed Word */
+ case 456: /* Vector Multiply Odd Signed Doubleword */
+ case 520: /* Vector Multiply Even Unsigned Byte */
+ case 584: /* Vector Multiply Even Unsigned Halfword */
+ case 648: /* Vector Multiply Even Unsigned Word */
+ case 712: /* Vector Multiply Even Unsigned Doubleword */
+ case 776: /* Vector Multiply Even Signed Byte */
+ case 840: /* Vector Multiply Even Signed Halfword */
+ case 904: /* Vector Multiply Even Signed Word */
+ case 968: /* Vector Multiply Even Signed Doubleword */
+ case 457: /* Vector Multiply Low Doubleword */
+ case 649: /* Vector Multiply High Unsigned Word */
+ case 713: /* Vector Multiply High Unsigned Doubleword */
+ case 905: /* Vector Multiply High Signed Word */
+ case 969: /* Vector Multiply High Signed Doubleword */
+ case 11: /* Vector Divide Unsigned Quadword */
+ case 203: /* Vector Divide Unsigned Doubleword */
+ case 139: /* Vector Divide Unsigned Word */
+ case 267: /* Vector Divide Signed Quadword */
+ case 459: /* Vector Divide Signed Doubleword */
+ case 395: /* Vector Divide Signed Word */
+ case 523: /* Vector Divide Extended Unsigned Quadword */
+ case 715: /* Vector Divide Extended Unsigned Doubleword */
+ case 651: /* Vector Divide Extended Unsigned Word */
+ case 779: /* Vector Divide Extended Signed Quadword */
+ case 971: /* Vector Divide Extended Signed Doubleword */
+ case 907: /* Vector Divide Extended Unsigned Word */
+ case 1547: /* Vector Modulo Unsigned Quadword */
+ case 1675: /* Vector Modulo Unsigned Word */
+ case 1739: /* Vector Modulo Unsigned Doubleword */
+ case 1803: /* Vector Modulo Signed Quadword */
+ case 1931: /* Vector Modulo Signed Word */
+ case 1995: /* Vector Modulo Signed Doubleword */
+
+ case 137: /* Vector Multiply Unsigned Word Modulo */
+ case 1024: /* Vector Subtract Unsigned Byte Modulo */
+ case 1088: /* Vector Subtract Unsigned Halfword Modulo */
+ case 1152: /* Vector Subtract Unsigned Word Modulo */
+ case 1216: /* Vector Subtract Unsigned Doubleword Modulo */
+ case 1280: /* Vector Subtract Unsigned Quadword Modulo */
+ case 1344: /* Vector Subtract & write Carry Unsigned Quadword */
+ case 1408: /* Vector Subtract and Write Carry-Out Unsigned Word */
+ case 1282: /* Vector Average Signed Byte */
+ case 1346: /* Vector Average Signed Halfword */
+ case 1410: /* Vector Average Signed Word */
+ case 1026: /* Vector Average Unsigned Byte */
+ case 1090: /* Vector Average Unsigned Halfword */
+ case 1154: /* Vector Average Unsigned Word */
+ case 258: /* Vector Maximum Signed Byte */
+ case 322: /* Vector Maximum Signed Halfword */
+ case 386: /* Vector Maximum Signed Word */
+ case 450: /* Vector Maximum Signed Doubleword */
+ case 2: /* Vector Maximum Unsigned Byte */
+ case 66: /* Vector Maximum Unsigned Halfword */
+ case 130: /* Vector Maximum Unsigned Word */
+ case 194: /* Vector Maximum Unsigned Doubleword */
+ case 770: /* Vector Minimum Signed Byte */
+ case 834: /* Vector Minimum Signed Halfword */
+ case 898: /* Vector Minimum Signed Word */
+ case 962: /* Vector Minimum Signed Doubleword */
+ case 514: /* Vector Minimum Unsigned Byte */
+ case 578: /* Vector Minimum Unsigned Halfword */
+ case 642: /* Vector Minimum Unsigned Word */
+ case 706: /* Vector Minimum Unsigned Doubleword */
+ case 1028: /* Vector Logical AND */
+ case 1668: /* Vector Logical Equivalent */
+ case 1092: /* Vector Logical AND with Complement */
+ case 1412: /* Vector Logical NAND */
+ case 1348: /* Vector Logical OR with Complement */
+ case 1156: /* Vector Logical OR */
+ case 1284: /* Vector Logical NOR */
+ case 1220: /* Vector Logical XOR */
+ case 4: /* Vector Rotate Left Byte */
+ case 132: /* Vector Rotate Left Word VX-form */
+ case 68: /* Vector Rotate Left Halfword */
+ case 196: /* Vector Rotate Left Doubleword */
+ case 260: /* Vector Shift Left Byte */
+ case 388: /* Vector Shift Left Word */
+ case 324: /* Vector Shift Left Halfword */
+ case 1476: /* Vector Shift Left Doubleword */
+ case 516: /* Vector Shift Right Byte */
+ case 644: /* Vector Shift Right Word */
+ case 580: /* Vector Shift Right Halfword */
+ case 1732: /* Vector Shift Right Doubleword */
+ case 772: /* Vector Shift Right Algebraic Byte */
+ case 900: /* Vector Shift Right Algebraic Word */
+ case 836: /* Vector Shift Right Algebraic Halfword */
+ case 964: /* Vector Shift Right Algebraic Doubleword */
+ case 10: /* Vector Add Single-Precision */
+ case 74: /* Vector Subtract Single-Precision */
+ case 1034: /* Vector Maximum Single-Precision */
+ case 1098: /* Vector Minimum Single-Precision */
+ case 842: /* Vector Convert From Signed Fixed-Point Word */
+ case 778: /* Vector Convert From Unsigned Fixed-Point Word */
+ case 714: /* Vector Round to Single-Precision Integer toward -Infinity */
+ case 522: /* Vector Round to Single-Precision Integer Nearest */
+ case 650: /* Vector Round to Single-Precision Integer toward +Infinity */
+ case 586: /* Vector Round to Single-Precision Integer toward Zero */
+ case 394: /* Vector 2 Raised to the Exponent Estimate Floating-Point */
+ case 458: /* Vector Log Base 2 Estimate Floating-Point */
+ case 266: /* Vector Reciprocal Estimate Single-Precision */
+ case 330: /* Vector Reciprocal Square Root Estimate Single-Precision */
+ case 1288: /* Vector AES Cipher */
+ case 1289: /* Vector AES Cipher Last */
+ case 1352: /* Vector AES Inverse Cipher */
+ case 1353: /* Vector AES Inverse Cipher Last */
+ case 1480: /* Vector AES SubBytes */
+ case 1730: /* Vector SHA-512 Sigma Doubleword */
+ case 1666: /* Vector SHA-256 Sigma Word */
+ case 1032: /* Vector Polynomial Multiply-Sum Byte */
+ case 1160: /* Vector Polynomial Multiply-Sum Word */
+ case 1096: /* Vector Polynomial Multiply-Sum Halfword */
+ case 1224: /* Vector Polynomial Multiply-Sum Doubleword */
+ case 1292: /* Vector Gather Bits by Bytes by Doubleword */
+ case 1794: /* Vector Count Leading Zeros Byte */
+ case 1858: /* Vector Count Leading Zeros Halfword */
+ case 1922: /* Vector Count Leading Zeros Word */
+ case 1924: /* Vector Count Leading Zeros Doubleword under
bit Mask*/
- case 1986: /* Vector Count Leading Zeros Doubleword */
- case 1988: /* Vector Count Trailing Zeros Doubleword under bit
+ case 1986: /* Vector Count Leading Zeros Doubleword */
+ case 1988: /* Vector Count Trailing Zeros Doubleword under bit
Mask */
- case 1795: /* Vector Population Count Byte */
- case 1859: /* Vector Population Count Halfword */
- case 1923: /* Vector Population Count Word */
- case 1987: /* Vector Population Count Doubleword */
- case 1356: /* Vector Bit Permute Quadword */
- case 1484: /* Vector Bit Permute Doubleword */
- case 513: /* Vector Multiply-by-10 Unsigned Quadword */
- case 1: /* Vector Multiply-by-10 & write Carry Unsigned
+ case 1795: /* Vector Population Count Byte */
+ case 1859: /* Vector Population Count Halfword */
+ case 1923: /* Vector Population Count Word */
+ case 1987: /* Vector Population Count Doubleword */
+ case 1356: /* Vector Bit Permute Quadword */
+ case 1484: /* Vector Bit Permute Doubleword */
+ case 513: /* Vector Multiply-by-10 Unsigned Quadword */
+ case 1: /* Vector Multiply-by-10 & write Carry Unsigned
Quadword */
- case 577: /* Vector Multiply-by-10 Extended Unsigned Quadword */
- case 65: /* Vector Multiply-by-10 Extended & write Carry
+ case 577: /* Vector Multiply-by-10 Extended Unsigned Quadword */
+ case 65: /* Vector Multiply-by-10 Extended & write Carry
Unsigned Quadword */
- case 1027: /* Vector Absolute Difference Unsigned Byte */
- case 1091: /* Vector Absolute Difference Unsigned Halfword */
- case 1155: /* Vector Absolute Difference Unsigned Word */
- case 1796: /* Vector Shift Right Variable */
- case 1860: /* Vector Shift Left Variable */
- case 133: /* Vector Rotate Left Word then Mask Insert */
- case 197: /* Vector Rotate Left Doubleword then Mask Insert */
- case 389: /* Vector Rotate Left Word then AND with Mask */
- case 453: /* Vector Rotate Left Doubleword then AND with Mask */
- case 525: /* Vector Extract Unsigned Byte */
- case 589: /* Vector Extract Unsigned Halfword */
- case 653: /* Vector Extract Unsigned Word */
- case 717: /* Vector Extract Doubleword */
- case 15: /* Vector Insert Byte from VSR using GPR-specified
+ case 1027: /* Vector Absolute Difference Unsigned Byte */
+ case 1091: /* Vector Absolute Difference Unsigned Halfword */
+ case 1155: /* Vector Absolute Difference Unsigned Word */
+ case 1796: /* Vector Shift Right Variable */
+ case 1860: /* Vector Shift Left Variable */
+ case 133: /* Vector Rotate Left Word then Mask Insert */
+ case 197: /* Vector Rotate Left Doubleword then Mask Insert */
+ case 389: /* Vector Rotate Left Word then AND with Mask */
+ case 453: /* Vector Rotate Left Doubleword then AND with Mask */
+ case 525: /* Vector Extract Unsigned Byte */
+ case 589: /* Vector Extract Unsigned Halfword */
+ case 653: /* Vector Extract Unsigned Word */
+ case 717: /* Vector Extract Doubleword */
+ case 15: /* Vector Insert Byte from VSR using GPR-specified
Left-Index */
- case 79: /* Vector Insert Halfword from VSR using GPR-specified
+ case 79: /* Vector Insert Halfword from VSR using GPR-specified
Left-Index */
- case 143: /* Vector Insert Word from VSR using GPR-specified
+ case 143: /* Vector Insert Word from VSR using GPR-specified
Left-Index */
- case 207: /* Vector Insert Word from GPR using
+ case 207: /* Vector Insert Word from GPR using
immediate-specified index */
- case 463: /* Vector Insert Doubleword from GPR using
+ case 463: /* Vector Insert Doubleword from GPR using
immediate-specified index */
- case 271: /* Vector Insert Byte from VSR using GPR-specified
+ case 271: /* Vector Insert Byte from VSR using GPR-specified
Right-Index */
- case 335: /* Vector Insert Halfword from VSR using GPR-specified
+ case 335: /* Vector Insert Halfword from VSR using GPR-specified
Right-Index */
- case 399: /* Vector Insert Word from VSR using GPR-specified
+ case 399: /* Vector Insert Word from VSR using GPR-specified
Right-Index */
- case 527: /* Vector Insert Byte from GPR using GPR-specified
+ case 527: /* Vector Insert Byte from GPR using GPR-specified
Left-Index */
- case 591: /* Vector Insert Halfword from GPR using GPR-specified
+ case 591: /* Vector Insert Halfword from GPR using GPR-specified
Left-Index */
- case 655: /* Vector Insert Word from GPR using GPR-specified
+ case 655: /* Vector Insert Word from GPR using GPR-specified
Left-Index */
- case 719: /* Vector Insert Doubleword from GPR using
+ case 719: /* Vector Insert Doubleword from GPR using
GPR-specified Left-Index */
- case 783: /* Vector Insert Byte from GPR using GPR-specified
+ case 783: /* Vector Insert Byte from GPR using GPR-specified
Right-Index */
- case 847: /* Vector Insert Halfword from GPR using GPR-specified
+ case 847: /* Vector Insert Halfword from GPR using GPR-specified
Left-Index */
- case 911: /* Vector Insert Word from GPR using GPR-specified
+ case 911: /* Vector Insert Word from GPR using GPR-specified
Left-Index */
- case 975: /* Vector Insert Doubleword from GPR using
+ case 975: /* Vector Insert Doubleword from GPR using
GPR-specified Right-Index */
- case 781: /* Vector Insert Byte */
- case 845: /* Vector Insert Halfword */
- case 909: /* Vector Insert Word */
- case 973: /* Vector Insert Doubleword */
- case 1357: /* Vector Centrifuge Doubleword */
- case 1421: /* Vector Parallel Bits Extract Doubleword */
- case 1485: /* Vector Parallel Bits Deposit Doubleword */
+ case 781: /* Vector Insert Byte */
+ case 845: /* Vector Insert Halfword */
+ case 909: /* Vector Insert Word */
+ case 973: /* Vector Insert Doubleword */
+ case 1357: /* Vector Centrifuge Doubleword */
+ case 1421: /* Vector Parallel Bits Extract Doubleword */
+ case 1485: /* Vector Parallel Bits Deposit Doubleword */
record_full_arch_list_add_reg (regcache,
tdep->ppc_vr0_regnum + PPC_VRT (insn));
return 0;
- case 1228: /* Vector Gather every Nth Bit */
- case 1549: /* Vector Extract Unsigned Byte Left-Indexed */
- case 1613: /* Vector Extract Unsigned Halfword Left-Indexed */
- case 1677: /* Vector Extract Unsigned Word Left-Indexed */
- case 1805: /* Vector Extract Unsigned Byte Right-Indexed */
- case 1869: /* Vector Extract Unsigned Halfword Right-Indexed */
- case 1933: /* Vector Extract Unsigned Word Right-Indexed */
+ case 1228: /* Vector Gather every Nth Bit */
+ case 1549: /* Vector Extract Unsigned Byte Left-Indexed */
+ case 1613: /* Vector Extract Unsigned Halfword Left-Indexed */
+ case 1677: /* Vector Extract Unsigned Word Left-Indexed */
+ case 1805: /* Vector Extract Unsigned Byte Right-Indexed */
+ case 1869: /* Vector Extract Unsigned Halfword Right-Indexed */
+ case 1933: /* Vector Extract Unsigned Word Right-Indexed */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
- case 1604: /* Move To Vector Status and Control Register */
+ case 1604: /* Move To Vector Status and Control Register */
record_full_arch_list_add_reg (regcache, PPC_VSCR_REGNUM);
return 0;
- case 1540: /* Move From Vector Status and Control Register */
+ case 1540: /* Move From Vector Status and Control Register */
record_full_arch_list_add_reg (regcache,
tdep->ppc_vr0_regnum + PPC_VRT (insn));
return 0;
- case 833: /* Decimal Copy Sign */
+ case 833: /* Decimal Copy Sign */
record_full_arch_list_add_reg (regcache,
tdep->ppc_vr0_regnum + PPC_VRT (insn));
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
}
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, 4-%d.\n", insn, paddress (gdbarch, addr), ext);
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, 4-%d.\n",
+ insn, paddress (gdbarch, addr), ext);
return -1;
}
@@ -4773,11 +4658,11 @@ ppc_process_record_op6 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (subtype)
{
- case 0: /* Load VSX Vector Paired */
+ case 0: /* Load VSX Vector Paired */
ppc_record_vsr (regcache, tdep, PPC_XTp (insn));
ppc_record_vsr (regcache, tdep, PPC_XTp (insn) + 1);
return 0;
- case 1: /* Store VSX Vector Paired */
+ case 1: /* Store VSX Vector Paired */
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn), &ea);
@@ -4793,14 +4678,14 @@ ppc_process_record_op6 (struct gdbarch *gdbarch, struct regcache *regcache,
static int
ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn)
+ CORE_ADDR addr, uint32_t insn)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int ext = PPC_EXTOP (insn);
switch (ext & 0x01f)
{
- case 2: /* Add PC Immediate Shifted */
+ case 2: /* Add PC Immediate Shifted */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
@@ -4808,35 +4693,37 @@ ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
- case 0: /* Move Condition Register Field */
- case 33: /* Condition Register NOR */
- case 129: /* Condition Register AND with Complement */
- case 193: /* Condition Register XOR */
- case 225: /* Condition Register NAND */
- case 257: /* Condition Register AND */
- case 289: /* Condition Register Equivalent */
- case 417: /* Condition Register OR with Complement */
- case 449: /* Condition Register OR */
+ case 0: /* Move Condition Register Field */
+ case 33: /* Condition Register NOR */
+ case 129: /* Condition Register AND with Complement */
+ case 193: /* Condition Register XOR */
+ case 225: /* Condition Register NAND */
+ case 257: /* Condition Register AND */
+ case 289: /* Condition Register Equivalent */
+ case 417: /* Condition Register OR with Complement */
+ case 449: /* Condition Register OR */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 16: /* Branch Conditional */
- case 560: /* Branch Conditional to Branch Target Address Register */
+ case 16: /* Branch Conditional */
+ case 560: /* Branch Conditional to Branch Target Address Register */
if ((PPC_BO (insn) & 0x4) == 0)
record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum);
/* FALL-THROUGH */
- case 528: /* Branch Conditional to Count Register */
+ case 528: /* Branch Conditional to Count Register */
if (PPC_LK (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum);
return 0;
- case 150: /* Instruction Synchronize */
+ case 150: /* Instruction Synchronize */
/* Do nothing. */
return 0;
}
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, 19-%d.\n", insn, paddress (gdbarch, addr), ext);
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, 19-%d.\n",
+ insn, paddress (gdbarch, addr), ext);
return -1;
}
@@ -4846,18 +4733,17 @@ ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache,
static int
ppc_process_record_op31_177 (struct gdbarch *gdbarch,
- struct regcache *regcache,
- uint32_t insn)
+ struct regcache *regcache, uint32_t insn)
{
- int RA_opcode = PPC_RA(insn);
+ int RA_opcode = PPC_RA (insn);
int as = PPC_FIELD (insn, 6, 3);
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
switch (RA_opcode)
{
- case 0: /* VSX Move From Accumulator, xxmfacc */
- case 1: /* VSX Move To Accumulator, xxmtacc */
- case 3: /* VSX Set Accumulator to Zero, xxsetaccz */
+ case 0: /* VSX Move From Accumulator, xxmfacc */
+ case 1: /* VSX Move To Accumulator, xxmtacc */
+ case 3: /* VSX Set Accumulator to Zero, xxsetaccz */
ppc_record_ACC_fpscr (regcache, tdep, as, false);
return 0;
}
@@ -4869,7 +4755,7 @@ ppc_process_record_op31_177 (struct gdbarch *gdbarch,
static int
ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn)
+ CORE_ADDR addr, uint32_t insn)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int ext = PPC_EXTOP (insn);
@@ -4882,14 +4768,14 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext & 0x1ff)
{
/* These write RT and XER. Update CR if RC is set. */
- case 8: /* Subtract from carrying */
- case 10: /* Add carrying */
- case 136: /* Subtract from extended */
- case 138: /* Add extended */
- case 200: /* Subtract from zero extended */
- case 202: /* Add to zero extended */
- case 232: /* Subtract from minus one extended */
- case 234: /* Add to minus one extended */
+ case 8: /* Subtract from carrying */
+ case 10: /* Add carrying */
+ case 136: /* Subtract from extended */
+ case 138: /* Add extended */
+ case 200: /* Subtract from zero extended */
+ case 202: /* Add to zero extended */
+ case 232: /* Subtract from minus one extended */
+ case 234: /* Add to minus one extended */
/* CA is always altered, but SO/OV are only altered when OE=1.
In any case, XER is always altered. */
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
@@ -4900,26 +4786,26 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
/* These write RT. Update CR if RC is set and update XER if OE is set. */
- case 40: /* Subtract from */
- case 104: /* Negate */
- case 233: /* Multiply low doubleword */
- case 235: /* Multiply low word */
- case 266: /* Add */
- case 393: /* Divide Doubleword Extended Unsigned */
- case 395: /* Divide Word Extended Unsigned */
- case 425: /* Divide Doubleword Extended */
- case 427: /* Divide Word Extended */
- case 457: /* Divide Doubleword Unsigned */
- case 459: /* Divide Word Unsigned */
- case 489: /* Divide Doubleword */
- case 491: /* Divide Word */
+ case 40: /* Subtract from */
+ case 104: /* Negate */
+ case 233: /* Multiply low doubleword */
+ case 235: /* Multiply low word */
+ case 266: /* Add */
+ case 393: /* Divide Doubleword Extended Unsigned */
+ case 395: /* Divide Word Extended Unsigned */
+ case 425: /* Divide Doubleword Extended */
+ case 427: /* Divide Word Extended */
+ case 457: /* Divide Doubleword Unsigned */
+ case 459: /* Divide Word Unsigned */
+ case 489: /* Divide Doubleword */
+ case 491: /* Divide Word */
if (PPC_OE (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
/* FALL-THROUGH */
- case 9: /* Multiply High Doubleword Unsigned */
- case 11: /* Multiply High Word Unsigned */
- case 73: /* Multiply High Doubleword */
- case 75: /* Multiply High Word */
+ case 9: /* Multiply High Doubleword Unsigned */
+ case 11: /* Multiply High Word Unsigned */
+ case 73: /* Multiply High Doubleword */
+ case 75: /* Multiply High Word */
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache,
@@ -4946,7 +4832,7 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
- case 78: /* Determine Leftmost Zero Byte */
+ case 78: /* Determine Leftmost Zero Byte */
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
@@ -4955,112 +4841,112 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
/* These only write RT. */
- case 19: /* Move from condition register */
- /* Move From One Condition Register Field */
- case 74: /* Add and Generate Sixes */
- case 74 | 0x200: /* Add and Generate Sixes (bit-21 dont-care) */
- case 302: /* Move From Branch History Rolling Buffer */
- case 339: /* Move From Special Purpose Register */
- case 371: /* Move From Time Base [Phased-Out] */
- case 309: /* Load Doubleword Monitored Indexed */
- case 128: /* Set Boolean */
- case 384: /* Set Boolean Condition */
- case 416: /* Set Boolean Condition Reverse */
- case 448: /* Set Negative Boolean Condition */
- case 480: /* Set Negative Boolean Condition Reverse */
- case 755: /* Deliver A Random Number */
+ case 19: /* Move from condition register */
+ /* Move From One Condition Register Field */
+ case 74: /* Add and Generate Sixes */
+ case 74 | 0x200: /* Add and Generate Sixes (bit-21 dont-care) */
+ case 302: /* Move From Branch History Rolling Buffer */
+ case 339: /* Move From Special Purpose Register */
+ case 371: /* Move From Time Base [Phased-Out] */
+ case 309: /* Load Doubleword Monitored Indexed */
+ case 128: /* Set Boolean */
+ case 384: /* Set Boolean Condition */
+ case 416: /* Set Boolean Condition Reverse */
+ case 448: /* Set Negative Boolean Condition */
+ case 480: /* Set Negative Boolean Condition Reverse */
+ case 755: /* Deliver A Random Number */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
/* These only write to RA. */
- case 51: /* Move From VSR Doubleword */
- case 59: /* Count Leading Zeros Doubleword under bit Mask */
- case 115: /* Move From VSR Word and Zero */
- case 122: /* Population count bytes */
- case 155: /* Byte-Reverse Word */
- case 156: /* Parallel Bits Deposit Doubleword */
- case 187: /* Byte-Reverse Doubleword */
- case 188: /* Parallel Bits Extract Doubleword */
- case 219: /* Byte-Reverse Halfword */
- case 220: /* Centrifuge Doubleword */
- case 378: /* Population count words */
- case 506: /* Population count doublewords */
- case 154: /* Parity Word */
- case 186: /* Parity Doubleword */
- case 252: /* Bit Permute Doubleword */
- case 282: /* Convert Declets To Binary Coded Decimal */
- case 314: /* Convert Binary Coded Decimal To Declets */
- case 508: /* Compare bytes */
- case 307: /* Move From VSR Lower Doubleword */
- case 571: /* Count Trailing Zeros Doubleword under bit Mask */
+ case 51: /* Move From VSR Doubleword */
+ case 59: /* Count Leading Zeros Doubleword under bit Mask */
+ case 115: /* Move From VSR Word and Zero */
+ case 122: /* Population count bytes */
+ case 155: /* Byte-Reverse Word */
+ case 156: /* Parallel Bits Deposit Doubleword */
+ case 187: /* Byte-Reverse Doubleword */
+ case 188: /* Parallel Bits Extract Doubleword */
+ case 219: /* Byte-Reverse Halfword */
+ case 220: /* Centrifuge Doubleword */
+ case 378: /* Population count words */
+ case 506: /* Population count doublewords */
+ case 154: /* Parity Word */
+ case 186: /* Parity Doubleword */
+ case 252: /* Bit Permute Doubleword */
+ case 282: /* Convert Declets To Binary Coded Decimal */
+ case 314: /* Convert Binary Coded Decimal To Declets */
+ case 508: /* Compare bytes */
+ case 307: /* Move From VSR Lower Doubleword */
+ case 571: /* Count Trailing Zeros Doubleword under bit Mask */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
return 0;
/* These write CR and optional RA. */
- case 792: /* Shift Right Algebraic Word */
- case 794: /* Shift Right Algebraic Doubleword */
- case 824: /* Shift Right Algebraic Word Immediate */
- case 826: /* Shift Right Algebraic Doubleword Immediate (413) */
- case 826 | 1: /* Shift Right Algebraic Doubleword Immediate (413) */
+ case 792: /* Shift Right Algebraic Word */
+ case 794: /* Shift Right Algebraic Doubleword */
+ case 824: /* Shift Right Algebraic Word Immediate */
+ case 826: /* Shift Right Algebraic Doubleword Immediate (413) */
+ case 826 | 1: /* Shift Right Algebraic Doubleword Immediate (413) */
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 0: /* Compare */
- case 32: /* Compare logical */
- case 144: /* Move To Condition Register Fields */
- /* Move To One Condition Register Field */
- case 192: /* Compare Ranged Byte */
- case 224: /* Compare Equal Byte */
- case 576: /* Move XER to CR Extended */
- case 902: /* Paste (should always fail due to single-stepping and
+ case 0: /* Compare */
+ case 32: /* Compare logical */
+ case 144: /* Move To Condition Register Fields */
+ /* Move To One Condition Register Field */
+ case 192: /* Compare Ranged Byte */
+ case 224: /* Compare Equal Byte */
+ case 576: /* Move XER to CR Extended */
+ case 902: /* Paste (should always fail due to single-stepping and
the memory location might not be accessible, so
record only CR) */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
/* These write to RT. Update RA if 'update indexed.' */
- case 53: /* Load Doubleword with Update Indexed */
- case 119: /* Load Byte and Zero with Update Indexed */
- case 311: /* Load Halfword and Zero with Update Indexed */
- case 55: /* Load Word and Zero with Update Indexed */
- case 375: /* Load Halfword Algebraic with Update Indexed */
- case 373: /* Load Word Algebraic with Update Indexed */
+ case 53: /* Load Doubleword with Update Indexed */
+ case 119: /* Load Byte and Zero with Update Indexed */
+ case 311: /* Load Halfword and Zero with Update Indexed */
+ case 55: /* Load Word and Zero with Update Indexed */
+ case 375: /* Load Halfword Algebraic with Update Indexed */
+ case 373: /* Load Word Algebraic with Update Indexed */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 21: /* Load Doubleword Indexed */
- case 52: /* Load Byte And Reserve Indexed */
- case 116: /* Load Halfword And Reserve Indexed */
- case 20: /* Load Word And Reserve Indexed */
- case 84: /* Load Doubleword And Reserve Indexed */
- case 87: /* Load Byte and Zero Indexed */
- case 279: /* Load Halfword and Zero Indexed */
- case 23: /* Load Word and Zero Indexed */
- case 343: /* Load Halfword Algebraic Indexed */
- case 341: /* Load Word Algebraic Indexed */
- case 790: /* Load Halfword Byte-Reverse Indexed */
- case 534: /* Load Word Byte-Reverse Indexed */
- case 532: /* Load Doubleword Byte-Reverse Indexed */
- case 582: /* Load Word Atomic */
- case 614: /* Load Doubleword Atomic */
- case 265: /* Modulo Unsigned Doubleword */
- case 777: /* Modulo Signed Doubleword */
- case 267: /* Modulo Unsigned Word */
- case 779: /* Modulo Signed Word */
+ case 21: /* Load Doubleword Indexed */
+ case 52: /* Load Byte And Reserve Indexed */
+ case 116: /* Load Halfword And Reserve Indexed */
+ case 20: /* Load Word And Reserve Indexed */
+ case 84: /* Load Doubleword And Reserve Indexed */
+ case 87: /* Load Byte and Zero Indexed */
+ case 279: /* Load Halfword and Zero Indexed */
+ case 23: /* Load Word and Zero Indexed */
+ case 343: /* Load Halfword Algebraic Indexed */
+ case 341: /* Load Word Algebraic Indexed */
+ case 790: /* Load Halfword Byte-Reverse Indexed */
+ case 534: /* Load Word Byte-Reverse Indexed */
+ case 532: /* Load Doubleword Byte-Reverse Indexed */
+ case 582: /* Load Word Atomic */
+ case 614: /* Load Doubleword Atomic */
+ case 265: /* Modulo Unsigned Doubleword */
+ case 777: /* Modulo Signed Doubleword */
+ case 267: /* Modulo Unsigned Word */
+ case 779: /* Modulo Signed Word */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
- case 597: /* Load String Word Immediate */
- case 533: /* Load String Word Indexed */
+ case 597: /* Load String Word Immediate */
+ case 533: /* Load String Word Indexed */
if (ext == 597)
{
- nr = PPC_NB (insn);
- if (nr == 0)
- nr = 32;
+ nr = PPC_NB (insn);
+ if (nr == 0)
+ nr = 32;
}
else
{
@@ -5077,107 +4963,106 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
for (i = 0; i < nr; i++)
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum
- + ((PPC_RT (insn) + i) & 0x1f));
+ + ((PPC_RT (insn) + i) & 0x1f));
return 0;
- case 276: /* Load Quadword And Reserve Indexed */
+ case 276: /* Load Quadword And Reserve Indexed */
tmp = tdep->ppc_gp0_regnum + (PPC_RT (insn) & ~1);
record_full_arch_list_add_reg (regcache, tmp);
record_full_arch_list_add_reg (regcache, tmp + 1);
return 0;
/* These write VRT. */
- case 6: /* Load Vector for Shift Left Indexed */
- case 38: /* Load Vector for Shift Right Indexed */
- case 7: /* Load Vector Element Byte Indexed */
- case 39: /* Load Vector Element Halfword Indexed */
- case 71: /* Load Vector Element Word Indexed */
- case 103: /* Load Vector Indexed */
- case 359: /* Load Vector Indexed LRU */
+ case 6: /* Load Vector for Shift Left Indexed */
+ case 38: /* Load Vector for Shift Right Indexed */
+ case 7: /* Load Vector Element Byte Indexed */
+ case 39: /* Load Vector Element Halfword Indexed */
+ case 71: /* Load Vector Element Word Indexed */
+ case 103: /* Load Vector Indexed */
+ case 359: /* Load Vector Indexed LRU */
record_full_arch_list_add_reg (regcache,
tdep->ppc_vr0_regnum + PPC_VRT (insn));
return 0;
/* These write FRT. Update RA if 'update indexed.' */
- case 567: /* Load Floating-Point Single with Update Indexed */
- case 631: /* Load Floating-Point Double with Update Indexed */
+ case 567: /* Load Floating-Point Single with Update Indexed */
+ case 631: /* Load Floating-Point Double with Update Indexed */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 535: /* Load Floating-Point Single Indexed */
- case 599: /* Load Floating-Point Double Indexed */
- case 855: /* Load Floating-Point as Integer Word Algebraic Indexed */
- case 887: /* Load Floating-Point as Integer Word and Zero Indexed */
+ case 535: /* Load Floating-Point Single Indexed */
+ case 599: /* Load Floating-Point Double Indexed */
+ case 855: /* Load Floating-Point as Integer Word Algebraic Indexed */
+ case 887: /* Load Floating-Point as Integer Word and Zero Indexed */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
return 0;
- case 791: /* Load Floating-Point Double Pair Indexed */
+ case 791: /* Load Floating-Point Double Pair Indexed */
tmp = tdep->ppc_fp0_regnum + (PPC_FRT (insn) & ~1);
record_full_arch_list_add_reg (regcache, tmp);
record_full_arch_list_add_reg (regcache, tmp + 1);
return 0;
/* These write to destination register PPC_XT. */
- case 179: /* Move To VSR Doubleword */
- case 211: /* Move To VSR Word Algebraic */
- case 243: /* Move To VSR Word and Zero */
- case 588: /* Load VSX Scalar Doubleword Indexed */
- case 524: /* Load VSX Scalar Single-Precision Indexed */
- case 76: /* Load VSX Scalar as Integer Word Algebraic Indexed */
- case 12: /* Load VSX Scalar as Integer Word and Zero Indexed */
- case 13: /* Load VSX Vector Rightmost Byte Indexed */
- case 45: /* Load VSX Vector Rightmost Halfword Indexed */
- case 77: /* Load VSX Vector Rightmost Word Indexed */
- case 109: /* Load VSX Vector Rightmost Doubleword Indexed */
- case 844: /* Load VSX Vector Doubleword*2 Indexed */
- case 332: /* Load VSX Vector Doubleword & Splat Indexed */
- case 780: /* Load VSX Vector Word*4 Indexed */
- case 268: /* Load VSX Vector Indexed */
- case 364: /* Load VSX Vector Word & Splat Indexed */
- case 812: /* Load VSX Vector Halfword*8 Indexed */
- case 876: /* Load VSX Vector Byte*16 Indexed */
- case 269: /* Load VSX Vector with Length */
- case 301: /* Load VSX Vector Left-justified with Length */
- case 781: /* Load VSX Scalar as Integer Byte & Zero Indexed */
- case 813: /* Load VSX Scalar as Integer Halfword & Zero Indexed */
- case 403: /* Move To VSR Word & Splat */
- case 435: /* Move To VSR Double Doubleword */
+ case 179: /* Move To VSR Doubleword */
+ case 211: /* Move To VSR Word Algebraic */
+ case 243: /* Move To VSR Word and Zero */
+ case 588: /* Load VSX Scalar Doubleword Indexed */
+ case 524: /* Load VSX Scalar Single-Precision Indexed */
+ case 76: /* Load VSX Scalar as Integer Word Algebraic Indexed */
+ case 12: /* Load VSX Scalar as Integer Word and Zero Indexed */
+ case 13: /* Load VSX Vector Rightmost Byte Indexed */
+ case 45: /* Load VSX Vector Rightmost Halfword Indexed */
+ case 77: /* Load VSX Vector Rightmost Word Indexed */
+ case 109: /* Load VSX Vector Rightmost Doubleword Indexed */
+ case 844: /* Load VSX Vector Doubleword*2 Indexed */
+ case 332: /* Load VSX Vector Doubleword & Splat Indexed */
+ case 780: /* Load VSX Vector Word*4 Indexed */
+ case 268: /* Load VSX Vector Indexed */
+ case 364: /* Load VSX Vector Word & Splat Indexed */
+ case 812: /* Load VSX Vector Halfword*8 Indexed */
+ case 876: /* Load VSX Vector Byte*16 Indexed */
+ case 269: /* Load VSX Vector with Length */
+ case 301: /* Load VSX Vector Left-justified with Length */
+ case 781: /* Load VSX Scalar as Integer Byte & Zero Indexed */
+ case 813: /* Load VSX Scalar as Integer Halfword & Zero Indexed */
+ case 403: /* Move To VSR Word & Splat */
+ case 435: /* Move To VSR Double Doubleword */
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
- case 333: /* Load VSX Vector Paired Indexed */
+ case 333: /* Load VSX Vector Paired Indexed */
ppc_record_vsr (regcache, tdep, PPC_XTp (insn));
ppc_record_vsr (regcache, tdep, PPC_XTp (insn) + 1);
return 0;
/* These write RA. Update CR if RC is set. */
- case 24: /* Shift Left Word */
- case 26: /* Count Leading Zeros Word */
- case 27: /* Shift Left Doubleword */
- case 28: /* AND */
- case 58: /* Count Leading Zeros Doubleword */
- case 60: /* AND with Complement */
- case 124: /* NOR */
- case 284: /* Equivalent */
- case 316: /* XOR */
- case 476: /* NAND */
- case 412: /* OR with Complement */
- case 444: /* OR */
- case 536: /* Shift Right Word */
- case 539: /* Shift Right Doubleword */
- case 922: /* Extend Sign Halfword */
- case 954: /* Extend Sign Byte */
- case 986: /* Extend Sign Word */
- case 538: /* Count Trailing Zeros Word */
- case 570: /* Count Trailing Zeros Doubleword */
- case 890: /* Extend-Sign Word and Shift Left Immediate (445) */
- case 890 | 1: /* Extend-Sign Word and Shift Left Immediate (445) */
+ case 24: /* Shift Left Word */
+ case 26: /* Count Leading Zeros Word */
+ case 27: /* Shift Left Doubleword */
+ case 28: /* AND */
+ case 58: /* Count Leading Zeros Doubleword */
+ case 60: /* AND with Complement */
+ case 124: /* NOR */
+ case 284: /* Equivalent */
+ case 316: /* XOR */
+ case 476: /* NAND */
+ case 412: /* OR with Complement */
+ case 444: /* OR */
+ case 536: /* Shift Right Word */
+ case 539: /* Shift Right Doubleword */
+ case 922: /* Extend Sign Halfword */
+ case 954: /* Extend Sign Byte */
+ case 986: /* Extend Sign Word */
+ case 538: /* Count Trailing Zeros Word */
+ case 570: /* Count Trailing Zeros Doubleword */
+ case 890: /* Extend-Sign Word and Shift Left Immediate (445) */
+ case 890 | 1: /* Extend-Sign Word and Shift Left Immediate (445) */
if (ext == 444 && tdep->ppc_ppr_regnum >= 0
&& (PPC_RS (insn) == PPC_RA (insn))
- && (PPC_RA (insn) == PPC_RB (insn))
- && !PPC_RC (insn))
+ && (PPC_RA (insn) == PPC_RB (insn)) && !PPC_RC (insn))
{
/* or Rx,Rx,Rx alters PRI in PPR. */
record_full_arch_list_add_reg (regcache, tdep->ppc_ppr_regnum);
@@ -5191,46 +5076,46 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
/* Store memory. */
- case 181: /* Store Doubleword with Update Indexed */
- case 183: /* Store Word with Update Indexed */
- case 247: /* Store Byte with Update Indexed */
- case 439: /* Store Half Word with Update Indexed */
- case 695: /* Store Floating-Point Single with Update Indexed */
- case 759: /* Store Floating-Point Double with Update Indexed */
+ case 181: /* Store Doubleword with Update Indexed */
+ case 183: /* Store Word with Update Indexed */
+ case 247: /* Store Byte with Update Indexed */
+ case 439: /* Store Half Word with Update Indexed */
+ case 695: /* Store Floating-Point Single with Update Indexed */
+ case 759: /* Store Floating-Point Double with Update Indexed */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 135: /* Store Vector Element Byte Indexed */
- case 167: /* Store Vector Element Halfword Indexed */
- case 199: /* Store Vector Element Word Indexed */
- case 231: /* Store Vector Indexed */
- case 487: /* Store Vector Indexed LRU */
- case 716: /* Store VSX Scalar Doubleword Indexed */
- case 140: /* Store VSX Scalar as Integer Word Indexed */
- case 652: /* Store VSX Scalar Single-Precision Indexed */
- case 972: /* Store VSX Vector Doubleword*2 Indexed */
- case 908: /* Store VSX Vector Word*4 Indexed */
- case 149: /* Store Doubleword Indexed */
- case 151: /* Store Word Indexed */
- case 215: /* Store Byte Indexed */
- case 407: /* Store Half Word Indexed */
- case 694: /* Store Byte Conditional Indexed */
- case 726: /* Store Halfword Conditional Indexed */
- case 150: /* Store Word Conditional Indexed */
- case 214: /* Store Doubleword Conditional Indexed */
- case 182: /* Store Quadword Conditional Indexed */
- case 662: /* Store Word Byte-Reverse Indexed */
- case 918: /* Store Halfword Byte-Reverse Indexed */
- case 660: /* Store Doubleword Byte-Reverse Indexed */
- case 663: /* Store Floating-Point Single Indexed */
- case 727: /* Store Floating-Point Double Indexed */
- case 919: /* Store Floating-Point Double Pair Indexed */
- case 983: /* Store Floating-Point as Integer Word Indexed */
- case 396: /* Store VSX Vector Indexed */
- case 940: /* Store VSX Vector Halfword*8 Indexed */
- case 1004: /* Store VSX Vector Byte*16 Indexed */
- case 909: /* Store VSX Scalar as Integer Byte Indexed */
- case 941: /* Store VSX Scalar as Integer Halfword Indexed */
+ case 135: /* Store Vector Element Byte Indexed */
+ case 167: /* Store Vector Element Halfword Indexed */
+ case 199: /* Store Vector Element Word Indexed */
+ case 231: /* Store Vector Indexed */
+ case 487: /* Store Vector Indexed LRU */
+ case 716: /* Store VSX Scalar Doubleword Indexed */
+ case 140: /* Store VSX Scalar as Integer Word Indexed */
+ case 652: /* Store VSX Scalar Single-Precision Indexed */
+ case 972: /* Store VSX Vector Doubleword*2 Indexed */
+ case 908: /* Store VSX Vector Word*4 Indexed */
+ case 149: /* Store Doubleword Indexed */
+ case 151: /* Store Word Indexed */
+ case 215: /* Store Byte Indexed */
+ case 407: /* Store Half Word Indexed */
+ case 694: /* Store Byte Conditional Indexed */
+ case 726: /* Store Halfword Conditional Indexed */
+ case 150: /* Store Word Conditional Indexed */
+ case 214: /* Store Doubleword Conditional Indexed */
+ case 182: /* Store Quadword Conditional Indexed */
+ case 662: /* Store Word Byte-Reverse Indexed */
+ case 918: /* Store Halfword Byte-Reverse Indexed */
+ case 660: /* Store Doubleword Byte-Reverse Indexed */
+ case 663: /* Store Floating-Point Single Indexed */
+ case 727: /* Store Floating-Point Double Indexed */
+ case 919: /* Store Floating-Point Double Pair Indexed */
+ case 983: /* Store Floating-Point as Integer Word Indexed */
+ case 396: /* Store VSX Vector Indexed */
+ case 940: /* Store VSX Vector Halfword*8 Indexed */
+ case 1004: /* Store VSX Vector Byte*16 Indexed */
+ case 909: /* Store VSX Scalar as Integer Byte Indexed */
+ case 941: /* Store VSX Scalar as Integer Halfword Indexed */
if (ext == 694 || ext == 726 || ext == 150 || ext == 214 || ext == 182)
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
@@ -5244,51 +5129,51 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
- case 183: /* Store Word with Update Indexed */
- case 199: /* Store Vector Element Word Indexed */
- case 140: /* Store VSX Scalar as Integer Word Indexed */
- case 652: /* Store VSX Scalar Single-Precision Indexed */
- case 151: /* Store Word Indexed */
- case 150: /* Store Word Conditional Indexed */
- case 662: /* Store Word Byte-Reverse Indexed */
- case 663: /* Store Floating-Point Single Indexed */
- case 695: /* Store Floating-Point Single with Update Indexed */
- case 983: /* Store Floating-Point as Integer Word Indexed */
+ case 183: /* Store Word with Update Indexed */
+ case 199: /* Store Vector Element Word Indexed */
+ case 140: /* Store VSX Scalar as Integer Word Indexed */
+ case 652: /* Store VSX Scalar Single-Precision Indexed */
+ case 151: /* Store Word Indexed */
+ case 150: /* Store Word Conditional Indexed */
+ case 662: /* Store Word Byte-Reverse Indexed */
+ case 663: /* Store Floating-Point Single Indexed */
+ case 695: /* Store Floating-Point Single with Update Indexed */
+ case 983: /* Store Floating-Point as Integer Word Indexed */
size = 4;
break;
- case 247: /* Store Byte with Update Indexed */
- case 135: /* Store Vector Element Byte Indexed */
- case 215: /* Store Byte Indexed */
- case 694: /* Store Byte Conditional Indexed */
- case 909: /* Store VSX Scalar as Integer Byte Indexed */
+ case 247: /* Store Byte with Update Indexed */
+ case 135: /* Store Vector Element Byte Indexed */
+ case 215: /* Store Byte Indexed */
+ case 694: /* Store Byte Conditional Indexed */
+ case 909: /* Store VSX Scalar as Integer Byte Indexed */
size = 1;
break;
- case 439: /* Store Halfword with Update Indexed */
- case 167: /* Store Vector Element Halfword Indexed */
- case 407: /* Store Halfword Indexed */
- case 726: /* Store Halfword Conditional Indexed */
- case 918: /* Store Halfword Byte-Reverse Indexed */
- case 941: /* Store VSX Scalar as Integer Halfword Indexed */
+ case 439: /* Store Halfword with Update Indexed */
+ case 167: /* Store Vector Element Halfword Indexed */
+ case 407: /* Store Halfword Indexed */
+ case 726: /* Store Halfword Conditional Indexed */
+ case 918: /* Store Halfword Byte-Reverse Indexed */
+ case 941: /* Store VSX Scalar as Integer Halfword Indexed */
size = 2;
break;
- case 181: /* Store Doubleword with Update Indexed */
- case 716: /* Store VSX Scalar Doubleword Indexed */
- case 149: /* Store Doubleword Indexed */
- case 214: /* Store Doubleword Conditional Indexed */
- case 660: /* Store Doubleword Byte-Reverse Indexed */
- case 727: /* Store Floating-Point Double Indexed */
- case 759: /* Store Floating-Point Double with Update Indexed */
+ case 181: /* Store Doubleword with Update Indexed */
+ case 716: /* Store VSX Scalar Doubleword Indexed */
+ case 149: /* Store Doubleword Indexed */
+ case 214: /* Store Doubleword Conditional Indexed */
+ case 660: /* Store Doubleword Byte-Reverse Indexed */
+ case 727: /* Store Floating-Point Double Indexed */
+ case 759: /* Store Floating-Point Double with Update Indexed */
size = 8;
break;
- case 972: /* Store VSX Vector Doubleword*2 Indexed */
- case 908: /* Store VSX Vector Word*4 Indexed */
- case 182: /* Store Quadword Conditional Indexed */
- case 231: /* Store Vector Indexed */
- case 487: /* Store Vector Indexed LRU */
- case 919: /* Store Floating-Point Double Pair Indexed */
- case 396: /* Store VSX Vector Indexed */
- case 940: /* Store VSX Vector Halfword*8 Indexed */
- case 1004: /* Store VSX Vector Byte*16 Indexed */
+ case 972: /* Store VSX Vector Doubleword*2 Indexed */
+ case 908: /* Store VSX Vector Word*4 Indexed */
+ case 182: /* Store Quadword Conditional Indexed */
+ case 231: /* Store Vector Indexed */
+ case 487: /* Store Vector Indexed LRU */
+ case 919: /* Store Floating-Point Double Pair Indexed */
+ case 396: /* Store VSX Vector Indexed */
+ case 940: /* Store VSX Vector Halfword*8 Indexed */
+ case 1004: /* Store VSX Vector Byte*16 Indexed */
size = 16;
break;
default:
@@ -5298,16 +5183,16 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
/* Align address for Store Vector instructions. */
switch (ext)
{
- case 167: /* Store Vector Element Halfword Indexed */
+ case 167: /* Store Vector Element Halfword Indexed */
ea = ea & ~0x1ULL;
break;
- case 199: /* Store Vector Element Word Indexed */
+ case 199: /* Store Vector Element Word Indexed */
ea = ea & ~0x3ULL;
break;
- case 231: /* Store Vector Indexed */
- case 487: /* Store Vector Indexed LRU */
+ case 231: /* Store Vector Indexed */
+ case 487: /* Store Vector Indexed LRU */
ea = ea & ~0xfULL;
break;
}
@@ -5315,19 +5200,23 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_mem (ea, size);
return 0;
- case 141: /* Store VSX Vector Rightmost Byte Indexed */
- case 173: /* Store VSX Vector Rightmost Halfword Indexed */
- case 205: /* Store VSX Vector Rightmost Word Indexed */
- case 237: /* Store VSX Vector Rightmost Doubleword Indexed */
- switch(ext)
+ case 141: /* Store VSX Vector Rightmost Byte Indexed */
+ case 173: /* Store VSX Vector Rightmost Halfword Indexed */
+ case 205: /* Store VSX Vector Rightmost Word Indexed */
+ case 237: /* Store VSX Vector Rightmost Doubleword Indexed */
+ switch (ext)
{
- case 141: nb = 1;
+ case 141:
+ nb = 1;
break;
- case 173: nb = 2;
+ case 173:
+ nb = 2;
break;
- case 205: nb = 4;
+ case 205:
+ nb = 4;
break;
- case 237: nb = 8;
+ case 237:
+ nb = 8;
break;
}
ra = 0;
@@ -5335,13 +5224,13 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
regcache_raw_read_unsigned (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn), &ra);
regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum + PPC_RB (insn), &rb);
+ tdep->ppc_gp0_regnum + PPC_RB (insn), &rb);
ea = ra + rb;
record_full_arch_list_add_mem (ea, nb);
return 0;
- case 397: /* Store VSX Vector with Length */
- case 429: /* Store VSX Vector Left-justified with Length */
+ case 397: /* Store VSX Vector with Length */
+ case 429: /* Store VSX Vector Left-justified with Length */
ra = 0;
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
@@ -5355,12 +5244,12 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_mem (ea, nb);
return 0;
- case 461: /* Store VSX Vector Paired Indexed */
+ case 461: /* Store VSX Vector Paired Indexed */
{
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RA (insn), &ea);
+ tdep->ppc_gp0_regnum + PPC_RA (insn),
+ &ea);
regcache_raw_read_unsigned (regcache,
tdep->ppc_gp0_regnum + PPC_RB (insn), &rb);
ea += rb;
@@ -5368,8 +5257,8 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
}
- case 710: /* Store Word Atomic */
- case 742: /* Store Doubleword Atomic */
+ case 710: /* Store Word Atomic */
+ case 742: /* Store Doubleword Atomic */
ra = 0;
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
@@ -5377,10 +5266,10 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
ea = ra;
switch (ext)
{
- case 710: /* Store Word Atomic */
+ case 710: /* Store Word Atomic */
size = 8;
break;
- case 742: /* Store Doubleword Atomic */
+ case 742: /* Store Doubleword Atomic */
size = 16;
break;
default:
@@ -5389,7 +5278,7 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_mem (ea, size);
return 0;
- case 725: /* Store String Word Immediate */
+ case 725: /* Store String Word Immediate */
ra = 0;
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
@@ -5404,7 +5293,7 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
- case 661: /* Store String Word Indexed */
+ case 661: /* Store String Word Indexed */
ra = 0;
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
@@ -5425,31 +5314,31 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
- case 467: /* Move To Special Purpose Register */
+ case 467: /* Move To Special Purpose Register */
switch (PPC_SPR (insn))
{
- case 1: /* XER */
+ case 1: /* XER */
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
return 0;
- case 3: /* DSCR */
+ case 3: /* DSCR */
if (tdep->ppc_dscr_regnum >= 0)
record_full_arch_list_add_reg (regcache, tdep->ppc_dscr_regnum);
return 0;
- case 8: /* LR */
+ case 8: /* LR */
record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum);
return 0;
- case 9: /* CTR */
+ case 9: /* CTR */
record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum);
return 0;
- case 256: /* VRSAVE */
+ case 256: /* VRSAVE */
record_full_arch_list_add_reg (regcache, tdep->ppc_vrsave_regnum);
return 0;
- case 815: /* TAR */
+ case 815: /* TAR */
if (tdep->ppc_tar_regnum >= 0)
record_full_arch_list_add_reg (regcache, tdep->ppc_tar_regnum);
return 0;
case 896:
- case 898: /* PPR */
+ case 898: /* PPR */
if (tdep->ppc_ppr_regnum >= 0)
record_full_arch_list_add_reg (regcache, tdep->ppc_ppr_regnum);
return 0;
@@ -5457,50 +5346,49 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
goto UNKNOWN_OP;
- case 147: /* Move To Split Little Endian */
+ case 147: /* Move To Split Little Endian */
record_full_arch_list_add_reg (regcache, tdep->ppc_ps_regnum);
return 0;
- case 512: /* Move to Condition Register from XER */
+ case 512: /* Move to Condition Register from XER */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
return 0;
- case 4: /* Trap Word */
- case 68: /* Trap Doubleword */
- case 430: /* Clear BHRB */
- case 598: /* Synchronize */
- case 62: /* Wait for Interrupt */
- case 30: /* Wait */
- case 22: /* Instruction Cache Block Touch */
- case 854: /* Enforce In-order Execution of I/O */
- case 246: /* Data Cache Block Touch for Store */
- case 54: /* Data Cache Block Store */
- case 86: /* Data Cache Block Flush */
- case 278: /* Data Cache Block Touch */
- case 758: /* Data Cache Block Allocate */
- case 982: /* Instruction Cache Block Invalidate */
- case 774: /* Copy */
- case 838: /* CP_Abort */
+ case 4: /* Trap Word */
+ case 68: /* Trap Doubleword */
+ case 430: /* Clear BHRB */
+ case 598: /* Synchronize */
+ case 62: /* Wait for Interrupt */
+ case 30: /* Wait */
+ case 22: /* Instruction Cache Block Touch */
+ case 854: /* Enforce In-order Execution of I/O */
+ case 246: /* Data Cache Block Touch for Store */
+ case 54: /* Data Cache Block Store */
+ case 86: /* Data Cache Block Flush */
+ case 278: /* Data Cache Block Touch */
+ case 758: /* Data Cache Block Allocate */
+ case 982: /* Instruction Cache Block Invalidate */
+ case 774: /* Copy */
+ case 838: /* CP_Abort */
return 0;
- case 654: /* Transaction Begin */
- case 686: /* Transaction End */
- case 750: /* Transaction Suspend or Resume */
- case 782: /* Transaction Abort Word Conditional */
- case 814: /* Transaction Abort Doubleword Conditional */
- case 846: /* Transaction Abort Word Conditional Immediate */
- case 878: /* Transaction Abort Doubleword Conditional Immediate */
- case 910: /* Transaction Abort */
+ case 654: /* Transaction Begin */
+ case 686: /* Transaction End */
+ case 750: /* Transaction Suspend or Resume */
+ case 782: /* Transaction Abort Word Conditional */
+ case 814: /* Transaction Abort Doubleword Conditional */
+ case 846: /* Transaction Abort Word Conditional Immediate */
+ case 878: /* Transaction Abort Doubleword Conditional Immediate */
+ case 910: /* Transaction Abort */
record_full_arch_list_add_reg (regcache, tdep->ppc_ps_regnum);
/* FALL-THROUGH */
- case 718: /* Transaction Check */
+ case 718: /* Transaction Check */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 1014: /* Data Cache Block set to Zero */
- if (target_auxv_search (AT_DCACHEBSIZE, &at_dcsz) <= 0
- || at_dcsz == 0)
+ case 1014: /* Data Cache Block set to Zero */
+ if (target_auxv_search (AT_DCACHEBSIZE, &at_dcsz) <= 0 || at_dcsz == 0)
at_dcsz = 128; /* Assume 128-byte cache line size (POWER8) */
ra = 0;
@@ -5519,8 +5407,10 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
}
UNKNOWN_OP:
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, 31-%d.\n", insn, paddress (gdbarch, addr), ext);
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, 31-%d.\n",
+ insn, paddress (gdbarch, addr), ext);
return -1;
}
@@ -5541,17 +5431,17 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext & 0x1f)
{
- case 18: /* Floating Divide */
- case 20: /* Floating Subtract */
- case 21: /* Floating Add */
- case 22: /* Floating Square Root */
- case 24: /* Floating Reciprocal Estimate */
- case 25: /* Floating Multiply */
- case 26: /* Floating Reciprocal Square Root Estimate */
- case 28: /* Floating Multiply-Subtract */
- case 29: /* Floating Multiply-Add */
- case 30: /* Floating Negative Multiply-Subtract */
- case 31: /* Floating Negative Multiply-Add */
+ case 18: /* Floating Divide */
+ case 20: /* Floating Subtract */
+ case 21: /* Floating Add */
+ case 22: /* Floating Square Root */
+ case 24: /* Floating Reciprocal Estimate */
+ case 25: /* Floating Multiply */
+ case 26: /* Floating Reciprocal Square Root Estimate */
+ case 28: /* Floating Multiply-Subtract */
+ case 29: /* Floating Multiply-Add */
+ case 30: /* Floating Negative Multiply-Subtract */
+ case 31: /* Floating Negative Multiply-Add */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
@@ -5562,70 +5452,70 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
}
/* MMA instructions, keep looking. */
- switch (ext >> 2) /* Additional opcode field is upper 8-bits of ext */
+ switch (ext >> 2) /* Additional opcode field is upper 8-bits of ext */
{
- case 3: /* VSX Vector 8-bit Signed/Unsigned Integer GER, xvi8ger4 */
- case 2: /* VSX Vector 8-bit Signed/Unsigned Integer GER Positive
+ case 3: /* VSX Vector 8-bit Signed/Unsigned Integer GER, xvi8ger4 */
+ case 2: /* VSX Vector 8-bit Signed/Unsigned Integer GER Positive
multiply, Positive accumulate, xvi8ger4pp */
- case 99: /* VSX Vector 8-bit Signed/Unsigned Integer GER with
+ case 99: /* VSX Vector 8-bit Signed/Unsigned Integer GER with
Saturate Positive multiply, Positive accumulate,
xvi8ger4spp */
- case 35: /* VSX Vector 4-bit Signed Integer GER, xvi4ger8 */
- case 34: /* VSX Vector 4-bit Signed Integer GER Positive multiply,
+ case 35: /* VSX Vector 4-bit Signed Integer GER, xvi4ger8 */
+ case 34: /* VSX Vector 4-bit Signed Integer GER Positive multiply,
Positive accumulate, xvi4ger8pp */
- case 75: /* VSX Vector 16-bit Signed Integer GER, xvi16ger2 */
- case 107: /* VSX Vector 16-bit Signed Integer GER Positive multiply,
+ case 75: /* VSX Vector 16-bit Signed Integer GER, xvi16ger2 */
+ case 107: /* VSX Vector 16-bit Signed Integer GER Positive multiply,
Positive accumulate, xvi16ger2pp */
- case 43: /* VSX Vector 16-bit Signed Integer GER with Saturation,
+ case 43: /* VSX Vector 16-bit Signed Integer GER with Saturation,
xvi16ger2s */
- case 42: /* VSX Vector 16-bit Signed Integer GER with Saturation
+ case 42: /* VSX Vector 16-bit Signed Integer GER with Saturation
Positive multiply, Positive accumulate, xvi16ger2spp */
ppc_record_ACC_fpscr (regcache, tdep, at, false);
return 0;
- case 19: /* VSX Vector 16-bit Floating-Point GER, xvf16ger2 */
- case 18: /* VSX Vector 16-bit Floating-Point GER Positive multiply,
+ case 19: /* VSX Vector 16-bit Floating-Point GER, xvf16ger2 */
+ case 18: /* VSX Vector 16-bit Floating-Point GER Positive multiply,
Positive accumulate, xvf16ger2pp */
- case 146: /* VSX Vector 16-bit Floating-Point GER Positive multiply,
+ case 146: /* VSX Vector 16-bit Floating-Point GER Positive multiply,
Negative accumulate, xvf16ger2pn */
- case 82: /* VSX Vector 16-bit Floating-Point GER Negative multiply,
+ case 82: /* VSX Vector 16-bit Floating-Point GER Negative multiply,
Positive accumulate, xvf16ger2np */
- case 210: /* VSX Vector 16-bit Floating-Point GER Negative multiply,
+ case 210: /* VSX Vector 16-bit Floating-Point GER Negative multiply,
Negative accumulate, xvf16ger2nn */
- case 27: /* VSX Vector 32-bit Floating-Point GER, xvf32ger */
- case 26: /* VSX Vector 32-bit Floating-Point GER Positive multiply,
+ case 27: /* VSX Vector 32-bit Floating-Point GER, xvf32ger */
+ case 26: /* VSX Vector 32-bit Floating-Point GER Positive multiply,
Positive accumulate, xvf32gerpp */
- case 154: /* VSX Vector 32-bit Floating-Point GER Positive multiply,
+ case 154: /* VSX Vector 32-bit Floating-Point GER Positive multiply,
Negative accumulate, xvf32gerpn */
- case 90: /* VSX Vector 32-bit Floating-Point GER Negative multiply,
+ case 90: /* VSX Vector 32-bit Floating-Point GER Negative multiply,
Positive accumulate, xvf32gernp */
- case 218: /* VSX Vector 32-bit Floating-Point GER Negative multiply,
+ case 218: /* VSX Vector 32-bit Floating-Point GER Negative multiply,
Negative accumulate, xvf32gernn */
- case 59: /* VSX Vector 64-bit Floating-Point GER, pmdmxvf64ger
+ case 59: /* VSX Vector 64-bit Floating-Point GER, pmdmxvf64ger
(pmxvf64ger) */
- case 58: /* VSX Vector 64-bit Floating-Point GER Positive multiply,
+ case 58: /* VSX Vector 64-bit Floating-Point GER Positive multiply,
Positive accumulate, xvf64gerpp */
- case 186: /* VSX Vector 64-bit Floating-Point GER Positive multiply,
+ case 186: /* VSX Vector 64-bit Floating-Point GER Positive multiply,
Negative accumulate, xvf64gerpn */
- case 122: /* VSX Vector 64-bit Floating-Point GER Negative multiply,
+ case 122: /* VSX Vector 64-bit Floating-Point GER Negative multiply,
Positive accumulate, xvf64gernp */
- case 250: /* VSX Vector 64-bit Floating-Point GER Negative multiply,
+ case 250: /* VSX Vector 64-bit Floating-Point GER Negative multiply,
Negative accumulate, pmdmxvf64gernn (pmxvf64gernn) */
- case 51: /* VSX Vector bfloat16 GER, xvbf16ger2 */
- case 50: /* VSX Vector bfloat16 GER Positive multiply,
+ case 51: /* VSX Vector bfloat16 GER, xvbf16ger2 */
+ case 50: /* VSX Vector bfloat16 GER Positive multiply,
Positive accumulate, xvbf16ger2pp */
- case 178: /* VSX Vector bfloat16 GER Positive multiply,
+ case 178: /* VSX Vector bfloat16 GER Positive multiply,
Negative accumulate, xvbf16ger2pn */
- case 114: /* VSX Vector bfloat16 GER Negative multiply,
+ case 114: /* VSX Vector bfloat16 GER Negative multiply,
Positive accumulate, xvbf16ger2np */
- case 242: /* VSX Vector bfloat16 GER Negative multiply,
+ case 242: /* VSX Vector bfloat16 GER Negative multiply,
Negative accumulate, xvbf16ger2nn */
ppc_record_ACC_fpscr (regcache, tdep, at, true);
return 0;
@@ -5633,20 +5523,20 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
- case 2: /* DFP Add */
- case 3: /* DFP Quantize */
- case 34: /* DFP Multiply */
- case 35: /* DFP Reround */
- case 67: /* DFP Quantize Immediate */
- case 99: /* DFP Round To FP Integer With Inexact */
- case 227: /* DFP Round To FP Integer Without Inexact */
- case 258: /* DFP Convert To DFP Long! */
- case 290: /* DFP Convert To Fixed */
- case 514: /* DFP Subtract */
- case 546: /* DFP Divide */
- case 770: /* DFP Round To DFP Short! */
- case 802: /* DFP Convert From Fixed */
- case 834: /* DFP Encode BCD To DPD */
+ case 2: /* DFP Add */
+ case 3: /* DFP Quantize */
+ case 34: /* DFP Multiply */
+ case 35: /* DFP Reround */
+ case 67: /* DFP Quantize Immediate */
+ case 99: /* DFP Round To FP Integer With Inexact */
+ case 227: /* DFP Round To FP Integer Without Inexact */
+ case 258: /* DFP Convert To DFP Long! */
+ case 290: /* DFP Convert To Fixed */
+ case 514: /* DFP Subtract */
+ case 546: /* DFP Divide */
+ case 770: /* DFP Round To DFP Short! */
+ case 802: /* DFP Convert From Fixed */
+ case 834: /* DFP Encode BCD To DPD */
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache,
@@ -5654,30 +5544,30 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 130: /* DFP Compare Ordered */
- case 162: /* DFP Test Exponent */
- case 194: /* DFP Test Data Class */
- case 226: /* DFP Test Data Group */
- case 642: /* DFP Compare Unordered */
- case 674: /* DFP Test Significance */
- case 675: /* DFP Test Significance Immediate */
+ case 130: /* DFP Compare Ordered */
+ case 162: /* DFP Test Exponent */
+ case 194: /* DFP Test Data Class */
+ case 226: /* DFP Test Data Group */
+ case 642: /* DFP Compare Unordered */
+ case 674: /* DFP Test Significance */
+ case 675: /* DFP Test Significance Immediate */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 66: /* DFP Shift Significand Left Immediate */
- case 98: /* DFP Shift Significand Right Immediate */
- case 322: /* DFP Decode DPD To BCD */
- case 354: /* DFP Extract Biased Exponent */
- case 866: /* DFP Insert Biased Exponent */
+ case 66: /* DFP Shift Significand Left Immediate */
+ case 98: /* DFP Shift Significand Right Immediate */
+ case 322: /* DFP Decode DPD To BCD */
+ case 354: /* DFP Extract Biased Exponent */
+ case 866: /* DFP Insert Biased Exponent */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 846: /* Floating Convert From Integer Doubleword Single */
- case 974: /* Floating Convert From Integer Doubleword Unsigned
+ case 846: /* Floating Convert From Integer Doubleword Single */
+ case 974: /* Floating Convert From Integer Doubleword Unsigned
Single */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
@@ -5688,8 +5578,10 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
}
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, 59-%d.\n", insn, paddress (gdbarch, addr), ext);
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, 59-%d.\n",
+ insn, paddress (gdbarch, addr), ext);
return -1;
}
@@ -5698,36 +5590,36 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
static int
ppc_process_record_op60_XX2 (struct gdbarch *gdbarch,
- struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn)
+ struct regcache *regcache, CORE_ADDR addr,
+ uint32_t insn)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
- int RA_opcode = PPC_RA(insn);
+ int RA_opcode = PPC_RA (insn);
switch (RA_opcode)
{
- case 2: /* VSX Vector Test Least-Significant Bit by Byte */
- case 25: /* VSX Vector round and Convert Single-Precision format
+ case 2: /* VSX Vector Test Least-Significant Bit by Byte */
+ case 25: /* VSX Vector round and Convert Single-Precision format
to Half-Precision format. Only changes the CR
field. */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 17: /* VSX Vector Convert with round Single-Precision
+ case 17: /* VSX Vector Convert with round Single-Precision
to bfloat16 format */
- case 24: /* VSX Vector Convert Half-Precision format to
+ case 24: /* VSX Vector Convert Half-Precision format to
Single-Precision format */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* Fall-through */
- case 0: /* VSX Vector Extract Exponent Double-Precision */
- case 1: /* VSX Vector Extract Significand Double-Precision */
- case 7: /* VSX Vector Byte-Reverse Halfword */
- case 8: /* VSX Vector Extract Exponent Single-Precision */
- case 9: /* VSX Vector Extract Significand Single-Precision */
- case 15: /* VSX Vector Byte-Reverse Word */
- case 16: /* VSX Vector Convert bfloat16 to Single-Precision
+ case 0: /* VSX Vector Extract Exponent Double-Precision */
+ case 1: /* VSX Vector Extract Significand Double-Precision */
+ case 7: /* VSX Vector Byte-Reverse Halfword */
+ case 8: /* VSX Vector Extract Exponent Single-Precision */
+ case 9: /* VSX Vector Extract Significand Single-Precision */
+ case 15: /* VSX Vector Byte-Reverse Word */
+ case 16: /* VSX Vector Convert bfloat16 to Single-Precision
format Non-signaling */
- case 23: /* VSX Vector Byte-Reverse Doubleword */
- case 31: /* VSX Vector Byte-Reverse Quadword */
+ case 23: /* VSX Vector Byte-Reverse Doubleword */
+ case 31: /* VSX Vector Byte-Reverse Quadword */
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
}
@@ -5740,118 +5632,118 @@ ppc_process_record_op60_XX2 (struct gdbarch *gdbarch,
static int
ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn)
+ CORE_ADDR addr, uint32_t insn)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int ext = PPC_EXTOP (insn);
switch (ext >> 2)
{
- case 0: /* VSX Scalar Add Single-Precision */
- case 32: /* VSX Scalar Add Double-Precision */
- case 24: /* VSX Scalar Divide Single-Precision */
- case 56: /* VSX Scalar Divide Double-Precision */
- case 176: /* VSX Scalar Copy Sign Double-Precision */
- case 33: /* VSX Scalar Multiply-Add Double-Precision */
- case 41: /* ditto */
- case 1: /* VSX Scalar Multiply-Add Single-Precision */
- case 9: /* ditto */
- case 160: /* VSX Scalar Maximum Double-Precision */
- case 168: /* VSX Scalar Minimum Double-Precision */
- case 49: /* VSX Scalar Multiply-Subtract Double-Precision */
- case 57: /* ditto */
- case 17: /* VSX Scalar Multiply-Subtract Single-Precision */
- case 25: /* ditto */
- case 48: /* VSX Scalar Multiply Double-Precision */
- case 16: /* VSX Scalar Multiply Single-Precision */
- case 161: /* VSX Scalar Negative Multiply-Add Double-Precision */
- case 169: /* ditto */
- case 129: /* VSX Scalar Negative Multiply-Add Single-Precision */
- case 137: /* ditto */
- case 177: /* VSX Scalar Negative Multiply-Subtract Double-Precision */
- case 185: /* ditto */
- case 145: /* VSX Scalar Negative Multiply-Subtract Single-Precision */
- case 153: /* ditto */
- case 40: /* VSX Scalar Subtract Double-Precision */
- case 8: /* VSX Scalar Subtract Single-Precision */
- case 96: /* VSX Vector Add Double-Precision */
- case 64: /* VSX Vector Add Single-Precision */
- case 120: /* VSX Vector Divide Double-Precision */
- case 88: /* VSX Vector Divide Single-Precision */
- case 97: /* VSX Vector Multiply-Add Double-Precision */
- case 105: /* ditto */
- case 65: /* VSX Vector Multiply-Add Single-Precision */
- case 73: /* ditto */
- case 224: /* VSX Vector Maximum Double-Precision */
- case 192: /* VSX Vector Maximum Single-Precision */
- case 232: /* VSX Vector Minimum Double-Precision */
- case 200: /* VSX Vector Minimum Single-Precision */
- case 113: /* VSX Vector Multiply-Subtract Double-Precision */
- case 121: /* ditto */
- case 81: /* VSX Vector Multiply-Subtract Single-Precision */
- case 89: /* ditto */
- case 112: /* VSX Vector Multiply Double-Precision */
- case 80: /* VSX Vector Multiply Single-Precision */
- case 225: /* VSX Vector Negative Multiply-Add Double-Precision */
- case 233: /* ditto */
- case 193: /* VSX Vector Negative Multiply-Add Single-Precision */
- case 201: /* ditto */
- case 241: /* VSX Vector Negative Multiply-Subtract Double-Precision */
- case 249: /* ditto */
- case 209: /* VSX Vector Negative Multiply-Subtract Single-Precision */
- case 217: /* ditto */
- case 104: /* VSX Vector Subtract Double-Precision */
- case 72: /* VSX Vector Subtract Single-Precision */
- case 128: /* VSX Scalar Maximum Type-C Double-Precision */
- case 136: /* VSX Scalar Minimum Type-C Double-Precision */
- case 144: /* VSX Scalar Maximum Type-J Double-Precision */
- case 152: /* VSX Scalar Minimum Type-J Double-Precision */
- case 3: /* VSX Scalar Compare Equal Double-Precision */
- case 11: /* VSX Scalar Compare Greater Than Double-Precision */
- case 19: /* VSX Scalar Compare Greater Than or Equal
+ case 0: /* VSX Scalar Add Single-Precision */
+ case 32: /* VSX Scalar Add Double-Precision */
+ case 24: /* VSX Scalar Divide Single-Precision */
+ case 56: /* VSX Scalar Divide Double-Precision */
+ case 176: /* VSX Scalar Copy Sign Double-Precision */
+ case 33: /* VSX Scalar Multiply-Add Double-Precision */
+ case 41: /* ditto */
+ case 1: /* VSX Scalar Multiply-Add Single-Precision */
+ case 9: /* ditto */
+ case 160: /* VSX Scalar Maximum Double-Precision */
+ case 168: /* VSX Scalar Minimum Double-Precision */
+ case 49: /* VSX Scalar Multiply-Subtract Double-Precision */
+ case 57: /* ditto */
+ case 17: /* VSX Scalar Multiply-Subtract Single-Precision */
+ case 25: /* ditto */
+ case 48: /* VSX Scalar Multiply Double-Precision */
+ case 16: /* VSX Scalar Multiply Single-Precision */
+ case 161: /* VSX Scalar Negative Multiply-Add Double-Precision */
+ case 169: /* ditto */
+ case 129: /* VSX Scalar Negative Multiply-Add Single-Precision */
+ case 137: /* ditto */
+ case 177: /* VSX Scalar Negative Multiply-Subtract Double-Precision */
+ case 185: /* ditto */
+ case 145: /* VSX Scalar Negative Multiply-Subtract Single-Precision */
+ case 153: /* ditto */
+ case 40: /* VSX Scalar Subtract Double-Precision */
+ case 8: /* VSX Scalar Subtract Single-Precision */
+ case 96: /* VSX Vector Add Double-Precision */
+ case 64: /* VSX Vector Add Single-Precision */
+ case 120: /* VSX Vector Divide Double-Precision */
+ case 88: /* VSX Vector Divide Single-Precision */
+ case 97: /* VSX Vector Multiply-Add Double-Precision */
+ case 105: /* ditto */
+ case 65: /* VSX Vector Multiply-Add Single-Precision */
+ case 73: /* ditto */
+ case 224: /* VSX Vector Maximum Double-Precision */
+ case 192: /* VSX Vector Maximum Single-Precision */
+ case 232: /* VSX Vector Minimum Double-Precision */
+ case 200: /* VSX Vector Minimum Single-Precision */
+ case 113: /* VSX Vector Multiply-Subtract Double-Precision */
+ case 121: /* ditto */
+ case 81: /* VSX Vector Multiply-Subtract Single-Precision */
+ case 89: /* ditto */
+ case 112: /* VSX Vector Multiply Double-Precision */
+ case 80: /* VSX Vector Multiply Single-Precision */
+ case 225: /* VSX Vector Negative Multiply-Add Double-Precision */
+ case 233: /* ditto */
+ case 193: /* VSX Vector Negative Multiply-Add Single-Precision */
+ case 201: /* ditto */
+ case 241: /* VSX Vector Negative Multiply-Subtract Double-Precision */
+ case 249: /* ditto */
+ case 209: /* VSX Vector Negative Multiply-Subtract Single-Precision */
+ case 217: /* ditto */
+ case 104: /* VSX Vector Subtract Double-Precision */
+ case 72: /* VSX Vector Subtract Single-Precision */
+ case 128: /* VSX Scalar Maximum Type-C Double-Precision */
+ case 136: /* VSX Scalar Minimum Type-C Double-Precision */
+ case 144: /* VSX Scalar Maximum Type-J Double-Precision */
+ case 152: /* VSX Scalar Minimum Type-J Double-Precision */
+ case 3: /* VSX Scalar Compare Equal Double-Precision */
+ case 11: /* VSX Scalar Compare Greater Than Double-Precision */
+ case 19: /* VSX Scalar Compare Greater Than or Equal
Double-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 240: /* VSX Vector Copy Sign Double-Precision */
- case 208: /* VSX Vector Copy Sign Single-Precision */
- case 130: /* VSX Logical AND */
- case 138: /* VSX Logical AND with Complement */
- case 186: /* VSX Logical Equivalence */
- case 178: /* VSX Logical NAND */
- case 170: /* VSX Logical OR with Complement */
- case 162: /* VSX Logical NOR */
- case 146: /* VSX Logical OR */
- case 154: /* VSX Logical XOR */
- case 18: /* VSX Merge High Word */
- case 50: /* VSX Merge Low Word */
- case 10: /* VSX Permute Doubleword Immediate (DM=0) */
- case 10 | 0x20: /* VSX Permute Doubleword Immediate (DM=1) */
- case 10 | 0x40: /* VSX Permute Doubleword Immediate (DM=2) */
- case 10 | 0x60: /* VSX Permute Doubleword Immediate (DM=3) */
- case 2: /* VSX Shift Left Double by Word Immediate (SHW=0) */
- case 2 | 0x20: /* VSX Shift Left Double by Word Immediate (SHW=1) */
- case 2 | 0x40: /* VSX Shift Left Double by Word Immediate (SHW=2) */
- case 2 | 0x60: /* VSX Shift Left Double by Word Immediate (SHW=3) */
- case 216: /* VSX Vector Insert Exponent Single-Precision */
- case 248: /* VSX Vector Insert Exponent Double-Precision */
- case 26: /* VSX Vector Permute */
- case 58: /* VSX Vector Permute Right-indexed */
- case 213: /* VSX Vector Test Data Class Single-Precision (DC=0) */
- case 213 | 0x8: /* VSX Vector Test Data Class Single-Precision (DC=1) */
- case 245: /* VSX Vector Test Data Class Double-Precision (DC=0) */
- case 245 | 0x8: /* VSX Vector Test Data Class Double-Precision (DC=1) */
+ case 240: /* VSX Vector Copy Sign Double-Precision */
+ case 208: /* VSX Vector Copy Sign Single-Precision */
+ case 130: /* VSX Logical AND */
+ case 138: /* VSX Logical AND with Complement */
+ case 186: /* VSX Logical Equivalence */
+ case 178: /* VSX Logical NAND */
+ case 170: /* VSX Logical OR with Complement */
+ case 162: /* VSX Logical NOR */
+ case 146: /* VSX Logical OR */
+ case 154: /* VSX Logical XOR */
+ case 18: /* VSX Merge High Word */
+ case 50: /* VSX Merge Low Word */
+ case 10: /* VSX Permute Doubleword Immediate (DM=0) */
+ case 10 | 0x20: /* VSX Permute Doubleword Immediate (DM=1) */
+ case 10 | 0x40: /* VSX Permute Doubleword Immediate (DM=2) */
+ case 10 | 0x60: /* VSX Permute Doubleword Immediate (DM=3) */
+ case 2: /* VSX Shift Left Double by Word Immediate (SHW=0) */
+ case 2 | 0x20: /* VSX Shift Left Double by Word Immediate (SHW=1) */
+ case 2 | 0x40: /* VSX Shift Left Double by Word Immediate (SHW=2) */
+ case 2 | 0x60: /* VSX Shift Left Double by Word Immediate (SHW=3) */
+ case 216: /* VSX Vector Insert Exponent Single-Precision */
+ case 248: /* VSX Vector Insert Exponent Double-Precision */
+ case 26: /* VSX Vector Permute */
+ case 58: /* VSX Vector Permute Right-indexed */
+ case 213: /* VSX Vector Test Data Class Single-Precision (DC=0) */
+ case 213 | 0x8: /* VSX Vector Test Data Class Single-Precision (DC=1) */
+ case 245: /* VSX Vector Test Data Class Double-Precision (DC=0) */
+ case 245 | 0x8: /* VSX Vector Test Data Class Double-Precision (DC=1) */
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
- case 61: /* VSX Scalar Test for software Divide Double-Precision */
- case 125: /* VSX Vector Test for software Divide Double-Precision */
- case 93: /* VSX Vector Test for software Divide Single-Precision */
+ case 61: /* VSX Scalar Test for software Divide Double-Precision */
+ case 125: /* VSX Vector Test for software Divide Double-Precision */
+ case 93: /* VSX Vector Test for software Divide Single-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 35: /* VSX Scalar Compare Unordered Double-Precision */
- case 43: /* VSX Scalar Compare Ordered Double-Precision */
- case 59: /* VSX Scalar Compare Exponents Double-Precision */
+ case 35: /* VSX Scalar Compare Unordered Double-Precision */
+ case 43: /* VSX Scalar Compare Ordered Double-Precision */
+ case 59: /* VSX Scalar Compare Exponents Double-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
@@ -5859,14 +5751,14 @@ ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
switch ((ext >> 2) & 0x7f) /* Mask out Rc-bit. */
{
- case 99: /* VSX Vector Compare Equal To Double-Precision */
- case 67: /* VSX Vector Compare Equal To Single-Precision */
- case 115: /* VSX Vector Compare Greater Than or
+ case 99: /* VSX Vector Compare Equal To Double-Precision */
+ case 67: /* VSX Vector Compare Equal To Single-Precision */
+ case 115: /* VSX Vector Compare Greater Than or
Equal To Double-Precision */
- case 83: /* VSX Vector Compare Greater Than or
+ case 83: /* VSX Vector Compare Greater Than or
Equal To Single-Precision */
- case 107: /* VSX Vector Compare Greater Than Double-Precision */
- case 75: /* VSX Vector Compare Greater Than Single-Precision */
+ case 107: /* VSX Vector Compare Greater Than Double-Precision */
+ case 75: /* VSX Vector Compare Greater Than Single-Precision */
if (PPC_Rc (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
@@ -5876,157 +5768,157 @@ ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext >> 1)
{
- case 265: /* VSX Scalar round Double-Precision to
+ case 265: /* VSX Scalar round Double-Precision to
Single-Precision and Convert to
Single-Precision format */
- case 344: /* VSX Scalar truncate Double-Precision to
+ case 344: /* VSX Scalar truncate Double-Precision to
Integer and Convert to Signed Integer
Doubleword format with Saturate */
- case 88: /* VSX Scalar truncate Double-Precision to
+ case 88: /* VSX Scalar truncate Double-Precision to
Integer and Convert to Signed Integer Word
Format with Saturate */
- case 328: /* VSX Scalar truncate Double-Precision integer
+ case 328: /* VSX Scalar truncate Double-Precision integer
and Convert to Unsigned Integer Doubleword
Format with Saturate */
- case 72: /* VSX Scalar truncate Double-Precision to
+ case 72: /* VSX Scalar truncate Double-Precision to
Integer and Convert to Unsigned Integer Word
Format with Saturate */
- case 329: /* VSX Scalar Convert Single-Precision to
+ case 329: /* VSX Scalar Convert Single-Precision to
Double-Precision format */
- case 376: /* VSX Scalar Convert Signed Integer
+ case 376: /* VSX Scalar Convert Signed Integer
Doubleword to floating-point format and
Round to Double-Precision format */
- case 312: /* VSX Scalar Convert Signed Integer
+ case 312: /* VSX Scalar Convert Signed Integer
Doubleword to floating-point format and
round to Single-Precision */
- case 360: /* VSX Scalar Convert Unsigned Integer
+ case 360: /* VSX Scalar Convert Unsigned Integer
Doubleword to floating-point format and
Round to Double-Precision format */
- case 296: /* VSX Scalar Convert Unsigned Integer
+ case 296: /* VSX Scalar Convert Unsigned Integer
Doubleword to floating-point format and
Round to Single-Precision */
- case 73: /* VSX Scalar Round to Double-Precision Integer
+ case 73: /* VSX Scalar Round to Double-Precision Integer
Using Round to Nearest Away */
- case 107: /* VSX Scalar Round to Double-Precision Integer
+ case 107: /* VSX Scalar Round to Double-Precision Integer
Exact using Current rounding mode */
- case 121: /* VSX Scalar Round to Double-Precision Integer
+ case 121: /* VSX Scalar Round to Double-Precision Integer
Using Round toward -Infinity */
- case 105: /* VSX Scalar Round to Double-Precision Integer
+ case 105: /* VSX Scalar Round to Double-Precision Integer
Using Round toward +Infinity */
- case 89: /* VSX Scalar Round to Double-Precision Integer
+ case 89: /* VSX Scalar Round to Double-Precision Integer
Using Round toward Zero */
- case 90: /* VSX Scalar Reciprocal Estimate Double-Precision */
- case 26: /* VSX Scalar Reciprocal Estimate Single-Precision */
- case 281: /* VSX Scalar Round to Single-Precision */
- case 74: /* VSX Scalar Reciprocal Square Root Estimate
+ case 90: /* VSX Scalar Reciprocal Estimate Double-Precision */
+ case 26: /* VSX Scalar Reciprocal Estimate Single-Precision */
+ case 281: /* VSX Scalar Round to Single-Precision */
+ case 74: /* VSX Scalar Reciprocal Square Root Estimate
Double-Precision */
- case 10: /* VSX Scalar Reciprocal Square Root Estimate
+ case 10: /* VSX Scalar Reciprocal Square Root Estimate
Single-Precision */
- case 75: /* VSX Scalar Square Root Double-Precision */
- case 11: /* VSX Scalar Square Root Single-Precision */
- case 393: /* VSX Vector round Double-Precision to
+ case 75: /* VSX Scalar Square Root Double-Precision */
+ case 11: /* VSX Scalar Square Root Single-Precision */
+ case 393: /* VSX Vector round Double-Precision to
Single-Precision and Convert to
Single-Precision format */
- case 472: /* VSX Vector truncate Double-Precision to
+ case 472: /* VSX Vector truncate Double-Precision to
Integer and Convert to Signed Integer
Doubleword format with Saturate */
- case 216: /* VSX Vector truncate Double-Precision to
+ case 216: /* VSX Vector truncate Double-Precision to
Integer and Convert to Signed Integer Word
Format with Saturate */
- case 456: /* VSX Vector truncate Double-Precision to
+ case 456: /* VSX Vector truncate Double-Precision to
Integer and Convert to Unsigned Integer
Doubleword format with Saturate */
- case 200: /* VSX Vector truncate Double-Precision to
+ case 200: /* VSX Vector truncate Double-Precision to
Integer and Convert to Unsigned Integer Word
Format with Saturate */
- case 457: /* VSX Vector Convert Single-Precision to
+ case 457: /* VSX Vector Convert Single-Precision to
Double-Precision format */
- case 408: /* VSX Vector truncate Single-Precision to
+ case 408: /* VSX Vector truncate Single-Precision to
Integer and Convert to Signed Integer
Doubleword format with Saturate */
- case 152: /* VSX Vector truncate Single-Precision to
+ case 152: /* VSX Vector truncate Single-Precision to
Integer and Convert to Signed Integer Word
Format with Saturate */
- case 392: /* VSX Vector truncate Single-Precision to
+ case 392: /* VSX Vector truncate Single-Precision to
Integer and Convert to Unsigned Integer
Doubleword format with Saturate */
- case 136: /* VSX Vector truncate Single-Precision to
+ case 136: /* VSX Vector truncate Single-Precision to
Integer and Convert to Unsigned Integer Word
Format with Saturate */
- case 504: /* VSX Vector Convert and round Signed Integer
+ case 504: /* VSX Vector Convert and round Signed Integer
Doubleword to Double-Precision format */
- case 440: /* VSX Vector Convert and round Signed Integer
+ case 440: /* VSX Vector Convert and round Signed Integer
Doubleword to Single-Precision format */
- case 248: /* VSX Vector Convert Signed Integer Word to
+ case 248: /* VSX Vector Convert Signed Integer Word to
Double-Precision format */
- case 184: /* VSX Vector Convert and round Signed Integer
+ case 184: /* VSX Vector Convert and round Signed Integer
Word to Single-Precision format */
- case 488: /* VSX Vector Convert and round Unsigned
+ case 488: /* VSX Vector Convert and round Unsigned
Integer Doubleword to Double-Precision format */
- case 424: /* VSX Vector Convert and round Unsigned
+ case 424: /* VSX Vector Convert and round Unsigned
Integer Doubleword to Single-Precision format */
- case 232: /* VSX Vector Convert and round Unsigned
+ case 232: /* VSX Vector Convert and round Unsigned
Integer Word to Double-Precision format */
- case 168: /* VSX Vector Convert and round Unsigned
+ case 168: /* VSX Vector Convert and round Unsigned
Integer Word to Single-Precision format */
- case 201: /* VSX Vector Round to Double-Precision
+ case 201: /* VSX Vector Round to Double-Precision
Integer using round to Nearest Away */
- case 235: /* VSX Vector Round to Double-Precision
+ case 235: /* VSX Vector Round to Double-Precision
Integer Exact using Current rounding mode */
- case 249: /* VSX Vector Round to Double-Precision
+ case 249: /* VSX Vector Round to Double-Precision
Integer using round toward -Infinity */
- case 233: /* VSX Vector Round to Double-Precision
+ case 233: /* VSX Vector Round to Double-Precision
Integer using round toward +Infinity */
- case 217: /* VSX Vector Round to Double-Precision
+ case 217: /* VSX Vector Round to Double-Precision
Integer using round toward Zero */
- case 218: /* VSX Vector Reciprocal Estimate Double-Precision */
- case 154: /* VSX Vector Reciprocal Estimate Single-Precision */
- case 137: /* VSX Vector Round to Single-Precision Integer
+ case 218: /* VSX Vector Reciprocal Estimate Double-Precision */
+ case 154: /* VSX Vector Reciprocal Estimate Single-Precision */
+ case 137: /* VSX Vector Round to Single-Precision Integer
Using Round to Nearest Away */
- case 171: /* VSX Vector Round to Single-Precision Integer
+ case 171: /* VSX Vector Round to Single-Precision Integer
Exact Using Current rounding mode */
- case 185: /* VSX Vector Round to Single-Precision Integer
+ case 185: /* VSX Vector Round to Single-Precision Integer
Using Round toward -Infinity */
- case 169: /* VSX Vector Round to Single-Precision Integer
+ case 169: /* VSX Vector Round to Single-Precision Integer
Using Round toward +Infinity */
- case 153: /* VSX Vector Round to Single-Precision Integer
+ case 153: /* VSX Vector Round to Single-Precision Integer
Using round toward Zero */
- case 202: /* VSX Vector Reciprocal Square Root Estimate
+ case 202: /* VSX Vector Reciprocal Square Root Estimate
Double-Precision */
- case 138: /* VSX Vector Reciprocal Square Root Estimate
+ case 138: /* VSX Vector Reciprocal Square Root Estimate
Single-Precision */
- case 203: /* VSX Vector Square Root Double-Precision */
- case 139: /* VSX Vector Square Root Single-Precision */
+ case 203: /* VSX Vector Square Root Double-Precision */
+ case 139: /* VSX Vector Square Root Single-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 345: /* VSX Scalar Absolute Value Double-Precision */
- case 267: /* VSX Scalar Convert Scalar Single-Precision to
+ case 345: /* VSX Scalar Absolute Value Double-Precision */
+ case 267: /* VSX Scalar Convert Scalar Single-Precision to
Vector Single-Precision format Non-signalling */
- case 331: /* VSX Scalar Convert Single-Precision to
+ case 331: /* VSX Scalar Convert Single-Precision to
Double-Precision format Non-signalling */
- case 361: /* VSX Scalar Negative Absolute Value Double-Precision */
- case 377: /* VSX Scalar Negate Double-Precision */
- case 473: /* VSX Vector Absolute Value Double-Precision */
- case 409: /* VSX Vector Absolute Value Single-Precision */
- case 489: /* VSX Vector Negative Absolute Value Double-Precision */
- case 425: /* VSX Vector Negative Absolute Value Single-Precision */
- case 505: /* VSX Vector Negate Double-Precision */
- case 441: /* VSX Vector Negate Single-Precision */
- case 164: /* VSX Splat Word */
- case 165: /* VSX Vector Extract Unsigned Word */
- case 181: /* VSX Vector Insert Word */
+ case 361: /* VSX Scalar Negative Absolute Value Double-Precision */
+ case 377: /* VSX Scalar Negate Double-Precision */
+ case 473: /* VSX Vector Absolute Value Double-Precision */
+ case 409: /* VSX Vector Absolute Value Single-Precision */
+ case 489: /* VSX Vector Negative Absolute Value Double-Precision */
+ case 425: /* VSX Vector Negative Absolute Value Single-Precision */
+ case 505: /* VSX Vector Negate Double-Precision */
+ case 441: /* VSX Vector Negate Single-Precision */
+ case 164: /* VSX Splat Word */
+ case 165: /* VSX Vector Extract Unsigned Word */
+ case 181: /* VSX Vector Insert Word */
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
- case 298: /* VSX Scalar Test Data Class Single-Precision */
- case 362: /* VSX Scalar Test Data Class Double-Precision */
+ case 298: /* VSX Scalar Test Data Class Single-Precision */
+ case 362: /* VSX Scalar Test Data Class Double-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 106: /* VSX Scalar Test for software Square Root
+ case 106: /* VSX Scalar Test for software Square Root
Double-Precision */
- case 234: /* VSX Vector Test for software Square Root
+ case 234: /* VSX Vector Test for software Square Root
Double-Precision */
- case 170: /* VSX Vector Test for software Square Root
+ case 170: /* VSX Vector Test for software Square Root
Single-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
@@ -6034,14 +5926,14 @@ ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
case 347:
switch (PPC_FIELD (insn, 11, 5))
{
- case 0: /* VSX Scalar Extract Exponent Double-Precision */
- case 1: /* VSX Scalar Extract Significand Double-Precision */
+ case 0: /* VSX Scalar Extract Exponent Double-Precision */
+ case 1: /* VSX Scalar Extract Significand Double-Precision */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
return 0;
- case 16: /* VSX Scalar Convert Half-Precision format to
+ case 16: /* VSX Scalar Convert Half-Precision format to
Double-Precision format */
- case 17: /* VSX Scalar round & Convert Double-Precision format
+ case 17: /* VSX Scalar round & Convert Double-Precision format
to Half-Precision format */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
@@ -6058,35 +5950,37 @@ ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
case 360:
- if (PPC_FIELD (insn, 11, 2) == 0) /* VSX Vector Splat Immediate Byte */
+ if (PPC_FIELD (insn, 11, 2) == 0) /* VSX Vector Splat Immediate Byte */
{
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
}
- if (PPC_FIELD (insn, 11, 5) == 31) /* Load VSX Vector Special Value
+ if (PPC_FIELD (insn, 11, 5) == 31) /* Load VSX Vector Special Value
Quadword */
{
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
}
break;
- case 916: /* VSX Vector Generate PCV from Byte Mask */
- case 917: /* VSX Vector Generate PCV from Halfword Mask */
- case 948: /* VSX Vector Generate PCV from Word Mask */
- case 949: /* VSX Vector Generate PCV from Doubleword Mask */
- case 918: /* VSX Scalar Insert Exponent Double-Precision */
+ case 916: /* VSX Vector Generate PCV from Byte Mask */
+ case 917: /* VSX Vector Generate PCV from Halfword Mask */
+ case 948: /* VSX Vector Generate PCV from Word Mask */
+ case 949: /* VSX Vector Generate PCV from Doubleword Mask */
+ case 918: /* VSX Scalar Insert Exponent Double-Precision */
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
}
- if (((ext >> 3) & 0x3) == 3) /* VSX Select */
+ if (((ext >> 3) & 0x3) == 3) /* VSX Select */
{
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
}
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, 60-%d.\n", insn, paddress (gdbarch, addr), ext);
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, 60-%d.\n",
+ insn, paddress (gdbarch, addr), ext);
return -1;
}
@@ -6095,7 +5989,7 @@ ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
static int
ppc_process_record_op61 (struct gdbarch *gdbarch, struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn)
+ CORE_ADDR addr, uint32_t insn)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
ULONGEST ea = 0;
@@ -6103,23 +5997,22 @@ ppc_process_record_op61 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (insn & 0x3)
{
- case 0: /* Store Floating-Point Double Pair */
- case 2: /* Store VSX Scalar Doubleword */
- case 3: /* Store VSX Scalar Single */
+ case 0: /* Store Floating-Point Double Pair */
+ case 2: /* Store VSX Scalar Doubleword */
+ case 3: /* Store VSX Scalar Single */
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum + PPC_RA (insn),
- &ea);
+ tdep->ppc_gp0_regnum + PPC_RA (insn), &ea);
ea += PPC_DS (insn) << 2;
switch (insn & 0x3)
{
- case 0: /* Store Floating-Point Double Pair */
+ case 0: /* Store Floating-Point Double Pair */
size = 16;
break;
- case 2: /* Store VSX Scalar Doubleword */
+ case 2: /* Store VSX Scalar Doubleword */
size = 8;
break;
- case 3: /* Store VSX Scalar Single */
+ case 3: /* Store VSX Scalar Single */
size = 4;
break;
default:
@@ -6131,21 +6024,22 @@ ppc_process_record_op61 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (insn & 0x7)
{
- case 1: /* Load VSX Vector */
+ case 1: /* Load VSX Vector */
ppc_record_vsr (regcache, tdep, PPC_XT (insn));
return 0;
- case 5: /* Store VSX Vector */
+ case 5: /* Store VSX Vector */
if (PPC_RA (insn) != 0)
regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum + PPC_RA (insn),
- &ea);
+ tdep->ppc_gp0_regnum + PPC_RA (insn), &ea);
ea += PPC_DQ (insn) << 4;
record_full_arch_list_add_mem (ea, 16);
return 0;
}
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s.\n", insn, paddress (gdbarch, addr));
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s.\n",
+ insn, paddress (gdbarch, addr));
return -1;
}
@@ -6154,7 +6048,7 @@ ppc_process_record_op61 (struct gdbarch *gdbarch, struct regcache *regcache,
static int
ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn)
+ CORE_ADDR addr, uint32_t insn)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
int ext = PPC_EXTOP (insn);
@@ -6162,17 +6056,17 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext & 0x1f)
{
- case 18: /* Floating Divide */
- case 20: /* Floating Subtract */
- case 21: /* Floating Add */
- case 22: /* Floating Square Root */
- case 24: /* Floating Reciprocal Estimate */
- case 25: /* Floating Multiply */
- case 26: /* Floating Reciprocal Square Root Estimate */
- case 28: /* Floating Multiply-Subtract */
- case 29: /* Floating Multiply-Add */
- case 30: /* Floating Negative Multiply-Subtract */
- case 31: /* Floating Negative Multiply-Add */
+ case 18: /* Floating Divide */
+ case 20: /* Floating Subtract */
+ case 21: /* Floating Add */
+ case 22: /* Floating Square Root */
+ case 24: /* Floating Reciprocal Estimate */
+ case 25: /* Floating Multiply */
+ case 26: /* Floating Reciprocal Square Root Estimate */
+ case 28: /* Floating Multiply-Subtract */
+ case 29: /* Floating Multiply-Add */
+ case 30: /* Floating Negative Multiply-Subtract */
+ case 31: /* Floating Negative Multiply-Add */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
@@ -6180,7 +6074,7 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 23: /* Floating Select */
+ case 23: /* Floating Select */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
@@ -6190,8 +6084,8 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext & 0xff)
{
- case 5: /* VSX Scalar Round to Quad-Precision Integer */
- case 37: /* VSX Scalar Round Quad-Precision to Double-Extended
+ case 5: /* VSX Scalar Round to Quad-Precision Integer */
+ case 37: /* VSX Scalar Round Quad-Precision to Double-Extended
Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
@@ -6200,19 +6094,19 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
switch (ext)
{
- case 2: /* DFP Add Quad */
- case 3: /* DFP Quantize Quad */
- case 34: /* DFP Multiply Quad */
- case 35: /* DFP Reround Quad */
- case 67: /* DFP Quantize Immediate Quad */
- case 99: /* DFP Round To FP Integer With Inexact Quad */
- case 227: /* DFP Round To FP Integer Without Inexact Quad */
- case 258: /* DFP Convert To DFP Extended Quad */
- case 514: /* DFP Subtract Quad */
- case 546: /* DFP Divide Quad */
- case 770: /* DFP Round To DFP Long Quad */
- case 802: /* DFP Convert From Fixed Quad */
- case 834: /* DFP Encode BCD To DPD Quad */
+ case 2: /* DFP Add Quad */
+ case 3: /* DFP Quantize Quad */
+ case 34: /* DFP Multiply Quad */
+ case 35: /* DFP Reround Quad */
+ case 67: /* DFP Quantize Immediate Quad */
+ case 99: /* DFP Round To FP Integer With Inexact Quad */
+ case 227: /* DFP Round To FP Integer Without Inexact Quad */
+ case 258: /* DFP Convert To DFP Extended Quad */
+ case 514: /* DFP Subtract Quad */
+ case 546: /* DFP Divide Quad */
+ case 770: /* DFP Round To DFP Long Quad */
+ case 802: /* DFP Convert From Fixed Quad */
+ case 834: /* DFP Encode BCD To DPD Quad */
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
tmp = tdep->ppc_fp0_regnum + (PPC_FRT (insn) & ~1);
@@ -6221,21 +6115,21 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 130: /* DFP Compare Ordered Quad */
- case 162: /* DFP Test Exponent Quad */
- case 194: /* DFP Test Data Class Quad */
- case 226: /* DFP Test Data Group Quad */
- case 642: /* DFP Compare Unordered Quad */
- case 674: /* DFP Test Significance Quad */
- case 675: /* DFP Test Significance Immediate Quad */
+ case 130: /* DFP Compare Ordered Quad */
+ case 162: /* DFP Test Exponent Quad */
+ case 194: /* DFP Test Data Class Quad */
+ case 226: /* DFP Test Data Group Quad */
+ case 642: /* DFP Compare Unordered Quad */
+ case 674: /* DFP Test Significance Quad */
+ case 675: /* DFP Test Significance Immediate Quad */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 66: /* DFP Shift Significand Left Immediate Quad */
- case 98: /* DFP Shift Significand Right Immediate Quad */
- case 322: /* DFP Decode DPD To BCD Quad */
- case 866: /* DFP Insert Biased Exponent Quad */
+ case 66: /* DFP Shift Significand Left Immediate Quad */
+ case 98: /* DFP Shift Significand Right Immediate Quad */
+ case 322: /* DFP Decode DPD To BCD Quad */
+ case 866: /* DFP Insert Biased Exponent Quad */
tmp = tdep->ppc_fp0_regnum + (PPC_FRT (insn) & ~1);
record_full_arch_list_add_reg (regcache, tmp);
record_full_arch_list_add_reg (regcache, tmp + 1);
@@ -6243,7 +6137,7 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 290: /* DFP Convert To Fixed Quad */
+ case 290: /* DFP Convert To Fixed Quad */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
@@ -6251,32 +6145,32 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 354: /* DFP Extract Biased Exponent Quad */
+ case 354: /* DFP Extract Biased Exponent Quad */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 12: /* Floating Round to Single-Precision */
- case 14: /* Floating Convert To Integer Word */
- case 15: /* Floating Convert To Integer Word
+ case 12: /* Floating Round to Single-Precision */
+ case 14: /* Floating Convert To Integer Word */
+ case 15: /* Floating Convert To Integer Word
with round toward Zero */
- case 142: /* Floating Convert To Integer Word Unsigned */
- case 143: /* Floating Convert To Integer Word Unsigned
+ case 142: /* Floating Convert To Integer Word Unsigned */
+ case 143: /* Floating Convert To Integer Word Unsigned
with round toward Zero */
- case 392: /* Floating Round to Integer Nearest */
- case 424: /* Floating Round to Integer Toward Zero */
- case 456: /* Floating Round to Integer Plus */
- case 488: /* Floating Round to Integer Minus */
- case 814: /* Floating Convert To Integer Doubleword */
- case 815: /* Floating Convert To Integer Doubleword
+ case 392: /* Floating Round to Integer Nearest */
+ case 424: /* Floating Round to Integer Toward Zero */
+ case 456: /* Floating Round to Integer Plus */
+ case 488: /* Floating Round to Integer Minus */
+ case 814: /* Floating Convert To Integer Doubleword */
+ case 815: /* Floating Convert To Integer Doubleword
with round toward Zero */
- case 846: /* Floating Convert From Integer Doubleword */
- case 942: /* Floating Convert To Integer Doubleword Unsigned */
- case 943: /* Floating Convert To Integer Doubleword Unsigned
+ case 846: /* Floating Convert From Integer Doubleword */
+ case 942: /* Floating Convert To Integer Doubleword Unsigned */
+ case 943: /* Floating Convert To Integer Doubleword Unsigned
with round toward Zero */
- case 974: /* Floating Convert From Integer Doubleword Unsigned */
+ case 974: /* Floating Convert From Integer Doubleword Unsigned */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
@@ -6287,120 +6181,117 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
case 583:
switch (PPC_FIELD (insn, 11, 5))
{
- case 1: /* Move From FPSCR & Clear Enables */
- case 20: /* Move From FPSCR Control & set DRN */
- case 21: /* Move From FPSCR Control & set DRN Immediate */
- case 22: /* Move From FPSCR Control & set RN */
- case 23: /* Move From FPSCR Control & set RN Immediate */
- record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
- /* Fall through. */
- case 0: /* Move From FPSCR */
- case 24: /* Move From FPSCR Lightweight */
- if (PPC_FIELD (insn, 11, 5) == 0 && PPC_RC (insn))
- record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_fp0_regnum
- + PPC_FRT (insn));
- return 0;
+ case 1: /* Move From FPSCR & Clear Enables */
+ case 20: /* Move From FPSCR Control & set DRN */
+ case 21: /* Move From FPSCR Control & set DRN Immediate */
+ case 22: /* Move From FPSCR Control & set RN */
+ case 23: /* Move From FPSCR Control & set RN Immediate */
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+ /* Fall through. */
+ case 0: /* Move From FPSCR */
+ case 24: /* Move From FPSCR Lightweight */
+ if (PPC_FIELD (insn, 11, 5) == 0 && PPC_RC (insn))
+ record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fp0_regnum
+ + PPC_FRT (insn));
+ return 0;
}
break;
- case 8: /* Floating Copy Sign */
- case 40: /* Floating Negate */
- case 72: /* Floating Move Register */
- case 136: /* Floating Negative Absolute Value */
- case 264: /* Floating Absolute Value */
+ case 8: /* Floating Copy Sign */
+ case 40: /* Floating Negate */
+ case 72: /* Floating Move Register */
+ case 136: /* Floating Negative Absolute Value */
+ case 264: /* Floating Absolute Value */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 838: /* Floating Merge Odd Word */
- case 966: /* Floating Merge Even Word */
+ case 838: /* Floating Merge Odd Word */
+ case 966: /* Floating Merge Even Word */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
return 0;
- case 38: /* Move To FPSCR Bit 1 */
- case 70: /* Move To FPSCR Bit 0 */
- case 134: /* Move To FPSCR Field Immediate */
- case 711: /* Move To FPSCR Fields */
+ case 38: /* Move To FPSCR Bit 1 */
+ case 70: /* Move To FPSCR Bit 0 */
+ case 134: /* Move To FPSCR Field Immediate */
+ case 711: /* Move To FPSCR Fields */
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
return 0;
- case 0: /* Floating Compare Unordered */
- case 32: /* Floating Compare Ordered */
- case 64: /* Move to Condition Register from FPSCR */
- case 132: /* VSX Scalar Compare Ordered Quad-Precision */
- case 164: /* VSX Scalar Compare Exponents Quad-Precision */
- case 644: /* VSX Scalar Compare Unordered Quad-Precision */
- case 708: /* VSX Scalar Test Data Class Quad-Precision */
+ case 0: /* Floating Compare Unordered */
+ case 32: /* Floating Compare Ordered */
+ case 64: /* Move to Condition Register from FPSCR */
+ case 132: /* VSX Scalar Compare Ordered Quad-Precision */
+ case 164: /* VSX Scalar Compare Exponents Quad-Precision */
+ case 644: /* VSX Scalar Compare Unordered Quad-Precision */
+ case 708: /* VSX Scalar Test Data Class Quad-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 128: /* Floating Test for software Divide */
- case 160: /* Floating Test for software Square Root */
+ case 128: /* Floating Test for software Divide */
+ case 160: /* Floating Test for software Square Root */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
return 0;
- case 4: /* VSX Scalar Add Quad-Precision */
- case 36: /* VSX Scalar Multiply Quad-Precision */
- case 388: /* VSX Scalar Multiply-Add Quad-Precision */
- case 420: /* VSX Scalar Multiply-Subtract Quad-Precision */
- case 452: /* VSX Scalar Negative Multiply-Add Quad-Precision */
- case 484: /* VSX Scalar Negative Multiply-Subtract
+ case 4: /* VSX Scalar Add Quad-Precision */
+ case 36: /* VSX Scalar Multiply Quad-Precision */
+ case 388: /* VSX Scalar Multiply-Add Quad-Precision */
+ case 420: /* VSX Scalar Multiply-Subtract Quad-Precision */
+ case 452: /* VSX Scalar Negative Multiply-Add Quad-Precision */
+ case 484: /* VSX Scalar Negative Multiply-Subtract
Quad-Precision */
- case 516: /* VSX Scalar Subtract Quad-Precision */
- case 548: /* VSX Scalar Divide Quad-Precision */
+ case 516: /* VSX Scalar Subtract Quad-Precision */
+ case 548: /* VSX Scalar Divide Quad-Precision */
case 994:
{
- switch (PPC_FIELD (insn, 11, 5))
- {
- case 0: /* DFP Convert From Fixed Quadword Quad */
- record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+ switch (PPC_FIELD (insn, 11, 5))
+ {
+ case 0: /* DFP Convert From Fixed Quadword Quad */
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_fp0_regnum
- + PPC_FRT (insn));
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_fp0_regnum
- + PPC_FRT (insn) + 1);
- return 0;
- case 1: /* DFP Convert To Fixed Quadword Quad */
- record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
- ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
- return 0;
- }
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fp0_regnum
+ + PPC_FRT (insn));
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fp0_regnum
+ + PPC_FRT (insn) + 1);
+ return 0;
+ case 1: /* DFP Convert To Fixed Quadword Quad */
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
+ ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
+ return 0;
+ }
}
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 68: /* VSX Scalar Compare Equal Quad-Precision */
- case 196: /* VSX Scalar Compare Greater Than or Equal
+ case 68: /* VSX Scalar Compare Equal Quad-Precision */
+ case 196: /* VSX Scalar Compare Greater Than or Equal
Quad-Precision */
- case 228: /* VSX Scalar Compare Greater Than Quad-Precision */
- case 676: /* VSX Scalar Maximum Type-C Quad-Precision */
- case 740: /* VSX Scalar Minimum Type-C Quad-Precision */
+ case 228: /* VSX Scalar Compare Greater Than Quad-Precision */
+ case 676: /* VSX Scalar Maximum Type-C Quad-Precision */
+ case 740: /* VSX Scalar Minimum Type-C Quad-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 100: /* VSX Scalar Copy Sign Quad-Precision */
- case 868: /* VSX Scalar Insert Exponent Quad-Precision */
+ case 100: /* VSX Scalar Copy Sign Quad-Precision */
+ case 868: /* VSX Scalar Insert Exponent Quad-Precision */
ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
return 0;
case 804:
switch (PPC_FIELD (insn, 11, 5))
{
- case 27: /* VSX Scalar Square Root Quad-Precision */
+ case 27: /* VSX Scalar Square Root Quad-Precision */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
/* FALL-THROUGH */
- case 0: /* VSX Scalar Absolute Quad-Precision */
- case 2: /* VSX Scalar Extract Exponent Quad-Precision */
- case 8: /* VSX Scalar Negative Absolute Quad-Precision */
- case 16: /* VSX Scalar Negate Quad-Precision */
- case 18: /* VSX Scalar Extract Significand Quad-Precision */
+ case 0: /* VSX Scalar Absolute Quad-Precision */
+ case 2: /* VSX Scalar Extract Exponent Quad-Precision */
+ case 8: /* VSX Scalar Negative Absolute Quad-Precision */
+ case 16: /* VSX Scalar Negate Quad-Precision */
+ case 18: /* VSX Scalar Extract Significand Quad-Precision */
ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
return 0;
}
@@ -6409,29 +6300,29 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
case 836:
switch (PPC_FIELD (insn, 11, 5))
{
- case 0: /* VSX Scalar Convert with round to zero
+ case 0: /* VSX Scalar Convert with round to zero
Quad-Precision to Unsigned Quadword */
- case 1: /* VSX Scalar truncate & Convert Quad-Precision format
+ case 1: /* VSX Scalar truncate & Convert Quad-Precision format
to Unsigned Word format */
- case 2: /* VSX Scalar Convert Unsigned Doubleword format to
+ case 2: /* VSX Scalar Convert Unsigned Doubleword format to
Quad-Precision format */
- case 3: /* VSX Scalar Convert with round
+ case 3: /* VSX Scalar Convert with round
Unsigned Quadword to Quad-Precision */
- case 8: /* VSX Scalar Convert with round to zero
+ case 8: /* VSX Scalar Convert with round to zero
Quad-Precision to Signed Quadword */
- case 9: /* VSX Scalar truncate & Convert Quad-Precision format
+ case 9: /* VSX Scalar truncate & Convert Quad-Precision format
to Signed Word format */
- case 10: /* VSX Scalar Convert Signed Doubleword format to
+ case 10: /* VSX Scalar Convert Signed Doubleword format to
Quad-Precision format */
- case 11: /* VSX Scalar Convert with round
+ case 11: /* VSX Scalar Convert with round
Signed Quadword to Quad-Precision */
- case 17: /* VSX Scalar truncate & Convert Quad-Precision format
+ case 17: /* VSX Scalar truncate & Convert Quad-Precision format
to Unsigned Doubleword format */
- case 20: /* VSX Scalar round & Convert Quad-Precision format to
+ case 20: /* VSX Scalar round & Convert Quad-Precision format to
Double-Precision format */
- case 22: /* VSX Scalar Convert Double-Precision format to
+ case 22: /* VSX Scalar Convert Double-Precision format to
Quad-Precision format */
- case 25: /* VSX Scalar truncate & Convert Quad-Precision format
+ case 25: /* VSX Scalar truncate & Convert Quad-Precision format
to Signed Doubleword format */
record_full_arch_list_add_reg (regcache, tdep->ppc_fpscr_regnum);
ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
@@ -6439,8 +6330,10 @@ ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,
}
}
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, 63-%d.\n", insn, paddress (gdbarch, addr), ext);
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, 63-%d.\n",
+ insn, paddress (gdbarch, addr), ext);
return -1;
}
@@ -6462,13 +6355,12 @@ ppc_process_record_prefix_op42 (struct gdbarch *gdbarch,
switch (type)
{
- case 0: /* Prefixed Load VSX Scalar Doubleword, plxsd */
+ case 0: /* Prefixed Load VSX Scalar Doubleword, plxsd */
ppc_record_vsr (regcache, tdep, PPC_VRT (insn_suffix) + 32);
break;
- case 2: /* Prefixed Load Halfword Algebraic, plha */
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RT (insn_suffix));
+ case 2: /* Prefixed Load Halfword Algebraic, plha */
+ record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum
+ + PPC_RT (insn_suffix));
break;
default:
return -1;
@@ -6502,93 +6394,93 @@ ppc_process_record_prefix_op59_XX3 (struct gdbarch *gdbarch,
if (ST4 == 9)
switch (opcode)
{
- case 35: /* Prefixed Masked VSX Vector 4-bit Signed Integer GER
+ case 35: /* Prefixed Masked VSX Vector 4-bit Signed Integer GER
MMIRR, pmdmxvi4ger8 (pmxvi4ger8) */
- case 34: /* Prefixed Masked VSX Vector 4-bit Signed Integer GER
+ case 34: /* Prefixed Masked VSX Vector 4-bit Signed Integer GER
MMIRR, pmdmxvi4ger8pp (pmxvi4ger8pp) */
- case 99: /* Prefixed Masked VSX Vector 8-bit Signed/Unsigned
+ case 99: /* Prefixed Masked VSX Vector 8-bit Signed/Unsigned
Integer GER with Saturate Positive multiply,
Positive accumulate, xvi8ger4spp */
- case 3: /* Prefixed Masked VSX Vector 8-bit Signed/Unsigned
+ case 3: /* Prefixed Masked VSX Vector 8-bit Signed/Unsigned
Integer GER MMIRR, pmdmxvi8ger4 (pmxvi8ger4) */
- case 2: /* Prefixed Masked VSX Vector 8-bit Signed/Unsigned
+ case 2: /* Prefixed Masked VSX Vector 8-bit Signed/Unsigned
Integer GER Positive multiply, Positive accumulate
MMIRR, pmdmxvi8ger4pp (pmxvi8ger4pp) */
- case 75: /* Prefixed Masked VSX Vector 16-bit Signed Integer
+ case 75: /* Prefixed Masked VSX Vector 16-bit Signed Integer
GER MMIRR, pmdmxvi16ger2 (pmxvi16ger2) */
- case 107: /* Prefixed Masked VSX Vector 16-bit Signed Integer
+ case 107: /* Prefixed Masked VSX Vector 16-bit Signed Integer
GER Positive multiply, Positive accumulate,
pmdmxvi16ger2pp (pmxvi16ger2pp) */
- case 43: /* Prefixed Masked VSX Vector 16-bit Signed Integer
+ case 43: /* Prefixed Masked VSX Vector 16-bit Signed Integer
GER with Saturation MMIRR, pmdmxvi16ger2s
(pmxvi16ger2s) */
- case 42: /* Prefixed Masked VSX Vector 16-bit Signed Integer
+ case 42: /* Prefixed Masked VSX Vector 16-bit Signed Integer
GER with Saturation Positive multiply, Positive
accumulate MMIRR, pmdmxvi16ger2spp (pmxvi16ger2spp)
*/
ppc_record_ACC_fpscr (regcache, tdep, at, false);
return 0;
- case 19: /* Prefixed Masked VSX Vector 16-bit Floating-Point
+ case 19: /* Prefixed Masked VSX Vector 16-bit Floating-Point
GER MMIRR, pmdmxvf16ger2 (pmxvf16ger2) */
- case 18: /* Prefixed Masked VSX Vector 16-bit Floating-Point
+ case 18: /* Prefixed Masked VSX Vector 16-bit Floating-Point
GER Positive multiply, Positive accumulate MMIRR,
pmdmxvf16ger2pp (pmxvf16ger2pp) */
- case 146: /* Prefixed Masked VSX Vector 16-bit Floating-Point
+ case 146: /* Prefixed Masked VSX Vector 16-bit Floating-Point
GER Positive multiply, Negative accumulate MMIRR,
pmdmxvf16ger2pn (pmxvf16ger2pn) */
- case 82: /* Prefixed Masked VSX Vector 16-bit Floating-Point
+ case 82: /* Prefixed Masked VSX Vector 16-bit Floating-Point
GER Negative multiply, Positive accumulate MMIRR,
pmdmxvf16ger2np (pmxvf16ger2np) */
- case 210: /* Prefixed Masked VSX Vector 16-bit Floating-Point
+ case 210: /* Prefixed Masked VSX Vector 16-bit Floating-Point
GER Negative multiply, Negative accumulate MMIRR,
pmdmxvf16ger2nn (pmxvf16ger2nn) */
- case 27: /* Prefixed Masked VSX Vector 32-bit Floating-Point
+ case 27: /* Prefixed Masked VSX Vector 32-bit Floating-Point
GER MMIRR, pmdmxvf32ger (pmxvf32ger) */
- case 26: /* Prefixed Masked VSX Vector 32-bit Floating-Point
+ case 26: /* Prefixed Masked VSX Vector 32-bit Floating-Point
GER Positive multiply, Positive accumulate MMIRR,
pmdmxvf32gerpp (pmxvf32gerpp) */
- case 154: /* Prefixed Masked VSX Vector 32-bit Floating-Point
+ case 154: /* Prefixed Masked VSX Vector 32-bit Floating-Point
GER Positive multiply, Negative accumulate MMIRR,
pmdmxvf32gerpn (pmxvf32gerpn) */
- case 90: /* Prefixed Masked VSX Vector 32-bit Floating-Point
+ case 90: /* Prefixed Masked VSX Vector 32-bit Floating-Point
GER Negative multiply, Positive accumulate MMIRR,
pmdmxvf32gernp (pmxvf32gernp )*/
- case 218: /* Prefixed Masked VSX Vector 32-bit Floating-Point
+ case 218: /* Prefixed Masked VSX Vector 32-bit Floating-Point
GER Negative multiply, Negative accumulate MMIRR,
pmdmxvf32gernn (pmxvf32gernn) */
- case 59: /* Prefixed Masked VSX Vector 64-bit Floating-Point
+ case 59: /* Prefixed Masked VSX Vector 64-bit Floating-Point
GER MMIRR, pmdmxvf64ger (pmxvf64ger) */
- case 58: /* Floating-Point GER Positive multiply, Positive
+ case 58: /* Floating-Point GER Positive multiply, Positive
accumulate MMIRR, pmdmxvf64gerpp (pmxvf64gerpp) */
- case 186: /* Prefixed Masked VSX Vector 64-bit Floating-Point
+ case 186: /* Prefixed Masked VSX Vector 64-bit Floating-Point
GER Positive multiply, Negative accumulate MMIRR,
pmdmxvf64gerpn (pmxvf64gerpn) */
- case 122: /* Prefixed Masked VSX Vector 64-bit Floating-Point
+ case 122: /* Prefixed Masked VSX Vector 64-bit Floating-Point
GER Negative multiply, Positive accumulate MMIRR,
pmdmxvf64gernp (pmxvf64gernp) */
- case 250: /* Prefixed Masked VSX Vector 64-bit Floating-Point
+ case 250: /* Prefixed Masked VSX Vector 64-bit Floating-Point
GER Negative multiply, Negative accumulate MMIRR,
pmdmxvf64gernn (pmxvf64gernn) */
- case 51: /* Prefixed Masked VSX Vector bfloat16 GER MMIRR,
+ case 51: /* Prefixed Masked VSX Vector bfloat16 GER MMIRR,
pmdmxvbf16ger2 (pmxvbf16ger2) */
- case 50: /* Prefixed Masked VSX Vector bfloat16 GER Positive
+ case 50: /* Prefixed Masked VSX Vector bfloat16 GER Positive
multiply, Positive accumulate MMIRR,
pmdmxvbf16ger2pp (pmxvbf16ger2pp) */
- case 178: /* Prefixed Masked VSX Vector bfloat16 GER Positive
+ case 178: /* Prefixed Masked VSX Vector bfloat16 GER Positive
multiply, Negative accumulate MMIRR,
pmdmxvbf16ger2pn (pmxvbf16ger2pn) */
- case 114: /* Prefixed Masked VSX Vector bfloat16 GER Negative
+ case 114: /* Prefixed Masked VSX Vector bfloat16 GER Negative
multiply, Positive accumulate MMIRR,
pmdmxvbf16ger2np (pmxvbf16ger2np) */
- case 242: /* Prefixed Masked VSX Vector bfloat16 GER Negative
+ case 242: /* Prefixed Masked VSX Vector bfloat16 GER Negative
multiply, Negative accumulate MMIRR,
pmdmxvbf16ger2nn (pmxvbf16ger2nn) */
ppc_record_ACC_fpscr (regcache, tdep, at, true);
@@ -6607,9 +6499,8 @@ ppc_process_record_prefix_op59_XX3 (struct gdbarch *gdbarch,
static int
ppc_process_record_prefix_store (struct gdbarch *gdbarch,
- struct regcache *regcache,
- CORE_ADDR addr, uint32_t insn_prefix,
- uint32_t insn_suffix)
+ struct regcache *regcache, CORE_ADDR addr,
+ uint32_t insn_prefix, uint32_t insn_suffix)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
ULONGEST iaddr = 0;
@@ -6620,34 +6511,35 @@ ppc_process_record_prefix_store (struct gdbarch *gdbarch,
if (R == 0)
{
if (PPC_RA (insn_suffix) != 0)
- regcache_raw_read_unsigned (regcache, tdep->ppc_gp0_regnum
- + PPC_RA (insn_suffix), &iaddr);
+ regcache_raw_read_unsigned (
+ regcache, tdep->ppc_gp0_regnum + PPC_RA (insn_suffix), &iaddr);
}
else
{
- iaddr = addr; /* PC relative */
+ iaddr = addr; /* PC relative */
}
switch (op6)
{
case 38:
- size = 1; /* store byte, pstb */
+ size = 1; /* store byte, pstb */
break;
case 44:
- size = 2; /* store halfword, psth */
+ size = 2; /* store halfword, psth */
break;
case 36:
case 52:
- size = 4; /* store word, pstw, pstfs */
+ size = 4; /* store word, pstw, pstfs */
break;
case 54:
case 61:
- size = 8; /* store double word, pstd, pstfd */
+ size = 8; /* store double word, pstd, pstfd */
break;
case 60:
- size = 16; /* store quadword, pstq */
+ size = 16; /* store quadword, pstq */
break;
- default: return -1;
+ default:
+ return -1;
}
iaddr += P_PPC_D (insn_prefix, insn_suffix);
@@ -6675,16 +6567,16 @@ ppc_process_record_prefix_op32 (struct gdbarch *gdbarch,
{
switch (PPC_FIELD (insn_suffix, 11, 3))
{
- case 0: /* VSX Vector Splat Immediate Word 8RR, xxsplti32dx */
+ case 0: /* VSX Vector Splat Immediate Word 8RR, xxsplti32dx */
ppc_record_vsr (regcache, tdep, P_PPC_XT15 (insn_suffix));
return 0;
}
switch (PPC_FIELD (insn_suffix, 11, 4))
{
- case 2: /* VSX Vector Splat Immediate Double-Precision
+ case 2: /* VSX Vector Splat Immediate Double-Precision
8RR, xxspltidp */
- case 3: /* VSX Vector Splat Immediate Word 8RR, xxspltiw */
+ case 3: /* VSX Vector Splat Immediate Word 8RR, xxspltiw */
ppc_record_vsr (regcache, tdep, P_PPC_XT15 (insn_suffix));
return 0;
default:
@@ -6693,16 +6585,14 @@ ppc_process_record_prefix_op32 (struct gdbarch *gdbarch,
}
else
return -1;
-
}
else if (type == 2)
{
- if (ST1 == 0) /* Prefixed Load Word and Zero, plwz */
+ if (ST1 == 0) /* Prefixed Load Word and Zero, plwz */
record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum
- + PPC_RT (insn_suffix));
+ + PPC_RT (insn_suffix));
else
return -1;
-
}
else
return -1;
@@ -6728,18 +6618,17 @@ ppc_process_record_prefix_op33 (struct gdbarch *gdbarch,
if (ST4 == 0)
switch (PPC_FIELD (insn_suffix, 26, 2))
{
- case 0: /* VSX Vector Blend Variable Byte 8RR, xxblendvb */
- case 1: /* VSX Vector Blend Variable Halfword, xxblendvh */
- case 2: /* VSX Vector Blend Variable Word, xxblendvw */
- case 3: /* VSX Vector Blend Variable Doubleword, xxblendvd */
+ case 0: /* VSX Vector Blend Variable Byte 8RR, xxblendvb */
+ case 1: /* VSX Vector Blend Variable Halfword, xxblendvh */
+ case 2: /* VSX Vector Blend Variable Word, xxblendvw */
+ case 3: /* VSX Vector Blend Variable Doubleword, xxblendvd */
ppc_record_vsr (regcache, tdep, PPC_XT (insn_suffix));
- break;
+ break;
default:
return -1;
}
else
return -1;
-
}
else
return -1;
@@ -6766,8 +6655,8 @@ ppc_process_record_prefix_op34 (struct gdbarch *gdbarch,
if (ST4 == 0)
switch (PPC_FIELD (insn_suffix, 26, 2))
{
- case 0: /* VSX Vector Permute Extended 8RR, xxpermx */
- case 1: /* VSX Vector Evaluate 8RR, xxeval */
+ case 0: /* VSX Vector Permute Extended 8RR, xxpermx */
+ case 1: /* VSX Vector Evaluate 8RR, xxeval */
ppc_record_vsr (regcache, tdep, P_PPC_XT (insn_suffix));
break;
default:
@@ -6775,17 +6664,14 @@ ppc_process_record_prefix_op34 (struct gdbarch *gdbarch,
}
else
return -1;
-
}
else if (type == 2)
{
- if (ST1 == 0) /* Prefixed Load Word and Zero, plbz */
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RT (insn_suffix));
+ if (ST1 == 0) /* Prefixed Load Word and Zero, plbz */
+ record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum
+ + PPC_RT (insn_suffix));
else
return -1;
-
}
else
return -1;
@@ -6817,23 +6703,21 @@ ppc_process_record_prefix_store_vsx_ds_form (struct gdbarch *gdbarch,
if (R == 0)
{
if (PPC_RA (insn_suffix) != 0)
- regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RA (insn_suffix),
- &ea);
+ regcache_raw_read_unsigned (
+ regcache, tdep->ppc_gp0_regnum + PPC_RA (insn_suffix), &ea);
}
else
{
- ea = addr; /* PC relative */
+ ea = addr; /* PC relative */
}
ea += P_PPC_D (insn_prefix, insn_suffix);
switch (PPC_FIELD (insn_suffix, 0, 6))
{
- case 46: /* Prefixed Store VSX Scalar Doubleword, pstxsd */
+ case 46: /* Prefixed Store VSX Scalar Doubleword, pstxsd */
size = 8;
break;
- case 47: /* Prefixed,Store VSX Scalar Single-Precision, pstxssp */
+ case 47: /* Prefixed,Store VSX Scalar Single-Precision, pstxssp */
size = 4;
break;
default:
@@ -6841,7 +6725,7 @@ ppc_process_record_prefix_store_vsx_ds_form (struct gdbarch *gdbarch,
}
record_full_arch_list_add_mem (ea, size);
return 0;
- }
+ }
else
return -1;
}
@@ -6854,8 +6738,7 @@ ppc_process_record_prefix_store_vsx_ds_form (struct gdbarch *gdbarch,
static int
ppc_process_record_prefix_vsx_d_form (struct gdbarch *gdbarch,
struct regcache *regcache,
- CORE_ADDR addr,
- uint32_t insn_prefix,
+ CORE_ADDR addr, uint32_t insn_prefix,
uint32_t insn_suffix)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
@@ -6869,10 +6752,10 @@ ppc_process_record_prefix_vsx_d_form (struct gdbarch *gdbarch,
{
switch (PPC_FIELD (insn_suffix, 0, 5))
{
- case 25: /* Prefixed Load VSX Vector, plxv */
+ case 25: /* Prefixed Load VSX Vector, plxv */
ppc_record_vsr (regcache, tdep, P_PPC_XT5 (insn_prefix));
return 0;
- case 27: /* Prefixed Store VSX Vector 8LS, pstxv */
+ case 27: /* Prefixed Store VSX Vector 8LS, pstxv */
{
size = 16;
if (R == 0)
@@ -6880,12 +6763,12 @@ ppc_process_record_prefix_vsx_d_form (struct gdbarch *gdbarch,
if (PPC_RA (insn_suffix) != 0)
regcache_raw_read_unsigned (regcache,
tdep->ppc_gp0_regnum
- + PPC_RA (insn_suffix),
+ + PPC_RA (insn_suffix),
&ea);
}
else
{
- ea = addr; /* PC relative */
+ ea = addr; /* PC relative */
}
ea += P_PPC_D (insn_prefix, insn_suffix);
@@ -6910,7 +6793,7 @@ ppc_process_record_prefix_vsx_d_form (struct gdbarch *gdbarch,
static int
ppc_process_prefix_instruction (int insn_prefix, int insn_suffix,
- CORE_ADDR addr, struct gdbarch *gdbarch,
+ CORE_ADDR addr, struct gdbarch *gdbarch,
struct regcache *regcache)
{
int type = PPC_FIELD (insn_prefix, 6, 2);
@@ -6919,84 +6802,90 @@ ppc_process_prefix_instruction (int insn_prefix, int insn_suffix,
int op6;
/* D-form has uses a 5-bit opcode in the instruction suffix */
- if (ppc_process_record_prefix_vsx_d_form ( gdbarch, regcache, addr,
- insn_prefix, insn_suffix) == 0)
+ if (ppc_process_record_prefix_vsx_d_form (gdbarch, regcache, addr,
+ insn_prefix, insn_suffix)
+ == 0)
goto SUCCESS;
- op6 = PPC_OP6 (insn_suffix); /* 6-bit opcode in the instruction suffix */
+ op6 = PPC_OP6 (insn_suffix); /* 6-bit opcode in the instruction suffix */
switch (op6)
{
- case 14: /* Prefixed Add Immediate, paddi */
+ case 14: /* Prefixed Add Immediate, paddi */
if ((type == 2) && (ST1 == 0))
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RT (insn_suffix));
+ record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum
+ + PPC_RT (insn_suffix));
else
goto UNKNOWN_PREFIX_OP;
break;
case 32:
- if (ppc_process_record_prefix_op32 (gdbarch, regcache,
- insn_prefix, insn_suffix) != 0)
+ if (ppc_process_record_prefix_op32 (gdbarch, regcache, insn_prefix,
+ insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
case 33:
- if (ppc_process_record_prefix_op33 (gdbarch, regcache,
- insn_prefix, insn_suffix) != 0)
+ if (ppc_process_record_prefix_op33 (gdbarch, regcache, insn_prefix,
+ insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
- case 34: /* Prefixed Load Byte and Zero, plbz */
- if (ppc_process_record_prefix_op34 (gdbarch, regcache,
- insn_prefix, insn_suffix) != 0)
+ case 34: /* Prefixed Load Byte and Zero, plbz */
+ if (ppc_process_record_prefix_op34 (gdbarch, regcache, insn_prefix,
+ insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
- case 40: /* Prefixed Load Halfword and Zero, plhz */
+ case 40: /* Prefixed Load Halfword and Zero, plhz */
if ((type == 2) && (ST1 == 0))
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RT (insn_suffix));
+ record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum
+ + PPC_RT (insn_suffix));
else
goto UNKNOWN_PREFIX_OP;
break;
break;
- case 36: /* Prefixed Store Word, pstw */
- case 38: /* Prefixed Store Byte, pstb */
- case 44: /* Prefixed Store Halfword, psth */
- case 52: /* Prefixed Store Floating-Point Single, pstfs */
- case 54: /* Prefixed Store Floating-Point Double, pstfd */
- case 60: /* Prefixed Store Quadword, pstq */
- case 61: /* Prefixed Store Doubleword, pstd */
+ case 36: /* Prefixed Store Word, pstw */
+ case 38: /* Prefixed Store Byte, pstb */
+ case 44: /* Prefixed Store Halfword, psth */
+ case 52: /* Prefixed Store Floating-Point Single, pstfs */
+ case 54: /* Prefixed Store Floating-Point Double, pstfd */
+ case 60: /* Prefixed Store Quadword, pstq */
+ case 61: /* Prefixed Store Doubleword, pstd */
if (ppc_process_record_prefix_store (gdbarch, regcache, addr,
- insn_prefix, insn_suffix) != 0)
+ insn_prefix, insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
case 42:
- if (ppc_process_record_prefix_op42 (gdbarch, regcache,
- insn_prefix, insn_suffix) != 0)
+ if (ppc_process_record_prefix_op42 (gdbarch, regcache, insn_prefix,
+ insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
- case 43: /* Prefixed Load VSX Scalar Single-Precision, plxssp */
+ case 43: /* Prefixed Load VSX Scalar Single-Precision, plxssp */
if ((type == 0) && (ST1 == 0))
- ppc_record_vsr (regcache, tdep, PPC_VRT (insn_suffix) + 32);
+ ppc_record_vsr (regcache, tdep, PPC_VRT (insn_suffix) + 32);
else
- goto UNKNOWN_PREFIX_OP;
+ goto UNKNOWN_PREFIX_OP;
break;
case 46:
case 47:
if (ppc_process_record_prefix_store_vsx_ds_form (gdbarch, regcache, addr,
- insn_prefix, insn_suffix) != 0)
+ insn_prefix,
+ insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
- case 56: /* Prefixed Load Quadword, plq */
+ case 56: /* Prefixed Load Quadword, plq */
{
if ((type == 0) && (ST1 == 0))
{
@@ -7010,27 +6899,25 @@ ppc_process_prefix_instruction (int insn_prefix, int insn_suffix,
break;
}
- case 41: /* Prefixed Load Word Algebraic, plwa */
- case 57: /* Prefixed Load Doubleword, pld */
+ case 41: /* Prefixed Load Word Algebraic, plwa */
+ case 57: /* Prefixed Load Doubleword, pld */
if ((type == 0) && (ST1 == 0))
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RT (insn_suffix));
+ record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum
+ + PPC_RT (insn_suffix));
else
goto UNKNOWN_PREFIX_OP;
break;
- case 48: /* Prefixed Load Floating-Point Single, plfs */
- case 50: /* Prefixed Load Floating-Point Double, plfd */
+ case 48: /* Prefixed Load Floating-Point Single, plfs */
+ case 50: /* Prefixed Load Floating-Point Double, plfd */
if ((type == 2) && (ST1 == 0))
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_fp0_regnum
- + PPC_FRT (insn_suffix));
+ record_full_arch_list_add_reg (regcache, tdep->ppc_fp0_regnum
+ + PPC_FRT (insn_suffix));
else
goto UNKNOWN_PREFIX_OP;
break;
- case 58: /* Prefixed Load VSX Vector Paired, plxvp */
+ case 58: /* Prefixed Load VSX Vector Paired, plxvp */
if ((type == 0) && (ST1 == 0))
{
ppc_record_vsr (regcache, tdep, PPC_XTp (insn_suffix));
@@ -7042,11 +6929,12 @@ ppc_process_prefix_instruction (int insn_prefix, int insn_suffix,
case 59:
if (ppc_process_record_prefix_op59_XX3 (gdbarch, regcache, insn_prefix,
- insn_suffix) != 0)
+ insn_suffix)
+ != 0)
goto UNKNOWN_PREFIX_OP;
break;
- case 62: /* Prefixed Store VSX Vector Paired 8LS, pstxvp */
+ case 62: /* Prefixed Store VSX Vector Paired 8LS, pstxvp */
if ((type == 0) && (ST1 == 0))
{
int R = PPC_BIT (insn_prefix, 11);
@@ -7055,13 +6943,12 @@ ppc_process_prefix_instruction (int insn_prefix, int insn_suffix,
if (R == 0)
{
if (PPC_RA (insn_suffix) != 0)
- regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum
- + PPC_RA (insn_suffix), &ea);
+ regcache_raw_read_unsigned (
+ regcache, tdep->ppc_gp0_regnum + PPC_RA (insn_suffix), &ea);
}
else
{
- ea = addr; /* PC relative */
+ ea = addr; /* PC relative */
}
ea += P_PPC_D (insn_prefix, insn_suffix) << 4;
@@ -7072,16 +6959,15 @@ ppc_process_prefix_instruction (int insn_prefix, int insn_suffix,
break;
default:
-UNKNOWN_PREFIX_OP:
+ UNKNOWN_PREFIX_OP:
gdb_printf (gdb_stdlog,
"Warning: Don't know how to record prefix instruction "
"%08x %08x at %s, %d.\n",
- insn_prefix, insn_suffix, paddress (gdbarch, addr),
- op6);
+ insn_prefix, insn_suffix, paddress (gdbarch, addr), op6);
return -1;
}
- SUCCESS:
+SUCCESS:
if (record_full_arch_list_add_reg (regcache, PPC_PC_REGNUM))
return -1;
@@ -7092,7 +6978,7 @@ UNKNOWN_PREFIX_OP:
int
ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
- CORE_ADDR addr)
+ CORE_ADDR addr)
{
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -7104,29 +6990,29 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
switch (op6)
{
- case 1: /* prefixed instruction */
+ case 1: /* prefixed instruction */
{
/* Get the lower 32-bits of the prefixed instruction. */
- insn_suffix = read_memory_unsigned_integer (addr+4, 4, byte_order);
+ insn_suffix = read_memory_unsigned_integer (addr + 4, 4, byte_order);
return ppc_process_prefix_instruction (insn, insn_suffix, addr,
gdbarch, regcache);
}
- case 2: /* Trap Doubleword Immediate */
- case 3: /* Trap Word Immediate */
+ case 2: /* Trap Doubleword Immediate */
+ case 3: /* Trap Word Immediate */
/* Do nothing. */
break;
- case 4: /* Vector Integer, Compare, Logical, Shift, etc. */
+ case 4: /* Vector Integer, Compare, Logical, Shift, etc. */
if (ppc_process_record_op4 (gdbarch, regcache, addr, insn) != 0)
return -1;
break;
- case 6: /* Vector Load and Store */
+ case 6: /* Vector Load and Store */
if (ppc_process_record_op6 (gdbarch, regcache, addr, insn) != 0)
return -1;
break;
- case 17: /* System call */
+ case 17: /* System call */
if (PPC_LEV (insn) != 0)
goto UNKNOWN_OP;
@@ -7137,44 +7023,44 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
}
else
{
- gdb_printf (gdb_stderr, _("no syscall record support\n"));
+ gdb_printf (gdb_stderr, _ ("no syscall record support\n"));
return -1;
}
break;
- case 7: /* Multiply Low Immediate */
+ case 7: /* Multiply Low Immediate */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
break;
- case 8: /* Subtract From Immediate Carrying */
+ case 8: /* Subtract From Immediate Carrying */
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
break;
- case 10: /* Compare Logical Immediate */
- case 11: /* Compare Immediate */
+ case 10: /* Compare Logical Immediate */
+ case 11: /* Compare Immediate */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
break;
- case 13: /* Add Immediate Carrying and Record */
+ case 13: /* Add Immediate Carrying and Record */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
/* FALL-THROUGH */
- case 12: /* Add Immediate Carrying */
+ case 12: /* Add Immediate Carrying */
record_full_arch_list_add_reg (regcache, tdep->ppc_xer_regnum);
/* FALL-THROUGH */
- case 14: /* Add Immediate */
- case 15: /* Add Immediate Shifted */
+ case 14: /* Add Immediate */
+ case 15: /* Add Immediate Shifted */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
break;
- case 16: /* Branch Conditional */
+ case 16: /* Branch Conditional */
if ((PPC_BO (insn) & 0x4) == 0)
record_full_arch_list_add_reg (regcache, tdep->ppc_ctr_regnum);
/* FALL-THROUGH */
- case 18: /* Branch */
+ case 18: /* Branch */
if (PPC_LK (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_lr_regnum);
break;
@@ -7184,29 +7070,29 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
return -1;
break;
- case 20: /* Rotate Left Word Immediate then Mask Insert */
- case 21: /* Rotate Left Word Immediate then AND with Mask */
- case 23: /* Rotate Left Word then AND with Mask */
- case 30: /* Rotate Left Doubleword Immediate then Clear Left */
- /* Rotate Left Doubleword Immediate then Clear Right */
- /* Rotate Left Doubleword Immediate then Clear */
- /* Rotate Left Doubleword then Clear Left */
- /* Rotate Left Doubleword then Clear Right */
- /* Rotate Left Doubleword Immediate then Mask Insert */
+ case 20: /* Rotate Left Word Immediate then Mask Insert */
+ case 21: /* Rotate Left Word Immediate then AND with Mask */
+ case 23: /* Rotate Left Word then AND with Mask */
+ case 30: /* Rotate Left Doubleword Immediate then Clear Left */
+ /* Rotate Left Doubleword Immediate then Clear Right */
+ /* Rotate Left Doubleword Immediate then Clear */
+ /* Rotate Left Doubleword then Clear Left */
+ /* Rotate Left Doubleword then Clear Right */
+ /* Rotate Left Doubleword Immediate then Mask Insert */
if (PPC_RC (insn))
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
break;
- case 28: /* AND Immediate */
- case 29: /* AND Immediate Shifted */
+ case 28: /* AND Immediate */
+ case 29: /* AND Immediate Shifted */
record_full_arch_list_add_reg (regcache, tdep->ppc_cr_regnum);
/* FALL-THROUGH */
- case 24: /* OR Immediate */
- case 25: /* OR Immediate Shifted */
- case 26: /* XOR Immediate */
- case 27: /* XOR Immediate Shifted */
+ case 24: /* OR Immediate */
+ case 25: /* OR Immediate Shifted */
+ case 26: /* XOR Immediate */
+ case 27: /* XOR Immediate Shifted */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
break;
@@ -7216,105 +7102,105 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
return -1;
break;
- case 33: /* Load Word and Zero with Update */
- case 35: /* Load Byte and Zero with Update */
- case 41: /* Load Halfword and Zero with Update */
- case 43: /* Load Halfword Algebraic with Update */
+ case 33: /* Load Word and Zero with Update */
+ case 35: /* Load Byte and Zero with Update */
+ case 41: /* Load Halfword and Zero with Update */
+ case 43: /* Load Halfword Algebraic with Update */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 32: /* Load Word and Zero */
- case 34: /* Load Byte and Zero */
- case 40: /* Load Halfword and Zero */
- case 42: /* Load Halfword Algebraic */
+ case 32: /* Load Word and Zero */
+ case 34: /* Load Byte and Zero */
+ case 40: /* Load Halfword and Zero */
+ case 42: /* Load Halfword Algebraic */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RT (insn));
break;
- case 46: /* Load Multiple Word */
+ case 46: /* Load Multiple Word */
for (i = PPC_RT (insn); i < 32; i++)
record_full_arch_list_add_reg (regcache, tdep->ppc_gp0_regnum + i);
break;
- case 56: /* Load Quadword */
+ case 56: /* Load Quadword */
tmp = tdep->ppc_gp0_regnum + (PPC_RT (insn) & ~1);
record_full_arch_list_add_reg (regcache, tmp);
record_full_arch_list_add_reg (regcache, tmp + 1);
break;
- case 49: /* Load Floating-Point Single with Update */
- case 51: /* Load Floating-Point Double with Update */
+ case 49: /* Load Floating-Point Single with Update */
+ case 51: /* Load Floating-Point Double with Update */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 48: /* Load Floating-Point Single */
- case 50: /* Load Floating-Point Double */
+ case 48: /* Load Floating-Point Single */
+ case 50: /* Load Floating-Point Double */
record_full_arch_list_add_reg (regcache,
tdep->ppc_fp0_regnum + PPC_FRT (insn));
break;
- case 47: /* Store Multiple Word */
- {
- ULONGEST iaddr = 0;
+ case 47: /* Store Multiple Word */
+ {
+ ULONGEST iaddr = 0;
- if (PPC_RA (insn) != 0)
- regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum + PPC_RA (insn),
- &iaddr);
+ if (PPC_RA (insn) != 0)
+ regcache_raw_read_unsigned (regcache,
+ tdep->ppc_gp0_regnum + PPC_RA (insn),
+ &iaddr);
- iaddr += PPC_D (insn);
- record_full_arch_list_add_mem (iaddr, 4 * (32 - PPC_RS (insn)));
- }
+ iaddr += PPC_D (insn);
+ record_full_arch_list_add_mem (iaddr, 4 * (32 - PPC_RS (insn)));
+ }
break;
- case 37: /* Store Word with Update */
- case 39: /* Store Byte with Update */
- case 45: /* Store Halfword with Update */
- case 53: /* Store Floating-Point Single with Update */
- case 55: /* Store Floating-Point Double with Update */
+ case 37: /* Store Word with Update */
+ case 39: /* Store Byte with Update */
+ case 45: /* Store Halfword with Update */
+ case 53: /* Store Floating-Point Single with Update */
+ case 55: /* Store Floating-Point Double with Update */
record_full_arch_list_add_reg (regcache,
tdep->ppc_gp0_regnum + PPC_RA (insn));
/* FALL-THROUGH */
- case 36: /* Store Word */
- case 38: /* Store Byte */
- case 44: /* Store Halfword */
- case 52: /* Store Floating-Point Single */
- case 54: /* Store Floating-Point Double */
- {
- ULONGEST iaddr = 0;
- int size = -1;
-
- if (PPC_RA (insn) != 0)
- regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum + PPC_RA (insn),
- &iaddr);
- iaddr += PPC_D (insn);
-
- if (op6 == 36 || op6 == 37 || op6 == 52 || op6 == 53)
- size = 4;
- else if (op6 == 54 || op6 == 55)
- size = 8;
- else if (op6 == 44 || op6 == 45)
- size = 2;
- else if (op6 == 38 || op6 == 39)
- size = 1;
- else
- gdb_assert (0);
+ case 36: /* Store Word */
+ case 38: /* Store Byte */
+ case 44: /* Store Halfword */
+ case 52: /* Store Floating-Point Single */
+ case 54: /* Store Floating-Point Double */
+ {
+ ULONGEST iaddr = 0;
+ int size = -1;
- record_full_arch_list_add_mem (iaddr, size);
- }
+ if (PPC_RA (insn) != 0)
+ regcache_raw_read_unsigned (regcache,
+ tdep->ppc_gp0_regnum + PPC_RA (insn),
+ &iaddr);
+ iaddr += PPC_D (insn);
+
+ if (op6 == 36 || op6 == 37 || op6 == 52 || op6 == 53)
+ size = 4;
+ else if (op6 == 54 || op6 == 55)
+ size = 8;
+ else if (op6 == 44 || op6 == 45)
+ size = 2;
+ else if (op6 == 38 || op6 == 39)
+ size = 1;
+ else
+ gdb_assert (0);
+
+ record_full_arch_list_add_mem (iaddr, size);
+ }
break;
case 57:
switch (insn & 0x3)
{
- case 0: /* Load Floating-Point Double Pair */
+ case 0: /* Load Floating-Point Double Pair */
tmp = tdep->ppc_fp0_regnum + (PPC_RT (insn) & ~1);
record_full_arch_list_add_reg (regcache, tmp);
record_full_arch_list_add_reg (regcache, tmp + 1);
break;
- case 2: /* Load VSX Scalar Doubleword */
- case 3: /* Load VSX Scalar Single */
+ case 2: /* Load VSX Scalar Doubleword */
+ case 3: /* Load VSX Scalar Single */
ppc_record_vsr (regcache, tdep, PPC_VRT (insn) + 32);
break;
default:
@@ -7322,9 +7208,9 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
}
break;
- case 58: /* Load Doubleword */
- /* Load Doubleword with Update */
- /* Load Word Algebraic */
+ case 58: /* Load Doubleword */
+ /* Load Doubleword with Update */
+ /* Load Word Algebraic */
if (PPC_FIELD (insn, 30, 2) > 2)
goto UNKNOWN_OP;
@@ -7350,34 +7236,33 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
return -1;
break;
- case 62: /* Store Doubleword */
- /* Store Doubleword with Update */
- /* Store Quadword with Update */
- {
- ULONGEST iaddr = 0;
- int size;
- int sub2 = PPC_FIELD (insn, 30, 2);
+ case 62: /* Store Doubleword */
+ /* Store Doubleword with Update */
+ /* Store Quadword with Update */
+ {
+ ULONGEST iaddr = 0;
+ int size;
+ int sub2 = PPC_FIELD (insn, 30, 2);
- if (sub2 > 2)
- goto UNKNOWN_OP;
+ if (sub2 > 2)
+ goto UNKNOWN_OP;
- if (PPC_RA (insn) != 0)
- regcache_raw_read_unsigned (regcache,
- tdep->ppc_gp0_regnum + PPC_RA (insn),
- &iaddr);
+ if (PPC_RA (insn) != 0)
+ regcache_raw_read_unsigned (regcache,
+ tdep->ppc_gp0_regnum + PPC_RA (insn),
+ &iaddr);
- size = (sub2 == 2) ? 16 : 8;
+ size = (sub2 == 2) ? 16 : 8;
- iaddr += PPC_DS (insn) << 2;
- record_full_arch_list_add_mem (iaddr, size);
+ iaddr += PPC_DS (insn) << 2;
+ record_full_arch_list_add_mem (iaddr, size);
- if (op6 == 62 && sub2 == 1)
- record_full_arch_list_add_reg (regcache,
- tdep->ppc_gp0_regnum +
- PPC_RA (insn));
+ if (op6 == 62 && sub2 == 1)
+ record_full_arch_list_add_reg (regcache,
+ tdep->ppc_gp0_regnum + PPC_RA (insn));
- break;
- }
+ break;
+ }
case 63:
if (ppc_process_record_op63 (gdbarch, regcache, addr, insn) != 0)
@@ -7385,9 +7270,11 @@ ppc_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
break;
default:
-UNKNOWN_OP:
- gdb_printf (gdb_stdlog, "Warning: Don't know how to record %08x "
- "at %s, %d.\n", insn, paddress (gdbarch, addr), op6);
+ UNKNOWN_OP:
+ gdb_printf (gdb_stdlog,
+ "Warning: Don't know how to record %08x "
+ "at %s, %d.\n",
+ insn, paddress (gdbarch, addr), op6);
return -1;
}
@@ -7447,15 +7334,15 @@ rs6000_program_breakpoint_here_p (gdbarch *gdbarch, CORE_ADDR address)
if (target_read_memory (address, target_mem, PPC_INSN_SIZE) == 0)
{
- uint32_t insn = (uint32_t) extract_unsigned_integer
- (target_mem, PPC_INSN_SIZE, gdbarch_byte_order_for_code (gdbarch));
+ uint32_t insn = (uint32_t) extract_unsigned_integer (
+ target_mem, PPC_INSN_SIZE, gdbarch_byte_order_for_code (gdbarch));
/* Check if INSN is a TW, TWI, TD or TDI instruction. There
are multiple choices of such instructions with different registers
and / or immediate values but they all cause a break. */
if (is_tw_insn (insn) || is_twi_insn (insn) || is_td_insn (insn)
- || is_tdi_insn (insn))
- return true;
+ || is_tdi_insn (insn))
+ return true;
}
return false;
@@ -7492,11 +7379,11 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
int num_pseudoregs = 0;
int cur_reg;
- from_xcoff_exec = info.abfd && info.abfd->format == bfd_object &&
- bfd_get_flavour (info.abfd) == bfd_target_xcoff_flavour;
+ from_xcoff_exec = info.abfd && info.abfd->format == bfd_object
+ && bfd_get_flavour (info.abfd) == bfd_target_xcoff_flavour;
- from_elf_exec = info.abfd && info.abfd->format == bfd_object &&
- bfd_get_flavour (info.abfd) == bfd_target_elf_flavour;
+ from_elf_exec = info.abfd && info.abfd->format == bfd_object
+ && bfd_get_flavour (info.abfd) == bfd_target_elf_flavour;
/* Check word size. If INFO is from a binary file, infer it from
that, else choose a likely default. */
@@ -7547,7 +7434,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Find a default target description which describes our register
layout, if we do not already have one. */
- if (! tdesc_has_registers (tdesc))
+ if (!tdesc_has_registers (tdesc))
{
const struct ppc_variant *v;
@@ -7564,20 +7451,18 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Check any target description for validity. */
if (tdesc_has_registers (tdesc))
{
- static const char *const gprs[] = {
- "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
- "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
- "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
- "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
- };
+ static const char *const gprs[]
+ = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
+ "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
+ "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31" };
const struct tdesc_feature *feature;
int i, valid_p;
static const char *const msr_names[] = { "msr", "ps" };
static const char *const cr_names[] = { "cr", "cnd" };
static const char *const ctr_names[] = { "ctr", "cnt" };
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.core");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.core");
if (feature == NULL)
return NULL;
@@ -7585,8 +7470,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
valid_p = 1;
for (i = 0; i < ppc_num_gprs; i++)
- valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- i, gprs[i]);
+ valid_p
+ &= tdesc_numbered_register (feature, tdesc_data.get (), i, gprs[i]);
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
PPC_PC_REGNUM, "pc");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
@@ -7613,16 +7498,14 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
if (wordsize == -1)
wordsize = tdesc_wordsize;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.fpu");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.fpu");
if (feature != NULL)
{
- static const char *const fprs[] = {
- "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"
- };
+ static const char *const fprs[]
+ = { "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" };
valid_p = 1;
for (i = 0; i < ppc_num_fprs; i++)
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
@@ -7643,22 +7526,21 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_fpu = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.altivec");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.altivec");
if (feature != NULL)
{
static const char *const vector_regs[] = {
- "vr0", "vr1", "vr2", "vr3", "vr4", "vr5", "vr6", "vr7",
- "vr8", "vr9", "vr10", "vr11", "vr12", "vr13", "vr14", "vr15",
+ "vr0", "vr1", "vr2", "vr3", "vr4", "vr5", "vr6", "vr7",
+ "vr8", "vr9", "vr10", "vr11", "vr12", "vr13", "vr14", "vr15",
"vr16", "vr17", "vr18", "vr19", "vr20", "vr21", "vr22", "vr23",
"vr24", "vr25", "vr26", "vr27", "vr28", "vr29", "vr30", "vr31"
};
valid_p = 1;
for (i = 0; i < ppc_num_gprs; i++)
- valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_VR0_REGNUM + i,
- vector_regs[i]);
+ valid_p
+ &= tdesc_numbered_register (feature, tdesc_data.get (),
+ PPC_VR0_REGNUM + i, vector_regs[i]);
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
PPC_VSCR_REGNUM, "vscr");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
@@ -7672,19 +7554,16 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
have_altivec = 0;
/* Check for POWER7 VSX registers support. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.vsx");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.vsx");
if (feature != NULL)
{
- static const char *const vsx_regs[] = {
- "vs0h", "vs1h", "vs2h", "vs3h", "vs4h", "vs5h",
- "vs6h", "vs7h", "vs8h", "vs9h", "vs10h", "vs11h",
- "vs12h", "vs13h", "vs14h", "vs15h", "vs16h", "vs17h",
- "vs18h", "vs19h", "vs20h", "vs21h", "vs22h", "vs23h",
- "vs24h", "vs25h", "vs26h", "vs27h", "vs28h", "vs29h",
- "vs30h", "vs31h"
- };
+ static const char *const vsx_regs[]
+ = { "vs0h", "vs1h", "vs2h", "vs3h", "vs4h", "vs5h", "vs6h",
+ "vs7h", "vs8h", "vs9h", "vs10h", "vs11h", "vs12h", "vs13h",
+ "vs14h", "vs15h", "vs16h", "vs17h", "vs18h", "vs19h", "vs20h",
+ "vs21h", "vs22h", "vs23h", "vs24h", "vs25h", "vs26h", "vs27h",
+ "vs28h", "vs29h", "vs30h", "vs31h" };
valid_p = 1;
@@ -7714,20 +7593,15 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
Thus, the target description is expected to supply the upper
halves separately. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.spe");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.spe");
if (feature != NULL)
{
- static const char *const upper_spe[] = {
- "ev0h", "ev1h", "ev2h", "ev3h",
- "ev4h", "ev5h", "ev6h", "ev7h",
- "ev8h", "ev9h", "ev10h", "ev11h",
- "ev12h", "ev13h", "ev14h", "ev15h",
- "ev16h", "ev17h", "ev18h", "ev19h",
- "ev20h", "ev21h", "ev22h", "ev23h",
- "ev24h", "ev25h", "ev26h", "ev27h",
- "ev28h", "ev29h", "ev30h", "ev31h"
- };
+ static const char *const upper_spe[]
+ = { "ev0h", "ev1h", "ev2h", "ev3h", "ev4h", "ev5h", "ev6h",
+ "ev7h", "ev8h", "ev9h", "ev10h", "ev11h", "ev12h", "ev13h",
+ "ev14h", "ev15h", "ev16h", "ev17h", "ev18h", "ev19h", "ev20h",
+ "ev21h", "ev22h", "ev23h", "ev24h", "ev25h", "ev26h", "ev27h",
+ "ev28h", "ev29h", "ev30h", "ev31h" };
valid_p = 1;
for (i = 0; i < ppc_num_gprs; i++)
@@ -7747,8 +7621,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
have_spe = 0;
/* Program Priority Register. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.ppr");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.ppr");
if (feature != NULL)
{
valid_p = 1;
@@ -7763,8 +7636,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
have_ppr = 0;
/* Data Stream Control Register. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.dscr");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.dscr");
if (feature != NULL)
{
valid_p = 1;
@@ -7779,8 +7651,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
have_dscr = 0;
/* Target Address Register. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.tar");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.tar");
if (feature != NULL)
{
valid_p = 1;
@@ -7795,19 +7666,16 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
have_tar = 0;
/* Event-based Branching Registers. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.ebb");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.ebb");
if (feature != NULL)
{
- static const char *const ebb_regs[] = {
- "bescr", "ebbhr", "ebbrr"
- };
+ static const char *const ebb_regs[] = { "bescr", "ebbhr", "ebbrr" };
valid_p = 1;
for (i = 0; i < ARRAY_SIZE (ebb_regs); i++)
- valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_BESCR_REGNUM + i,
- ebb_regs[i]);
+ valid_p
+ &= tdesc_numbered_register (feature, tdesc_data.get (),
+ PPC_BESCR_REGNUM + i, ebb_regs[i]);
if (!valid_p)
return NULL;
have_ebb = 1;
@@ -7817,27 +7685,21 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Subset of the ISA 2.07 Performance Monitor Registers provided
by Linux. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.linux.pmu");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.linux.pmu");
if (feature != NULL)
{
valid_p = 1;
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_MMCR0_REGNUM,
- "mmcr0");
+ PPC_MMCR0_REGNUM, "mmcr0");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_MMCR2_REGNUM,
- "mmcr2");
+ PPC_MMCR2_REGNUM, "mmcr2");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_SIAR_REGNUM,
- "siar");
+ PPC_SIAR_REGNUM, "siar");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_SDAR_REGNUM,
- "sdar");
+ PPC_SDAR_REGNUM, "sdar");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_SIER_REGNUM,
- "sier");
+ PPC_SIER_REGNUM, "sier");
if (!valid_p)
return NULL;
@@ -7847,13 +7709,11 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
have_pmu = 0;
/* Hardware Transactional Memory Registers. */
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.spr");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.spr");
if (feature != NULL)
{
- static const char *const tm_spr_regs[] = {
- "tfhar", "texasr", "tfiar"
- };
+ static const char *const tm_spr_regs[]
+ = { "tfhar", "texasr", "tfiar" };
valid_p = 1;
for (i = 0; i < ARRAY_SIZE (tm_spr_regs); i++)
@@ -7868,24 +7728,21 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_spr = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.core");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.core");
if (feature != NULL)
{
- static const char *const cgprs[] = {
- "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7",
- "cr8", "cr9", "cr10", "cr11", "cr12", "cr13", "cr14",
- "cr15", "cr16", "cr17", "cr18", "cr19", "cr20", "cr21",
- "cr22", "cr23", "cr24", "cr25", "cr26", "cr27", "cr28",
- "cr29", "cr30", "cr31", "ccr", "cxer", "clr", "cctr"
- };
+ static const char *const cgprs[]
+ = { "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7",
+ "cr8", "cr9", "cr10", "cr11", "cr12", "cr13", "cr14", "cr15",
+ "cr16", "cr17", "cr18", "cr19", "cr20", "cr21", "cr22", "cr23",
+ "cr24", "cr25", "cr26", "cr27", "cr28", "cr29", "cr30", "cr31",
+ "ccr", "cxer", "clr", "cctr" };
valid_p = 1;
for (i = 0; i < ARRAY_SIZE (cgprs); i++)
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_CR0_REGNUM + i,
- cgprs[i]);
+ PPC_CR0_REGNUM + i, cgprs[i]);
if (!valid_p)
return NULL;
@@ -7894,24 +7751,21 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_core = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.fpu");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.fpu");
if (feature != NULL)
{
valid_p = 1;
- static const char *const cfprs[] = {
- "cf0", "cf1", "cf2", "cf3", "cf4", "cf5", "cf6", "cf7",
- "cf8", "cf9", "cf10", "cf11", "cf12", "cf13", "cf14", "cf15",
- "cf16", "cf17", "cf18", "cf19", "cf20", "cf21", "cf22",
- "cf23", "cf24", "cf25", "cf26", "cf27", "cf28", "cf29",
- "cf30", "cf31", "cfpscr"
- };
+ static const char *const cfprs[]
+ = { "cf0", "cf1", "cf2", "cf3", "cf4", "cf5", "cf6",
+ "cf7", "cf8", "cf9", "cf10", "cf11", "cf12", "cf13",
+ "cf14", "cf15", "cf16", "cf17", "cf18", "cf19", "cf20",
+ "cf21", "cf22", "cf23", "cf24", "cf25", "cf26", "cf27",
+ "cf28", "cf29", "cf30", "cf31", "cfpscr" };
for (i = 0; i < ARRAY_SIZE (cfprs); i++)
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_CF0_REGNUM + i,
- cfprs[i]);
+ PPC_CF0_REGNUM + i, cfprs[i]);
if (!valid_p)
return NULL;
@@ -7920,25 +7774,21 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_fpu = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.altivec");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.altivec");
if (feature != NULL)
{
valid_p = 1;
- static const char *const cvmx[] = {
- "cvr0", "cvr1", "cvr2", "cvr3", "cvr4", "cvr5", "cvr6",
- "cvr7", "cvr8", "cvr9", "cvr10", "cvr11", "cvr12", "cvr13",
- "cvr14", "cvr15","cvr16", "cvr17", "cvr18", "cvr19", "cvr20",
- "cvr21", "cvr22", "cvr23", "cvr24", "cvr25", "cvr26",
- "cvr27", "cvr28", "cvr29", "cvr30", "cvr31", "cvscr",
- "cvrsave"
- };
+ static const char *const cvmx[]
+ = { "cvr0", "cvr1", "cvr2", "cvr3", "cvr4", "cvr5", "cvr6",
+ "cvr7", "cvr8", "cvr9", "cvr10", "cvr11", "cvr12", "cvr13",
+ "cvr14", "cvr15", "cvr16", "cvr17", "cvr18", "cvr19", "cvr20",
+ "cvr21", "cvr22", "cvr23", "cvr24", "cvr25", "cvr26", "cvr27",
+ "cvr28", "cvr29", "cvr30", "cvr31", "cvscr", "cvrsave" };
for (i = 0; i < ARRAY_SIZE (cvmx); i++)
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- PPC_CVR0_REGNUM + i,
- cvmx[i]);
+ PPC_CVR0_REGNUM + i, cvmx[i]);
if (!valid_p)
return NULL;
@@ -7947,25 +7797,22 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_altivec = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.vsx");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.vsx");
if (feature != NULL)
{
valid_p = 1;
- static const char *const cvsx[] = {
- "cvs0h", "cvs1h", "cvs2h", "cvs3h", "cvs4h", "cvs5h",
- "cvs6h", "cvs7h", "cvs8h", "cvs9h", "cvs10h", "cvs11h",
- "cvs12h", "cvs13h", "cvs14h", "cvs15h", "cvs16h", "cvs17h",
- "cvs18h", "cvs19h", "cvs20h", "cvs21h", "cvs22h", "cvs23h",
- "cvs24h", "cvs25h", "cvs26h", "cvs27h", "cvs28h", "cvs29h",
- "cvs30h", "cvs31h"
- };
+ static const char *const cvsx[]
+ = { "cvs0h", "cvs1h", "cvs2h", "cvs3h", "cvs4h", "cvs5h",
+ "cvs6h", "cvs7h", "cvs8h", "cvs9h", "cvs10h", "cvs11h",
+ "cvs12h", "cvs13h", "cvs14h", "cvs15h", "cvs16h", "cvs17h",
+ "cvs18h", "cvs19h", "cvs20h", "cvs21h", "cvs22h", "cvs23h",
+ "cvs24h", "cvs25h", "cvs26h", "cvs27h", "cvs28h", "cvs29h",
+ "cvs30h", "cvs31h" };
for (i = 0; i < ARRAY_SIZE (cvsx); i++)
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
- (PPC_CVSR0_UPPER_REGNUM
- + i),
+ (PPC_CVSR0_UPPER_REGNUM + i),
cvsx[i]);
if (!valid_p || !have_htm_fpu || !have_htm_altivec)
@@ -7975,8 +7822,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_vsx = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.ppr");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.ppr");
if (feature != NULL)
{
valid_p = tdesc_numbered_register (feature, tdesc_data.get (),
@@ -7989,8 +7835,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_ppr = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.dscr");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.dscr");
if (feature != NULL)
{
valid_p = tdesc_numbered_register (feature, tdesc_data.get (),
@@ -8003,8 +7848,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
have_htm_dscr = 0;
- feature = tdesc_find_feature (tdesc,
- "org.gnu.gdb.power.htm.tar");
+ feature = tdesc_find_feature (tdesc, "org.gnu.gdb.power.htm.tar");
if (feature != NULL)
{
valid_p = tdesc_numbered_register (feature, tdesc_data.get (),
@@ -8051,7 +7895,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
if (soft_float_flag == AUTO_BOOLEAN_AUTO && from_elf_exec)
{
switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU,
- Tag_GNU_Power_ABI_FP) & 3)
+ Tag_GNU_Power_ABI_FP)
+ & 3)
{
case 1:
soft_float_flag = AUTO_BOOLEAN_FALSE;
@@ -8067,7 +7912,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
if (long_double_abi == POWERPC_LONG_DOUBLE_AUTO && from_elf_exec)
{
switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU,
- Tag_GNU_Power_ABI_FP) >> 2)
+ Tag_GNU_Power_ABI_FP)
+ >> 2)
{
case 1:
long_double_abi = POWERPC_LONG_DOUBLE_IBM128;
@@ -8149,8 +7995,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
do not yet know what hardware we'll decide we have. Yuck! FIXME! */
/* Find a candidate among extant architectures. */
- for (arches = gdbarch_list_lookup_by_info (arches, &info);
- arches != NULL;
+ for (arches = gdbarch_list_lookup_by_info (arches, &info); arches != NULL;
arches = gdbarch_list_lookup_by_info (arches->next, &info))
{
/* Word size in the various PowerPC bfd_arch_info structs isn't
@@ -8257,14 +8102,14 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
tdep->lr_frame_offset = 4;
- if (have_spe || have_dfp || have_altivec
- || have_vsx || have_htm_fpu || have_htm_vsx)
+ if (have_spe || have_dfp || have_altivec || have_vsx || have_htm_fpu
+ || have_htm_vsx)
{
set_gdbarch_pseudo_register_read (gdbarch, rs6000_pseudo_register_read);
set_gdbarch_pseudo_register_write (gdbarch,
rs6000_pseudo_register_write);
- set_gdbarch_ax_pseudo_register_collect (gdbarch,
- rs6000_ax_pseudo_register_collect);
+ set_gdbarch_ax_pseudo_register_collect (
+ gdbarch, rs6000_ax_pseudo_register_collect);
}
set_gdbarch_gen_return_address (gdbarch, rs6000_gen_return_address);
@@ -8318,7 +8163,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_push_dummy_call (gdbarch, ppc64_sysv_abi_push_dummy_call);
set_gdbarch_skip_prologue (gdbarch, rs6000_skip_prologue);
- set_gdbarch_stack_frame_destroyed_p (gdbarch, rs6000_stack_frame_destroyed_p);
+ set_gdbarch_stack_frame_destroyed_p (gdbarch,
+ rs6000_stack_frame_destroyed_p);
set_gdbarch_skip_main_prologue (gdbarch, rs6000_skip_main_prologue);
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
@@ -8328,7 +8174,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_sw_breakpoint_from_kind (gdbarch,
rs6000_breakpoint::bp_from_kind);
set_gdbarch_program_breakpoint_here_p (gdbarch,
- rs6000_program_breakpoint_here_p);
+ rs6000_program_breakpoint_here_p);
/* The value of symbols of type N_SO and N_FUN maybe null when
it shouldn't be. */
@@ -8336,7 +8182,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Handles single stepping of atomic sequences. */
set_gdbarch_software_single_step (gdbarch, ppc_deal_with_atomic_sequence);
-
+
/* Not sure on this. FIXMEmgo */
set_gdbarch_frame_args_skip (gdbarch, 8);
@@ -8344,8 +8190,8 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_fetch_pointer_argument (gdbarch, rs6000_fetch_pointer_argument);
/* Trampoline. */
- set_gdbarch_in_solib_return_trampoline
- (gdbarch, rs6000_in_solib_return_trampoline);
+ set_gdbarch_in_solib_return_trampoline (gdbarch,
+ rs6000_in_solib_return_trampoline);
set_gdbarch_skip_trampoline_code (gdbarch, rs6000_skip_trampoline_code);
/* Hook in the DWARF CFI frame unwinder. */
@@ -8356,15 +8202,14 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
dwarf2_frame_set_init_reg (gdbarch, ppc_dwarf2_frame_init_reg);
/* Setup displaced stepping. */
- set_gdbarch_displaced_step_copy_insn (gdbarch,
- ppc_displaced_step_copy_insn);
+ set_gdbarch_displaced_step_copy_insn (gdbarch, ppc_displaced_step_copy_insn);
set_gdbarch_displaced_step_hw_singlestep (gdbarch,
ppc_displaced_step_hw_singlestep);
set_gdbarch_displaced_step_fixup (gdbarch, ppc_displaced_step_fixup);
set_gdbarch_displaced_step_prepare (gdbarch, ppc_displaced_step_prepare);
set_gdbarch_displaced_step_finish (gdbarch, ppc_displaced_step_finish);
- set_gdbarch_displaced_step_restore_all_in_ptid
- (gdbarch, ppc_displaced_step_restore_all_in_ptid);
+ set_gdbarch_displaced_step_restore_all_in_ptid (
+ gdbarch, ppc_displaced_step_restore_all_in_ptid);
set_gdbarch_max_insn_length (gdbarch, 2 * PPC_INSN_SIZE);
@@ -8480,7 +8325,7 @@ powerpc_set_soft_float (const char *args, int from_tty,
/* Update the architecture. */
if (!gdbarch_update_p (info))
- internal_error (_("could not update architecture"));
+ internal_error (_ ("could not update architecture"));
}
static void
@@ -8489,34 +8334,32 @@ powerpc_set_vector_abi (const char *args, int from_tty,
{
int vector_abi;
- for (vector_abi = POWERPC_VEC_AUTO;
- vector_abi != POWERPC_VEC_LAST;
+ for (vector_abi = POWERPC_VEC_AUTO; vector_abi != POWERPC_VEC_LAST;
vector_abi++)
- if (strcmp (powerpc_vector_abi_string,
- powerpc_vector_strings[vector_abi]) == 0)
+ if (strcmp (powerpc_vector_abi_string, powerpc_vector_strings[vector_abi])
+ == 0)
{
powerpc_vector_abi_global = (enum powerpc_vector_abi) vector_abi;
break;
}
if (vector_abi == POWERPC_VEC_LAST)
- internal_error (_("Invalid vector ABI accepted: %s."),
+ internal_error (_ ("Invalid vector ABI accepted: %s."),
powerpc_vector_abi_string);
/* Update the architecture. */
gdbarch_info info;
if (!gdbarch_update_p (info))
- internal_error (_("could not update architecture"));
+ internal_error (_ ("could not update architecture"));
}
/* Show the current setting of the exact watchpoints flag. */
static void
show_powerpc_exact_watchpoints (struct ui_file *file, int from_tty,
- struct cmd_list_element *c,
- const char *value)
+ struct cmd_list_element *c, const char *value)
{
- gdb_printf (file, _("Use of exact watchpoints is %s.\n"), value);
+ gdb_printf (file, _ ("Use of exact watchpoints is %s.\n"), value);
}
/* Read a PPC instruction from memory. */
@@ -8593,12 +8436,13 @@ ppc_insn_prefix_dform (unsigned int insn1, unsigned int insn2)
{
/* result is 34-bits */
return (CORE_ADDR) ((((insn1 & 0x3ffff) ^ 0x20000) - 0x20000) << 16)
- | (CORE_ADDR)(insn2 & 0xffff);
+ | (CORE_ADDR) (insn2 & 0xffff);
}
/* Initialization code. */
void _initialize_rs6000_tdep ();
+
void
_initialize_rs6000_tdep ()
{
@@ -8629,34 +8473,31 @@ _initialize_rs6000_tdep ()
/* Add root prefix command for all "set powerpc"/"show powerpc"
commands. */
add_setshow_prefix_cmd ("powerpc", no_class,
- _("Various PowerPC-specific commands."),
- _("Various PowerPC-specific commands."),
- &setpowerpccmdlist, &showpowerpccmdlist,
- &setlist, &showlist);
+ _ ("Various PowerPC-specific commands."),
+ _ ("Various PowerPC-specific commands."),
+ &setpowerpccmdlist, &showpowerpccmdlist, &setlist,
+ &showlist);
/* Add a command to allow the user to force the ABI. */
add_setshow_auto_boolean_cmd ("soft-float", class_support,
&powerpc_soft_float_global,
- _("Set whether to use a soft-float ABI."),
- _("Show whether to use a soft-float ABI."),
- NULL,
- powerpc_set_soft_float, NULL,
+ _ ("Set whether to use a soft-float ABI."),
+ _ ("Show whether to use a soft-float ABI."),
+ NULL, powerpc_set_soft_float, NULL,
&setpowerpccmdlist, &showpowerpccmdlist);
add_setshow_enum_cmd ("vector-abi", class_support, powerpc_vector_strings,
- &powerpc_vector_abi_string,
- _("Set the vector ABI."),
- _("Show the vector ABI."),
- NULL, powerpc_set_vector_abi, NULL,
- &setpowerpccmdlist, &showpowerpccmdlist);
+ &powerpc_vector_abi_string, _ ("Set the vector ABI."),
+ _ ("Show the vector ABI."), NULL,
+ powerpc_set_vector_abi, NULL, &setpowerpccmdlist,
+ &showpowerpccmdlist);
add_setshow_boolean_cmd ("exact-watchpoints", class_support,
- &target_exact_watchpoints,
- _("\
+ &target_exact_watchpoints, _ ("\
Set whether to use just one debug register for watchpoints on scalars."),
- _("\
+ _ ("\
Show whether to use just one debug register for watchpoints on scalars."),
- _("\
+ _ ("\
If true, GDB will use only one debug register when watching a variable of\n\
scalar type, thus assuming that the variable is accessed through the address\n\
of its first byte."),