More consistent naming for CRIS register-number macros.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3996 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
edgar_igl 2008-02-28 08:28:32 +00:00
parent 8289b27975
commit 9004627f9b
6 changed files with 72 additions and 73 deletions

View File

@ -828,7 +828,7 @@ static int cpu_gdb_read_registers(CPUState *env, uint8_t *mem_buf)
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
ptr += cris_save_32 (ptr, env->regs[i]); ptr += cris_save_32 (ptr, env->regs[i]);
srs = env->pregs[SR_SRS]; srs = env->pregs[PR_SRS];
ptr += cris_save_8 (ptr, env->pregs[0]); ptr += cris_save_8 (ptr, env->pregs[0]);
ptr += cris_save_8 (ptr, env->pregs[1]); ptr += cris_save_8 (ptr, env->pregs[1]);

View File

@ -239,19 +239,21 @@ static inline int cpu_mmu_index (CPUState *env)
#include "cpu-all.h" #include "cpu-all.h"
/* Register aliases. */ /* Register aliases. R0 - R15 */
#define REG_SP 14 #define R_FP 8
#define REG_ACR 15 #define R_SP 14
#define REG_MOF 7 #define R_ACR 15
/* Support regs. */ /* Support regs, P0 - P15 */
#define SR_PID 2 #define PR_PID 2
#define SR_SRS 3 #define PR_SRS 3
#define SR_EBP 9 #define PR_MOF 7
#define SR_ERP 10 #define PR_EBP 9
#define SR_CCS 13 #define PR_ERP 10
#define PR_SRP 11
#define PR_CCS 13
/* Support func regs. */ /* Support function regs. */
#define SFR_RW_GC_CFG 0][0 #define SFR_RW_GC_CFG 0][0
#define SFR_RW_MM_CFG 1][0 #define SFR_RW_MM_CFG 1][0
#define SFR_RW_MM_KBASE_LO 1][1 #define SFR_RW_MM_KBASE_LO 1][1

View File

