aboutsummaryrefslogtreecommitdiff
path: root/gdb/nds32-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/nds32-tdep.c')
-rw-r--r--gdb/nds32-tdep.c496
1 files changed, 259 insertions, 237 deletions
diff --git a/gdb/nds32-tdep.c b/gdb/nds32-tdep.c
index ede1a18..c6b2336 100644
--- a/gdb/nds32-tdep.c
+++ b/gdb/nds32-tdep.c
@@ -46,20 +46,25 @@
#include "features/nds32.c"
/* Simple macros for instruction analysis. */
-#define CHOP_BITS(insn, n) (insn & ~__MASK (n))
-#define N32_LSMW_ENABLE4(insn) (((insn) >> 6) & 0xf)
+#define CHOP_BITS(insn, n) (insn & ~__MASK (n))
+#define N32_LSMW_ENABLE4(insn) (((insn) >> 6) & 0xf)
#define N32_SMW_ADM \
- N32_TYPE4 (LSMW, 0, 0, 0, 1, (N32_LSMW_ADM << 2) | N32_LSMW_LSMW)
+ N32_TYPE4 (LSMW, 0, 0, 0, 1, (N32_LSMW_ADM << 2) | N32_LSMW_LSMW)
#define N32_LMW_BIM \
- N32_TYPE4 (LSMW, 0, 0, 0, 0, (N32_LSMW_BIM << 2) | N32_LSMW_LSMW)
-#define N32_FLDI_SP \
- N32_TYPE2 (LDC, 0, REG_SP, 0)
+ N32_TYPE4 (LSMW, 0, 0, 0, 0, (N32_LSMW_BIM << 2) | N32_LSMW_LSMW)
+#define N32_FLDI_SP N32_TYPE2 (LDC, 0, REG_SP, 0)
/* Use an invalid address value as 'not available' marker. */
-enum { REG_UNAVAIL = (CORE_ADDR) -1 };
+enum
+{
+ REG_UNAVAIL = (CORE_ADDR) -1
+};
/* Use an impossible value as invalid offset. */
-enum { INVALID_OFFSET = (CORE_ADDR) -1 };
+enum
+{
+ INVALID_OFFSET = (CORE_ADDR) -1
+};
/* Instruction groups for NDS32 epilogue analysis. */
enum
@@ -76,32 +81,55 @@ enum
INSN_RECOVER_RETURN,
};
-static const char *const nds32_register_names[] =
-{
+static const char *const nds32_register_names[] = {
/* 32 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", "fp", "gp", "lp", "sp",
+ "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",
+ "fp",
+ "gp",
+ "lp",
+ "sp",
/* PC. */
"pc",
};
-static const char *const nds32_fdr_register_names[] =
-{
- "fd0", "fd1", "fd2", "fd3", "fd4", "fd5", "fd6", "fd7",
- "fd8", "fd9", "fd10", "fd11", "fd12", "fd13", "fd14", "fd15",
- "fd16", "fd17", "fd18", "fd19", "fd20", "fd21", "fd22", "fd23",
- "fd24", "fd25", "fd26", "fd27", "fd28", "fd29", "fd30", "fd31"
-};
+static const char *const nds32_fdr_register_names[]
+ = { "fd0", "fd1", "fd2", "fd3", "fd4", "fd5", "fd6", "fd7",
+ "fd8", "fd9", "fd10", "fd11", "fd12", "fd13", "fd14", "fd15",
+ "fd16", "fd17", "fd18", "fd19", "fd20", "fd21", "fd22", "fd23",
+ "fd24", "fd25", "fd26", "fd27", "fd28", "fd29", "fd30", "fd31" };
-static const char *const nds32_fsr_register_names[] =
-{
- "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7",
- "fs8", "fs9", "fs10", "fs11", "fs12", "fs13", "fs14", "fs15",
- "fs16", "fs17", "fs18", "fs19", "fs20", "fs21", "fs22", "fs23",
- "fs24", "fs25", "fs26", "fs27", "fs28", "fs29", "fs30", "fs31"
-};
+static const char *const nds32_fsr_register_names[]
+ = { "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7",
+ "fs8", "fs9", "fs10", "fs11", "fs12", "fs13", "fs14", "fs15",
+ "fs16", "fs17", "fs18", "fs19", "fs20", "fs21", "fs22", "fs23",
+ "fs24", "fs25", "fs26", "fs27", "fs28", "fs29", "fs30", "fs31" };
/* The number of registers for four FPU configuration options. */
const int num_fdr_map[] = { 4, 8, 16, 32 };
@@ -112,153 +140,152 @@ static const struct
{
const char *name;
const char *alias;
-} nds32_register_aliases[] =
-{
- {"r15", "ta"},
- {"r26", "p0"},
- {"r27", "p1"},
- {"fp", "r28"},
- {"gp", "r29"},
- {"lp", "r30"},
- {"sp", "r31"},
-
- {"cr0", "cpu_ver"},
- {"cr1", "icm_cfg"},
- {"cr2", "dcm_cfg"},
- {"cr3", "mmu_cfg"},
- {"cr4", "msc_cfg"},
- {"cr5", "core_id"},
- {"cr6", "fucop_exist"},
- {"cr7", "msc_cfg2"},
-
- {"ir0", "psw"},
- {"ir1", "ipsw"},
- {"ir2", "p_psw"},
- {"ir3", "ivb"},
- {"ir4", "eva"},
- {"ir5", "p_eva"},
- {"ir6", "itype"},
- {"ir7", "p_itype"},
- {"ir8", "merr"},
- {"ir9", "ipc"},
- {"ir10", "p_ipc"},
- {"ir11", "oipc"},
- {"ir12", "p_p0"},
- {"ir13", "p_p1"},
- {"ir14", "int_mask"},
- {"ir15", "int_pend"},
- {"ir16", "sp_usr"},
- {"ir17", "sp_priv"},
- {"ir18", "int_pri"},
- {"ir19", "int_ctrl"},
- {"ir20", "sp_usr1"},
- {"ir21", "sp_priv1"},
- {"ir22", "sp_usr2"},
- {"ir23", "sp_priv2"},
- {"ir24", "sp_usr3"},
- {"ir25", "sp_priv3"},
- {"ir26", "int_mask2"},
- {"ir27", "int_pend2"},
- {"ir28", "int_pri2"},
- {"ir29", "int_trigger"},
-
- {"mr0", "mmu_ctl"},
- {"mr1", "l1_pptb"},
- {"mr2", "tlb_vpn"},
- {"mr3", "tlb_data"},
- {"mr4", "tlb_misc"},
- {"mr5", "vlpt_idx"},
- {"mr6", "ilmb"},
- {"mr7", "dlmb"},
- {"mr8", "cache_ctl"},
- {"mr9", "hsmp_saddr"},
- {"mr10", "hsmp_eaddr"},
- {"mr11", "bg_region"},
-
- {"dr0", "bpc0"},
- {"dr1", "bpc1"},
- {"dr2", "bpc2"},
- {"dr3", "bpc3"},
- {"dr4", "bpc4"},
- {"dr5", "bpc5"},
- {"dr6", "bpc6"},
- {"dr7", "bpc7"},
- {"dr8", "bpa0"},
- {"dr9", "bpa1"},
- {"dr10", "bpa2"},
- {"dr11", "bpa3"},
- {"dr12", "bpa4"},
- {"dr13", "bpa5"},
- {"dr14", "bpa6"},
- {"dr15", "bpa7"},
- {"dr16", "bpam0"},
- {"dr17", "bpam1"},
- {"dr18", "bpam2"},
- {"dr19", "bpam3"},
- {"dr20", "bpam4"},
- {"dr21", "bpam5"},
- {"dr22", "bpam6"},
- {"dr23", "bpam7"},
- {"dr24", "bpv0"},
- {"dr25", "bpv1"},
- {"dr26", "bpv2"},
- {"dr27", "bpv3"},
- {"dr28", "bpv4"},
- {"dr29", "bpv5"},
- {"dr30", "bpv6"},
- {"dr31", "bpv7"},
- {"dr32", "bpcid0"},
- {"dr33", "bpcid1"},
- {"dr34", "bpcid2"},
- {"dr35", "bpcid3"},
- {"dr36", "bpcid4"},
- {"dr37", "bpcid5"},
- {"dr38", "bpcid6"},
- {"dr39", "bpcid7"},
- {"dr40", "edm_cfg"},
- {"dr41", "edmsw"},
- {"dr42", "edm_ctl"},
- {"dr43", "edm_dtr"},
- {"dr44", "bpmtc"},
- {"dr45", "dimbr"},
- {"dr46", "tecr0"},
- {"dr47", "tecr1"},
-
- {"hspr0", "hsp_ctl"},
- {"hspr1", "sp_bound"},
- {"hspr2", "sp_bound_priv"},
-
- {"pfr0", "pfmc0"},
- {"pfr1", "pfmc1"},
- {"pfr2", "pfmc2"},
- {"pfr3", "pfm_ctl"},
- {"pfr4", "pft_ctl"},
-
- {"dmar0", "dma_cfg"},
- {"dmar1", "dma_gcsw"},
- {"dmar2", "dma_chnsel"},
- {"dmar3", "dma_act"},
- {"dmar4", "dma_setup"},
- {"dmar5", "dma_isaddr"},
- {"dmar6", "dma_esaddr"},
- {"dmar7", "dma_tcnt"},
- {"dmar8", "dma_status"},
- {"dmar9", "dma_2dset"},
- {"dmar10", "dma_2dsctl"},
- {"dmar11", "dma_rcnt"},
- {"dmar12", "dma_hstatus"},
-
- {"racr0", "prusr_acc_ctl"},
- {"fucpr", "fucop_ctl"},
-
- {"idr0", "sdz_ctl"},
- {"idr1", "misc_ctl"},
- {"idr2", "ecc_misc"},
-
- {"secur0", "sfcr"},
- {"secur1", "sign"},
- {"secur2", "isign"},
- {"secur3", "p_isign"},
+} nds32_register_aliases[] = {
+ { "r15", "ta" },
+ { "r26", "p0" },
+ { "r27", "p1" },
+ { "fp", "r28" },
+ { "gp", "r29" },
+ { "lp", "r30" },
+ { "sp", "r31" },
+
+ { "cr0", "cpu_ver" },
+ { "cr1", "icm_cfg" },
+ { "cr2", "dcm_cfg" },
+ { "cr3", "mmu_cfg" },
+ { "cr4", "msc_cfg" },
+ { "cr5", "core_id" },
+ { "cr6", "fucop_exist" },
+ { "cr7", "msc_cfg2" },
+
+ { "ir0", "psw" },
+ { "ir1", "ipsw" },
+ { "ir2", "p_psw" },
+ { "ir3", "ivb" },
+ { "ir4", "eva" },
+ { "ir5", "p_eva" },
+ { "ir6", "itype" },
+ { "ir7", "p_itype" },
+ { "ir8", "merr" },
+ { "ir9", "ipc" },
+ { "ir10", "p_ipc" },
+ { "ir11", "oipc" },
+ { "ir12", "p_p0" },
+ { "ir13", "p_p1" },
+ { "ir14", "int_mask" },
+ { "ir15", "int_pend" },
+ { "ir16", "sp_usr" },
+ { "ir17", "sp_priv" },
+ { "ir18", "int_pri" },
+ { "ir19", "int_ctrl" },
+ { "ir20", "sp_usr1" },
+ { "ir21", "sp_priv1" },
+ { "ir22", "sp_usr2" },
+ { "ir23", "sp_priv2" },
+ { "ir24", "sp_usr3" },
+ { "ir25", "sp_priv3" },
+ { "ir26", "int_mask2" },
+ { "ir27", "int_pend2" },
+ { "ir28", "int_pri2" },
+ { "ir29", "int_trigger" },
+
+ { "mr0", "mmu_ctl" },
+ { "mr1", "l1_pptb" },
+ { "mr2", "tlb_vpn" },
+ { "mr3", "tlb_data" },
+ { "mr4", "tlb_misc" },
+ { "mr5", "vlpt_idx" },
+ { "mr6", "ilmb" },
+ { "mr7", "dlmb" },
+ { "mr8", "cache_ctl" },
+ { "mr9", "hsmp_saddr" },
+ { "mr10", "hsmp_eaddr" },
+ { "mr11", "bg_region" },
+
+ { "dr0", "bpc0" },
+ { "dr1", "bpc1" },
+ { "dr2", "bpc2" },
+ { "dr3", "bpc3" },
+ { "dr4", "bpc4" },
+ { "dr5", "bpc5" },
+ { "dr6", "bpc6" },
+ { "dr7", "bpc7" },
+ { "dr8", "bpa0" },
+ { "dr9", "bpa1" },
+ { "dr10", "bpa2" },
+ { "dr11", "bpa3" },
+ { "dr12", "bpa4" },
+ { "dr13", "bpa5" },
+ { "dr14", "bpa6" },
+ { "dr15", "bpa7" },
+ { "dr16", "bpam0" },
+ { "dr17", "bpam1" },
+ { "dr18", "bpam2" },
+ { "dr19", "bpam3" },
+ { "dr20", "bpam4" },
+ { "dr21", "bpam5" },
+ { "dr22", "bpam6" },
+ { "dr23", "bpam7" },
+ { "dr24", "bpv0" },
+ { "dr25", "bpv1" },
+ { "dr26", "bpv2" },
+ { "dr27", "bpv3" },
+ { "dr28", "bpv4" },
+ { "dr29", "bpv5" },
+ { "dr30", "bpv6" },
+ { "dr31", "bpv7" },
+ { "dr32", "bpcid0" },
+ { "dr33", "bpcid1" },
+ { "dr34", "bpcid2" },
+ { "dr35", "bpcid3" },
+ { "dr36", "bpcid4" },
+ { "dr37", "bpcid5" },
+ { "dr38", "bpcid6" },
+ { "dr39", "bpcid7" },
+ { "dr40", "edm_cfg" },
+ { "dr41", "edmsw" },
+ { "dr42", "edm_ctl" },
+ { "dr43", "edm_dtr" },
+ { "dr44", "bpmtc" },
+ { "dr45", "dimbr" },
+ { "dr46", "tecr0" },
+ { "dr47", "tecr1" },
+
+ { "hspr0", "hsp_ctl" },
+ { "hspr1", "sp_bound" },
+ { "hspr2", "sp_bound_priv" },
+
+ { "pfr0", "pfmc0" },
+ { "pfr1", "pfmc1" },
+ { "pfr2", "pfmc2" },
+ { "pfr3", "pfm_ctl" },
+ { "pfr4", "pft_ctl" },
+
+ { "dmar0", "dma_cfg" },
+ { "dmar1", "dma_gcsw" },
+ { "dmar2", "dma_chnsel" },
+ { "dmar3", "dma_act" },
+ { "dmar4", "dma_setup" },
+ { "dmar5", "dma_isaddr" },
+ { "dmar6", "dma_esaddr" },
+ { "dmar7", "dma_tcnt" },
+ { "dmar8", "dma_status" },
+ { "dmar9", "dma_2dset" },
+ { "dmar10", "dma_2dsctl" },
+ { "dmar11", "dma_rcnt" },
+ { "dmar12", "dma_hstatus" },
+
+ { "racr0", "prusr_acc_ctl" },
+ { "fucpr", "fucop_ctl" },
+
+ { "idr0", "sdz_ctl" },
+ { "idr1", "misc_ctl" },
+ { "idr2", "ecc_misc" },
+
+ { "secur0", "sfcr" },
+ { "secur1", "sign" },
+ { "secur2", "isign" },
+ { "secur3", "p_isign" },
};
/* Value of a register alias. BATON is the regnum of the corresponding
@@ -269,7 +296,7 @@ value_of_nds32_reg (frame_info_ptr frame, const void *baton)
{
return value_of_register ((int) (intptr_t) baton, frame);
}
-
+
/* Implement the "frame_align" gdbarch method. */
static CORE_ADDR
@@ -312,7 +339,7 @@ nds32_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int num)
/* No match, return a inaccessible register number. */
return -1;
}
-
+
/* NDS32 register groups. */
static const reggroup *nds32_cr_reggroup;
static const reggroup *nds32_ir_reggroup;
@@ -385,7 +412,7 @@ nds32_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
if (reggroup == system_reggroup)
return (regnum > NDS32_PC_REGNUM)
- && !nds32_register_reggroup_p (gdbarch, regnum, float_reggroup);
+ && !nds32_register_reggroup_p (gdbarch, regnum, float_reggroup);
/* The NDS32 reggroup contains registers whose name is prefixed
by reggroup name. */
@@ -393,7 +420,7 @@ nds32_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
group_name = reggroup->name ();
return !strncmp (reg_name, group_name, strlen (group_name));
}
-
+
/* Implement the "pseudo_register_type" tdesc_arch_data method. */
static struct type *
@@ -406,7 +433,7 @@ nds32_pseudo_register_type (struct gdbarch *gdbarch, int regnum)
return arch_float_type (gdbarch, -1, "builtin_type_ieee_single",
floatformats_ieee_single);
- warning (_("Unknown nds32 pseudo register %d."), regnum);
+ warning (_ ("Unknown nds32 pseudo register %d."), regnum);
return NULL;
}
@@ -497,7 +524,7 @@ nds32_pseudo_register_write (struct gdbarch *gdbarch,
gdb_assert_not_reached ("invalid pseudo register number");
}
-
+
/* Helper function for NDS32 ABI. Return true if FPRs can be used
to pass function arguments and return value. */
@@ -740,10 +767,8 @@ nds32_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc,
{
int op = N32_OP6 (insn);
- if (op == N32_OP6_JI
- || op == N32_OP6_JREG
- || op == N32_OP6_BR1
- || op == N32_OP6_BR2
+ if (op == N32_OP6_JI || op == N32_OP6_JREG
+ || op == N32_OP6_BR1 || op == N32_OP6_BR2
|| op == N32_OP6_BR3)
break;
}
@@ -887,7 +912,7 @@ nds32_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 + 128; /* Magic. */
+ limit_pc = pc + 128; /* Magic. */
/* Find the end of prologue. */
return nds32_analyze_prologue (gdbarch, pc, limit_pc, NULL);
@@ -949,8 +974,8 @@ nds32_frame_cache (frame_info_ptr this_frame, void **this_cache)
PC and the caller's SP when we were called. */
static void
-nds32_frame_this_id (frame_info_ptr this_frame,
- void **this_cache, struct frame_id *this_id)
+nds32_frame_this_id (frame_info_ptr this_frame, void **this_cache,
+ struct frame_id *this_id)
{
struct nds32_frame_cache *cache = nds32_frame_cache (this_frame, this_cache);
@@ -977,15 +1002,15 @@ nds32_frame_prev_register (frame_info_ptr this_frame, void **this_cache,
if (regnum == NDS32_PC_REGNUM)
regnum = NDS32_LP_REGNUM;
- if (regnum < NDS32_NUM_SAVED_REGS && cache->saved_regs[regnum] != REG_UNAVAIL)
+ if (regnum < NDS32_NUM_SAVED_REGS
+ && cache->saved_regs[regnum] != REG_UNAVAIL)
return frame_unwind_got_memory (this_frame, regnum,
cache->saved_regs[regnum]);
return frame_unwind_got_register (this_frame, regnum, regnum);
}
-static const struct frame_unwind nds32_frame_unwind =
-{
+static const struct frame_unwind nds32_frame_unwind = {
"nds32 prologue",
NORMAL_FRAME,
default_frame_unwind_stop_reason,
@@ -1005,14 +1030,10 @@ nds32_frame_base_address (frame_info_ptr this_frame, void **this_cache)
return cache->base;
}
-static const struct frame_base nds32_frame_base =
-{
- &nds32_frame_unwind,
- nds32_frame_base_address,
- nds32_frame_base_address,
- nds32_frame_base_address
-};
-
+static const struct frame_base nds32_frame_base
+ = { &nds32_frame_unwind, nds32_frame_base_address, nds32_frame_base_address,
+ nds32_frame_base_address };
+
/* Helper function for instructions used to pop multiple words. */
static void
@@ -1074,8 +1095,8 @@ nds32_analyze_epilogue_insn32 (int abi_use_fpr, uint32_t insn,
{
/* lmw.bim Rb, [$sp], Re, enable4 */
if (cache != NULL)
- nds32_pop_multiple_words (cache, N32_RT5 (insn),
- N32_RB5 (insn), N32_LSMW_ENABLE4 (insn));
+ nds32_pop_multiple_words (cache, N32_RT5 (insn), N32_RB5 (insn),
+ N32_LSMW_ENABLE4 (insn));
return INSN_RECOVER;
}
@@ -1331,8 +1352,8 @@ nds32_epilogue_frame_cache (frame_info_ptr this_frame, void **this_cache)
/* Implement the "this_id" frame_unwind method. */
static void
-nds32_epilogue_frame_this_id (frame_info_ptr this_frame,
- void **this_cache, struct frame_id *this_id)
+nds32_epilogue_frame_this_id (frame_info_ptr this_frame, void **this_cache,
+ struct frame_id *this_id)
{
struct nds32_frame_cache *cache
= nds32_epilogue_frame_cache (this_frame, this_cache);
@@ -1361,25 +1382,23 @@ nds32_epilogue_frame_prev_register (frame_info_ptr this_frame,
if (regnum == NDS32_PC_REGNUM)
regnum = NDS32_LP_REGNUM;
- if (regnum < NDS32_NUM_SAVED_REGS && cache->saved_regs[regnum] != REG_UNAVAIL)
+ if (regnum < NDS32_NUM_SAVED_REGS
+ && cache->saved_regs[regnum] != REG_UNAVAIL)
return frame_unwind_got_memory (this_frame, regnum,
cache->saved_regs[regnum]);
return frame_unwind_got_register (this_frame, regnum, regnum);
}
-static const struct frame_unwind nds32_epilogue_frame_unwind =
-{
- "nds32 epilogue",
- NORMAL_FRAME,
- default_frame_unwind_stop_reason,
- nds32_epilogue_frame_this_id,
- nds32_epilogue_frame_prev_register,
- NULL,
- nds32_epilogue_frame_sniffer
-};
+static const struct frame_unwind nds32_epilogue_frame_unwind
+ = { "nds32 epilogue",
+ NORMAL_FRAME,
+ default_frame_unwind_stop_reason,
+ nds32_epilogue_frame_this_id,
+ nds32_epilogue_frame_prev_register,
+ NULL,
+ nds32_epilogue_frame_sniffer };
-
/* Floating type and struct type that has only one floating type member
can pass value using FPU registers (when FPU ABI is used). */
@@ -1409,15 +1428,15 @@ nds32_check_calling_use_fpr (struct type *type)
static CORE_ADDR
nds32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
- struct regcache *regcache, CORE_ADDR bp_addr,
- int nargs, struct value **args, CORE_ADDR sp,
+ struct regcache *regcache, CORE_ADDR bp_addr, int nargs,
+ struct value **args, CORE_ADDR sp,
function_call_return_method return_method,
CORE_ADDR struct_addr)
{
- const int REND = 6; /* End for register offset. */
- int goff = 0; /* Current gpr offset for argument. */
- int foff = 0; /* Current fpr offset for argument. */
- int soff = 0; /* Current stack offset for argument. */
+ const int REND = 6; /* End for register offset. */
+ int goff = 0; /* Current gpr offset for argument. */
+ int foff = 0; /* Current fpr offset for argument. */
+ int soff = 0; /* Current stack offset for argument. */
int i;
ULONGEST regval;
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -1518,8 +1537,8 @@ nds32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
break;
default:
/* Long double? */
- internal_error ("Do not know how to handle %d-byte double.\n",
- len);
+ internal_error (
+ "Do not know how to handle %d-byte double.\n", len);
break;
}
continue;
@@ -1591,7 +1610,7 @@ nds32_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
}
}
-use_stack:
+ use_stack:
/*
When pushing (split parts of) an argument into stack,
@@ -1637,9 +1656,9 @@ use_stack:
error_no_fpr:
/* If use_fpr, but no floating-point register exists,
then it is an error. */
- error (_("Fail to call. FPU registers are required."));
+ error (_ ("Fail to call. FPU registers are required."));
}
-
+
/* Read, for architecture GDBARCH, a function return value of TYPE
from REGCACHE, and copy that into VALBUF. */
@@ -1663,8 +1682,9 @@ nds32_extract_return_value (struct gdbarch *gdbarch, struct type *type,
else if (len == 8)
regcache->cooked_read (NDS32_FD0_REGNUM, valbuf);
else
- internal_error (_("Cannot extract return value of %d bytes "
- "long floating-point."), len);
+ internal_error (_ ("Cannot extract return value of %d bytes "
+ "long floating-point."),
+ len);
}
else
{
@@ -1752,8 +1772,9 @@ nds32_store_return_value (struct gdbarch *gdbarch, struct type *type,
else if (len == 8)
regcache->cooked_write (NDS32_FD0_REGNUM, valbuf);
else
- internal_error (_("Cannot store return value of %d bytes "
- "long floating-point."), len);
+ internal_error (_ ("Cannot store return value of %d bytes "
+ "long floating-point."),
+ len);
}
else
{
@@ -1817,7 +1838,7 @@ nds32_return_value (struct gdbarch *gdbarch, struct value *func_type,
return RETURN_VALUE_REGISTER_CONVENTION;
}
}
-
+
/* Implement the "get_longjmp_target" gdbarch method. */
static int
@@ -1836,15 +1857,15 @@ nds32_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc)
*pc = extract_unsigned_integer (buf, 4, byte_order);
return 1;
}
-
+
/* Validate the given TDESC, and fixed-number some registers in it.
Return 0 if the given TDESC does not contain the required feature
or not contain required registers. */
static int
nds32_validate_tdesc_p (const struct target_desc *tdesc,
- struct tdesc_arch_data *tdesc_data,
- int *fpu_freg, int *use_pseudo_fsrs)
+ struct tdesc_arch_data *tdesc_data, int *fpu_freg,
+ int *use_pseudo_fsrs)
{
const struct tdesc_feature *feature;
int i, valid_p;
@@ -1911,9 +1932,9 @@ nds32_validate_tdesc_p (const struct target_desc *tdesc,
fs0_regnum = NDS32_FD0_REGNUM + num_fdr_regs;
num_listed_fsr = 0;
for (i = 0; i < num_fsr_regs; i++)
- num_listed_fsr += tdesc_numbered_register (feature, tdesc_data,
- fs0_regnum + i,
- nds32_fsr_register_names[i]);
+ num_listed_fsr
+ += tdesc_numbered_register (feature, tdesc_data, fs0_regnum + i,
+ nds32_fsr_register_names[i]);
if (num_listed_fsr == 0)
/* No required FSRs are listed explicitly, make them pseudo registers
@@ -2082,6 +2103,7 @@ nds32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
}
void _initialize_nds32_tdep ();
+
void
_initialize_nds32_tdep ()
{