@ -82,10 +82,9 @@ static void cris_shift_ccs(CPUState *env)
{ {
uint32_t ccs; uint32_t ccs;
/* Apply the ccs shift. */ /* Apply the ccs shift. */
ccs = env->pregs[SR_CCS]; ccs = env->pregs[PR_CCS];
ccs = (ccs & 0xc0000000) | ((ccs << 12) >> 2); ccs = (ccs & 0xc0000000) | ((ccs << 12) >> 2);
// printf ("ccs=%x %x\n", env->pregs[SR_CCS], ccs); env->pregs[PR_CCS] = ccs;
env->pregs[SR_CCS] = ccs;
} }
void do_interrupt(CPUState *env) void do_interrupt(CPUState *env)
@ -104,11 +103,10 @@ void do_interrupt(CPUState *env)
switch (env->exception_index) switch (env->exception_index)
{ {
case EXCP_BREAK: case EXCP_BREAK:
// printf ("BREAK! %d\n", env->trapnr);
irqnum = env->trapnr; irqnum = env->trapnr;
ebp = env->pregs[SR_EBP]; ebp = env->pregs[PR_EBP];
isr = ldl_code(ebp + irqnum * 4); isr = ldl_code(ebp + irqnum * 4);
env->pregs[SR_ERP] = env->pc + 2; env->pregs[PR_ERP] = env->pc + 2;
env->pc = isr; env->pc = isr;
cris_shift_ccs(env); cris_shift_ccs(env);
@ -117,9 +115,9 @@ void do_interrupt(CPUState *env)
case EXCP_MMU_MISS: case EXCP_MMU_MISS:
// printf ("MMU miss\n"); // printf ("MMU miss\n");
irqnum = 4; irqnum = 4;
ebp = env->pregs[SR_EBP]; ebp = env->pregs[PR_EBP];
isr = ldl_code(ebp + irqnum * 4); isr = ldl_code(ebp + irqnum * 4);
env->pregs[SR_ERP] = env->pc; env->pregs[PR_ERP] = env->pc;
env->pc = isr; env->pc = isr;
cris_shift_ccs(env); cris_shift_ccs(env);
break; break;
@ -131,15 +129,15 @@ void do_interrupt(CPUState *env)
if (env->interrupt_request & CPU_INTERRUPT_HARD) { if (env->interrupt_request & CPU_INTERRUPT_HARD) {
if (!env->pending_interrupts) if (!env->pending_interrupts)
return; return;
if (!(env->pregs[SR_CCS] & I_FLAG)) { if (!(env->pregs[PR_CCS] & I_FLAG)) {
return; return;
} }
irqnum = 31 - clz32(env->pending_interrupts); irqnum = 31 - clz32(env->pending_interrupts);
irqnum += 0x30; irqnum += 0x30;
ebp = env->pregs[SR_EBP]; ebp = env->pregs[PR_EBP];
isr = ldl_code(ebp + irqnum * 4); isr = ldl_code(ebp + irqnum * 4);
env->pregs[SR_ERP] = env->pc; env->pregs[PR_ERP] = env->pc;
env->pc = isr; env->pc = isr;
cris_shift_ccs(env); cris_shift_ccs(env);
@ -161,7 +159,6 @@ void do_interrupt(CPUState *env)
target_phys_addr_t cpu_get_phys_page_debug(CPUState * env, target_ulong addr) target_phys_addr_t cpu_get_phys_page_debug(CPUState * env, target_ulong addr)
{ {
// printf ("%s\n", __func__);
uint32_t phy = addr; uint32_t phy = addr;
struct cris_mmu_result_t res; struct cris_mmu_result_t res;
int miss; int miss;

View File

@ -87,7 +87,7 @@ static int cris_mmu_translate_page(struct cris_mmu_result_t *res,
pid = EXTRACT_FIELD(hi, 0, 7); pid = EXTRACT_FIELD(hi, 0, 7);
if (vpn == vpage if (vpn == vpage
&& pid == env->pregs[SR_PID]) { && pid == env->pregs[PR_PID]) {
match = 1; match = 1;
break; break;
} }
@ -104,7 +104,7 @@ static int cris_mmu_translate_page(struct cris_mmu_result_t *res,
printf ("%s match=%d vaddr=%x vpage=%x vpn=%x pfn=%x pid=%x %x\n", printf ("%s match=%d vaddr=%x vpage=%x vpn=%x pfn=%x pid=%x %x\n",
__func__, match, __func__, match,
vaddr, vpage, vaddr, vpage,
vpn, pfn, pid, env->pregs[SR_PID]); vpn, pfn, pid, env->pregs[PR_PID]);
res->pfn = pfn; res->pfn = pfn;
return !match; return !match;
} }

View File

@ -185,9 +185,9 @@ void OPPROTO op_ccs_lshift (void)
uint32_t ccs; uint32_t ccs;
/* Apply the ccs shift. */ /* Apply the ccs shift. */
ccs = env->pregs[SR_CCS]; ccs = env->pregs[PR_CCS];
ccs = (ccs & 0xc0000000) | ((ccs << 12) >> 2); ccs = (ccs & 0xc0000000) | ((ccs << 12) >> 2);
env->pregs[SR_CCS] = ccs; env->pregs[PR_CCS] = ccs;
RETURN(); RETURN();
} }
void OPPROTO op_ccs_rshift (void) void OPPROTO op_ccs_rshift (void)
@ -195,21 +195,21 @@ void OPPROTO op_ccs_rshift (void)
uint32_t ccs; uint32_t ccs;
/* Apply the ccs shift. */ /* Apply the ccs shift. */
ccs = env->pregs[SR_CCS]; ccs = env->pregs[PR_CCS];
ccs = (ccs & 0xc0000000) | (ccs >> 10); ccs = (ccs & 0xc0000000) | (ccs >> 10);
env->pregs[SR_CCS] = ccs; env->pregs[PR_CCS] = ccs;
RETURN(); RETURN();
} }
void OPPROTO op_setf (void) void OPPROTO op_setf (void)
{ {
env->pregs[SR_CCS] |= PARAM1; env->pregs[PR_CCS] |= PARAM1;
RETURN(); RETURN();
} }
void OPPROTO op_clrf (void) void OPPROTO op_clrf (void)
{ {
env->pregs[SR_CCS] &= ~PARAM1; env->pregs[PR_CCS] &= ~PARAM1;
RETURN(); RETURN();
} }
@ -254,25 +254,25 @@ void OPPROTO op_movl_debug3_im (void)
} }
void OPPROTO op_movl_T0_flags (void) void OPPROTO op_movl_T0_flags (void)
{ {
T0 = env->pregs[SR_CCS]; T0 = env->pregs[PR_CCS];
RETURN(); RETURN();
} }
void OPPROTO op_movl_flags_T0 (void) void OPPROTO op_movl_flags_T0 (void)
{ {
env->pregs[SR_CCS] = T0; env->pregs[PR_CCS] = T0;
RETURN(); RETURN();
} }
void OPPROTO op_movl_sreg_T0 (void) void OPPROTO op_movl_sreg_T0 (void)
{ {
env->sregs[env->pregs[SR_SRS]][PARAM1] = T0; env->sregs[env->pregs[PR_SRS]][PARAM1] = T0;
RETURN(); RETURN();
} }
void OPPROTO op_movl_tlb_lo_T0 (void) void OPPROTO op_movl_tlb_lo_T0 (void)
{ {
int srs; int srs;
srs = env->pregs[SR_SRS]; srs = env->pregs[PR_SRS];
if (srs == 1 || srs == 2) if (srs == 1 || srs == 2)
{ {
int set; int set;
@ -296,7 +296,7 @@ void OPPROTO op_movl_tlb_lo_T0 (void)
void OPPROTO op_movl_T0_sreg (void) void OPPROTO op_movl_T0_sreg (void)
{ {
T0 = env->sregs[env->pregs[SR_SRS]][PARAM1]; T0 = env->sregs[env->pregs[PR_SRS]][PARAM1];
RETURN(); RETURN();
} }
@ -356,21 +356,21 @@ extern inline void evaluate_flags_writeback(uint32_t flags)
int x; int x;
/* Extended arithmetics, leave the z flag alone. */ /* Extended arithmetics, leave the z flag alone. */
env->debug3 = env->pregs[SR_CCS]; env->debug3 = env->pregs[PR_CCS];
if (env->cc_x_live) if (env->cc_x_live)
x = env->cc_x; x = env->cc_x;
else else
x = env->pregs[SR_CCS] & X_FLAG; x = env->pregs[PR_CCS] & X_FLAG;
if ((x || env->cc_op == CC_OP_ADDC) if ((x || env->cc_op == CC_OP_ADDC)
&& flags & Z_FLAG) && flags & Z_FLAG)
env->cc_mask &= ~Z_FLAG; env->cc_mask &= ~Z_FLAG;
/* all insn clear the x-flag except setf or clrf. */ /* all insn clear the x-flag except setf or clrf. */
env->pregs[SR_CCS] &= ~(env->cc_mask | X_FLAG); env->pregs[PR_CCS] &= ~(env->cc_mask | X_FLAG);
flags &= env->cc_mask; flags &= env->cc_mask;
env->pregs[SR_CCS] |= flags; env->pregs[PR_CCS] |= flags;
RETURN(); RETURN();
} }
@ -778,30 +778,30 @@ void OPPROTO op_subl_T0_im (void)
void OPPROTO op_addxl_T0_C (void) void OPPROTO op_addxl_T0_C (void)
{ {
if (env->pregs[SR_CCS] & X_FLAG) if (env->pregs[PR_CCS] & X_FLAG)
T0 += !!(env->pregs[SR_CCS] & C_FLAG); T0 += !!(env->pregs[PR_CCS] & C_FLAG);
RETURN(); RETURN();
} }
void OPPROTO op_subxl_T0_C (void) void OPPROTO op_subxl_T0_C (void)
{ {
if (env->pregs[SR_CCS] & X_FLAG) if (env->pregs[PR_CCS] & X_FLAG)
T0 -= !!(env->pregs[SR_CCS] & C_FLAG); T0 -= !!(env->pregs[PR_CCS] & C_FLAG);
RETURN(); RETURN();
} }
void OPPROTO op_addl_T0_C (void) void OPPROTO op_addl_T0_C (void)
{ {
T0 += !!(env->pregs[SR_CCS] & C_FLAG); T0 += !!(env->pregs[PR_CCS] & C_FLAG);
RETURN(); RETURN();
} }
void OPPROTO op_addl_T0_R (void) void OPPROTO op_addl_T0_R (void)
{ {
T0 += !!(env->pregs[SR_CCS] & R_FLAG); T0 += !!(env->pregs[PR_CCS] & R_FLAG);
RETURN(); RETURN();
} }
void OPPROTO op_clr_R (void) void OPPROTO op_clr_R (void)
{ {
env->pregs[SR_CCS] &= ~R_FLAG; env->pregs[PR_CCS] &= ~R_FLAG;
RETURN(); RETURN();
} }
@ -880,7 +880,7 @@ void OPPROTO op_muls_T0_T1 (void)
tmp = t0 * t1; tmp = t0 * t1;
T0 = tmp & 0xffffffff; T0 = tmp & 0xffffffff;
env->pregs[REG_MOF] = tmp >> 32; env->pregs[PR_MOF] = tmp >> 32;
RETURN(); RETURN();
} }
@ -892,7 +892,7 @@ void OPPROTO op_mulu_T0_T1 (void)
tmp = t0 * t1; tmp = t0 * t1;
T0 = tmp & 0xffffffff; T0 = tmp & 0xffffffff;
env->pregs[REG_MOF] = tmp >> 32; env->pregs[PR_MOF] = tmp >> 32;
RETURN(); RETURN();
} }
@ -1042,7 +1042,7 @@ void OPPROTO op_swapr_T0_T0 (void)
} }
void OPPROTO op_tst_cc_eq (void) { void OPPROTO op_tst_cc_eq (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int z_set; int z_set;
z_set = !!(flags & Z_FLAG); z_set = !!(flags & Z_FLAG);
@ -1056,7 +1056,7 @@ void OPPROTO op_tst_cc_eq_fast (void) {
} }
void OPPROTO op_tst_cc_ne (void) { void OPPROTO op_tst_cc_ne (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int z_set; int z_set;
z_set = !!(flags & Z_FLAG); z_set = !!(flags & Z_FLAG);
@ -1069,7 +1069,7 @@ void OPPROTO op_tst_cc_ne_fast (void) {
} }
void OPPROTO op_tst_cc_cc (void) { void OPPROTO op_tst_cc_cc (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int c_set; int c_set;
c_set = !!(flags & C_FLAG); c_set = !!(flags & C_FLAG);
@ -1077,7 +1077,7 @@ void OPPROTO op_tst_cc_cc (void) {
RETURN(); RETURN();
} }
void OPPROTO op_tst_cc_cs (void) { void OPPROTO op_tst_cc_cs (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int c_set; int c_set;
c_set = !!(flags & C_FLAG); c_set = !!(flags & C_FLAG);
@ -1086,7 +1086,7 @@ void OPPROTO op_tst_cc_cs (void) {
} }
void OPPROTO op_tst_cc_vc (void) { void OPPROTO op_tst_cc_vc (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int v_set; int v_set;
v_set = !!(flags & V_FLAG); v_set = !!(flags & V_FLAG);
@ -1094,7 +1094,7 @@ void OPPROTO op_tst_cc_vc (void) {
RETURN(); RETURN();
} }
void OPPROTO op_tst_cc_vs (void) { void OPPROTO op_tst_cc_vs (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int v_set; int v_set;
v_set = !!(flags & V_FLAG); v_set = !!(flags & V_FLAG);
@ -1102,7 +1102,7 @@ void OPPROTO op_tst_cc_vs (void) {
RETURN(); RETURN();
} }
void OPPROTO op_tst_cc_pl (void) { void OPPROTO op_tst_cc_pl (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int n_set; int n_set;
n_set = !!(flags & N_FLAG); n_set = !!(flags & N_FLAG);
@ -1115,7 +1115,7 @@ void OPPROTO op_tst_cc_pl_fast (void) {
} }
void OPPROTO op_tst_cc_mi (void) { void OPPROTO op_tst_cc_mi (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int n_set; int n_set;
n_set = !!(flags & N_FLAG); n_set = !!(flags & N_FLAG);
@ -1128,7 +1128,7 @@ void OPPROTO op_tst_cc_mi_fast (void) {
} }
void OPPROTO op_tst_cc_ls (void) { void OPPROTO op_tst_cc_ls (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int c_set; int c_set;
int z_set; int z_set;
@ -1138,7 +1138,7 @@ void OPPROTO op_tst_cc_ls (void) {
RETURN(); RETURN();
} }
void OPPROTO op_tst_cc_hi (void) { void OPPROTO op_tst_cc_hi (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int z_set; int z_set;
int c_set; int c_set;
@ -1150,7 +1150,7 @@ void OPPROTO op_tst_cc_hi (void) {
} }
void OPPROTO op_tst_cc_ge (void) { void OPPROTO op_tst_cc_ge (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int n_set; int n_set;
int v_set; int v_set;
@ -1166,7 +1166,7 @@ void OPPROTO op_tst_cc_ge_fast (void) {
} }
void OPPROTO op_tst_cc_lt (void) { void OPPROTO op_tst_cc_lt (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int n_set; int n_set;
int v_set; int v_set;
@ -1177,7 +1177,7 @@ void OPPROTO op_tst_cc_lt (void) {
} }
void OPPROTO op_tst_cc_gt (void) { void OPPROTO op_tst_cc_gt (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int n_set; int n_set;
int v_set; int v_set;
int z_set; int z_set;
@ -1191,7 +1191,7 @@ void OPPROTO op_tst_cc_gt (void) {
} }
void OPPROTO op_tst_cc_le (void) { void OPPROTO op_tst_cc_le (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int n_set; int n_set;
int v_set; int v_set;
int z_set; int z_set;
@ -1204,7 +1204,7 @@ void OPPROTO op_tst_cc_le (void) {
} }
void OPPROTO op_tst_cc_p (void) { void OPPROTO op_tst_cc_p (void) {
uint32_t flags = env->pregs[SR_CCS]; uint32_t flags = env->pregs[PR_CCS];
int p_set; int p_set;
p_set = !!(flags & P_FLAG); p_set = !!(flags & P_FLAG);
@ -1224,7 +1224,7 @@ void OPPROTO op_evaluate_bcc (void)
/* this one is used on every alu op, optimize it!. */ /* this one is used on every alu op, optimize it!. */
void OPPROTO op_goto_if_not_x (void) void OPPROTO op_goto_if_not_x (void)
{ {
if (env->pregs[SR_CCS] & X_FLAG) if (env->pregs[PR_CCS] & X_FLAG)
GOTO_LABEL_PARAM(1); GOTO_LABEL_PARAM(1);
RETURN(); RETURN();
} }

View File

@ -882,7 +882,7 @@ static unsigned int dec_addoq(DisasContext *dc)
/* Fetch register operand, */ /* Fetch register operand, */
gen_movl_T0_reg[dc->op2](); gen_movl_T0_reg[dc->op2]();
gen_op_movl_T1_im(imm); gen_op_movl_T1_im(imm);
crisv32_alu_op(dc, CC_OP_ADD, REG_ACR, 4); crisv32_alu_op(dc, CC_OP_ADD, R_ACR, 4);
return 2; return 2;
} }
static unsigned int dec_addq(DisasContext *dc) static unsigned int dec_addq(DisasContext *dc)
@ -1293,7 +1293,7 @@ static unsigned int dec_addi_acr(DisasContext *dc)
dec_prep_alu_r(dc, dc->op1, dc->op2, 4, 0); dec_prep_alu_r(dc, dc->op1, dc->op2, 4, 0);
gen_op_lsll_T0_im(dc->zzsize); gen_op_lsll_T0_im(dc->zzsize);
gen_op_addl_T0_T1(); gen_op_addl_T0_T1();
gen_movl_reg_T0[REG_ACR](); gen_movl_reg_T0[R_ACR]();
return 2; return 2;
} }
@ -1736,7 +1736,7 @@ static unsigned int dec_addo_m(DisasContext *dc)
cris_cc_mask(dc, 0); cris_cc_mask(dc, 0);
insn_len = dec_prep_alu_m(dc, 1, memsize); insn_len = dec_prep_alu_m(dc, 1, memsize);
crisv32_alu_op(dc, CC_OP_ADD, REG_ACR, 4); crisv32_alu_op(dc, CC_OP_ADD, R_ACR, 4);
do_postinc(dc, memsize); do_postinc(dc, memsize);
return insn_len; return insn_len;
} }
@ -2352,9 +2352,9 @@ gen_intermediate_code_internal(CPUState *env, TranslationBlock *tb,
if (!dc->flagx_live if (!dc->flagx_live
|| (dc->flagx_live && || (dc->flagx_live &&
!(dc->cc_op == CC_OP_FLAGS && dc->flags_x))) { !(dc->cc_op == CC_OP_FLAGS && dc->flags_x))) {
gen_movl_T0_preg[SR_CCS](); gen_movl_T0_preg[PR_CCS]();
gen_op_andl_T0_im(~X_FLAG); gen_op_andl_T0_im(~X_FLAG);
gen_movl_preg_T0[SR_CCS](); gen_movl_preg_T0[PR_CCS]();
dc->flagx_live = 1; dc->flagx_live = 1;
dc->flags_x = 0; dc->flags_x = 0;
} }
@ -2453,7 +2453,7 @@ void cpu_dump_state (CPUState *env, FILE *f,
cpu_fprintf(f, "PC=%x CCS=%x btaken=%d btarget=%x\n" cpu_fprintf(f, "PC=%x CCS=%x btaken=%d btarget=%x\n"
"cc_op=%d cc_src=%d cc_dest=%d cc_result=%x cc_mask=%x\n" "cc_op=%d cc_src=%d cc_dest=%d cc_result=%x cc_mask=%x\n"
"debug=%x %x %x\n", "debug=%x %x %x\n",
env->pc, env->pregs[SR_CCS], env->btaken, env->btarget, env->pc, env->pregs[PR_CCS], env->btaken, env->btarget,
env->cc_op, env->cc_op,
env->cc_src, env->cc_dest, env->cc_result, env->cc_mask, env->cc_src, env->cc_dest, env->cc_result, env->cc_mask,
env->debug1, env->debug2, env->debug3); env->debug1, env->debug2, env->debug3);
@ -2469,7 +2469,7 @@ void cpu_dump_state (CPUState *env, FILE *f,
if ((i + 1) % 4 == 0) if ((i + 1) % 4 == 0)
cpu_fprintf(f, "\n"); cpu_fprintf(f, "\n");
} }
srs = env->pregs[SR_SRS]; srs = env->pregs[PR_SRS];
cpu_fprintf(f, "\nsupport function regs bank %d:\n", srs); cpu_fprintf(f, "\nsupport function regs bank %d:\n", srs);
if (srs < 256) { if (srs < 256) {
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {