From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KAfji-0007lN-5A for qemu-devel@nongnu.org; Mon, 23 Jun 2008 02:41:10 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KAfjh-0007kv-9V for qemu-devel@nongnu.org; Mon, 23 Jun 2008 02:41:09 -0400 Received: from [199.232.76.173] (port=51635 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KAfjh-0007kk-32 for qemu-devel@nongnu.org; Mon, 23 Jun 2008 02:41:09 -0400 Received: from fmmailgate01.web.de ([217.72.192.221]:34187) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KAfjg-0008TG-ER for qemu-devel@nongnu.org; Mon, 23 Jun 2008 02:41:08 -0400 Message-ID: <485F4582.2040500@web.de> Date: Mon, 23 Jun 2008 08:41:06 +0200 From: Jan Kiszka MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Sender: jan.kiszka@web.de Subject: [Qemu-devel] [PATCH] fix CRIS-related warnings Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: edgar.iglesias@axis.com Cc: qemu-devel@nongnu.org This addresses all warnings CRIS code currently generates for me. Feel free to adapt it according to your preferences, but please fix them so that it becomes easier to spot real build regressions. Signed-off-by: Jan Kiszka --- hw/etraxfs_dma.c | 52 +++++++++++++++++++++++++----------------------- hw/etraxfs_eth.c | 10 +++++---- hw/etraxfs_timer.c | 10 ++++----- target-cris/mmu.c | 6 +++++ target-cris/translate.c | 9 ++++---- 5 files changed, 50 insertions(+), 37 deletions(-) Index: b/hw/etraxfs_dma.c =================================================================== --- a/hw/etraxfs_dma.c +++ b/hw/etraxfs_dma.c @@ -214,6 +214,7 @@ static inline int fs_channel(target_phys return (addr - base) >> 13; } +#ifdef USE_THIS_DEAD_CODE static void channel_load_g(struct fs_dma_ctrl *ctrl, int c) { target_phys_addr_t addr = channel_reg(ctrl, c, RW_GROUP); @@ -227,23 +228,24 @@ static void channel_load_g(struct fs_dma static void dump_c(int ch, struct dma_descr_context *c) { printf("%s ch=%d\n", __func__, ch); - printf("next=%x\n", (uint32_t) c->next); - printf("saved_data=%x\n", (uint32_t) c->saved_data); - printf("saved_data_buf=%x\n", (uint32_t) c->saved_data_buf); + printf("next=%p\n", c->next); + printf("saved_data=%p\n", c->saved_data); + printf("saved_data_buf=%p\n", c->saved_data_buf); printf("eol=%x\n", (uint32_t) c->eol); } static void dump_d(int ch, struct dma_descr_data *d) { printf("%s ch=%d\n", __func__, ch); - printf("next=%x\n", (uint32_t) d->next); - printf("buf=%x\n", (uint32_t) d->buf); - printf("after=%x\n", (uint32_t) d->after); + printf("next=%p\n", d->next); + printf("buf=%p\n", d->buf); + printf("after=%p\n", d->after); printf("intr=%x\n", (uint32_t) d->intr); printf("out_eop=%x\n", (uint32_t) d->out_eop); printf("in_eop=%x\n", (uint32_t) d->in_eop); printf("eol=%x\n", (uint32_t) d->eol); } +#endif static void channel_load_c(struct fs_dma_ctrl *ctrl, int c) { @@ -256,10 +258,10 @@ static void channel_load_c(struct fs_dma D(dump_c(c, &ctrl->channels[c].current_c)); /* I guess this should update the current pos. */ - ctrl->channels[c].regs[RW_SAVED_DATA] = - (uint32_t)ctrl->channels[c].current_c.saved_data; + ctrl->channels[c].regs[RW_SAVED_DATA] = + (uint32_t)(unsigned long)ctrl->channels[c].current_c.saved_data; ctrl->channels[c].regs[RW_SAVED_DATA_BUF] = - (uint32_t)ctrl->channels[c].current_c.saved_data_buf; + (uint32_t)(unsigned long)ctrl->channels[c].current_c.saved_data_buf; } static void channel_load_d(struct fs_dma_ctrl *ctrl, int c) @@ -339,12 +341,12 @@ static void channel_continue(struct fs_d D(printf("continue %d ok %p\n", c, ctrl->channels[c].current_d.next)); ctrl->channels[c].regs[RW_SAVED_DATA] = - (uint32_t) ctrl->channels[c].current_d.next; + (uint32_t)(unsigned long)ctrl->channels[c].current_d.next; channel_load_d(ctrl, c); channel_start(ctrl, c); } ctrl->channels[c].regs[RW_SAVED_DATA_BUF] = - (uint32_t) ctrl->channels[c].current_d.buf; + (uint32_t)(unsigned long)ctrl->channels[c].current_d.buf; } static void channel_stream_cmd(struct fs_dma_ctrl *ctrl, int c, uint32_t v) @@ -402,7 +404,7 @@ static void channel_out_run(struct fs_dm (uint32_t)ctrl->channels[c].current_d.after, saved_data_buf)); - len = (uint32_t) ctrl->channels[c].current_d.after; + len = (uint32_t)(unsigned long) ctrl->channels[c].current_d.after; len -= saved_data_buf; if (len > sizeof buf) @@ -420,7 +422,8 @@ static void channel_out_run(struct fs_dm saved_data_buf += len; - if (saved_data_buf == (uint32_t)ctrl->channels[c].current_d.after) { + if (saved_data_buf == + (uint32_t)(unsigned long)ctrl->channels[c].current_d.after) { /* Done. Step to next. */ if (ctrl->channels[c].current_d.out_eop) { /* TODO: signal eop to the client. */ @@ -444,10 +447,10 @@ static void channel_out_run(struct fs_dm channel_stop(ctrl, c); } else { ctrl->channels[c].regs[RW_SAVED_DATA] = - (uint32_t) ctrl->channels[c].current_d.next; + (uint32_t)(unsigned long) ctrl->channels[c].current_d.next; /* Load new descriptor. */ channel_load_d(ctrl, c); - saved_data_buf = (uint32_t) + saved_data_buf = (uint32_t)(unsigned long) ctrl->channels[c].current_d.buf; } @@ -468,7 +471,7 @@ static int channel_in_process(struct fs_ return 0; saved_data_buf = channel_reg(ctrl, c, RW_SAVED_DATA_BUF); - len = (uint32_t) ctrl->channels[c].current_d.after; + len = (uint32_t)(unsigned long) ctrl->channels[c].current_d.after; len -= saved_data_buf; if (len > buflen) @@ -477,7 +480,8 @@ static int channel_in_process(struct fs_ cpu_physical_memory_write (saved_data_buf, buf, len); saved_data_buf += len; - if (saved_data_buf == (uint32_t)ctrl->channels[c].current_d.after + if (saved_data_buf == + (uint32_t)(unsigned long)ctrl->channels[c].current_d.after || eop) { uint32_t r_intr = ctrl->channels[c].regs[R_INTR]; @@ -485,7 +489,7 @@ static int channel_in_process(struct fs_ ctrl->channels[c].current_d.after - ctrl->channels[c].current_d.buf)); ctrl->channels[c].current_d.after = - (void *) saved_data_buf; + (void *)(unsigned long) saved_data_buf; /* Done. Step to next. */ if (ctrl->channels[c].current_d.intr) { @@ -514,10 +518,10 @@ static int channel_in_process(struct fs_ channel_stop(ctrl, c); } else { ctrl->channels[c].regs[RW_SAVED_DATA] = - (uint32_t) ctrl->channels[c].current_d.next; + (uint32_t)(unsigned long) ctrl->channels[c].current_d.next; /* Load new descriptor. */ channel_load_d(ctrl, c); - saved_data_buf = (uint32_t) + saved_data_buf = (uint32_t)(unsigned long) ctrl->channels[c].current_d.buf; } } @@ -537,8 +541,8 @@ static uint32_t dma_rinvalid (void *opaq { struct fs_dma_ctrl *ctrl = opaque; CPUState *env = ctrl->env; - cpu_abort(env, "Unsupported short access. reg=%x pc=%x.\n", - addr, env->pc); + cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx + " pc=%x.\n", addr, env->pc); return 0; } @@ -574,8 +578,8 @@ dma_winvalid (void *opaque, target_phys_ { struct fs_dma_ctrl *ctrl = opaque; CPUState *env = ctrl->env; - cpu_abort(env, "Unsupported short access. reg=%x pc=%x.\n", - addr, env->pc); + cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx + " pc=%x.\n", addr, env->pc); } static void Index: b/hw/etraxfs_eth.c =================================================================== --- a/hw/etraxfs_eth.c +++ b/hw/etraxfs_eth.c @@ -154,11 +154,13 @@ mdio_attach(struct qemu_mdio *bus, struc bus->devs[addr & 0x1f] = phy; } +#ifdef USE_THIS_DEAD_CODE static void mdio_detach(struct qemu_mdio *bus, struct qemu_phy *phy, unsigned int addr) { bus->devs[addr & 0x1f] = NULL; } +#endif static void mdio_read_req(struct qemu_mdio *bus) { @@ -328,8 +330,8 @@ static uint32_t eth_rinvalid (void *opaq { struct fs_eth *eth = opaque; CPUState *env = eth->env; - cpu_abort(env, "Unsupported short access. reg=%x pc=%x.\n", - addr, env->pc); + cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx + " pc=%x.\n", addr, env->pc); return 0; } @@ -359,8 +361,8 @@ eth_winvalid (void *opaque, target_phys_ { struct fs_eth *eth = opaque; CPUState *env = eth->env; - cpu_abort(env, "Unsupported short access. reg=%x pc=%x.\n", - addr, env->pc); + cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx + " pc=%x.\n", addr, env->pc); } static void eth_update_ma(struct fs_eth *eth, int ma) Index: b/hw/etraxfs_timer.c =================================================================== --- a/hw/etraxfs_timer.c +++ b/hw/etraxfs_timer.c @@ -80,8 +80,8 @@ static uint32_t timer_rinvalid (void *op { struct fs_timer_t *t = opaque; CPUState *env = t->env; - cpu_abort(env, "Unsupported short access. reg=%x pc=%x.\n", - addr, env->pc); + cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx + " pc=%x.\n", addr, env->pc); return 0; } @@ -120,8 +120,8 @@ timer_winvalid (void *opaque, target_phy { struct fs_timer_t *t = opaque; CPUState *env = t->env; - cpu_abort(env, "Unsupported short access. reg=%x pc=%x.\n", - addr, env->pc); + cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx + " pc=%x.\n", addr, env->pc); } #define TIMER_SLOWDOWN 1 @@ -309,7 +309,7 @@ timer_writel (void *opaque, target_phys_ t->rw_ack_intr = 0; break; default: - printf ("%s %x %x pc=%x\n", + printf ("%s " TARGET_FMT_plx " %x pc=%x\n", __func__, addr, value, env->pc); break; } Index: b/target-cris/translate.c =================================================================== --- a/target-cris/translate.c +++ b/target-cris/translate.c @@ -3071,14 +3071,15 @@ gen_intermediate_code_internal(CPUState if (loglevel & CPU_LOG_TB_IN_ASM) { fprintf(logfile, - "srch=%d pc=%x %x flg=%llx bt=%x ds=%lld ccs=%x\n" + "srch=%d pc=%x %x flg=%llx bt=%x ds=%u ccs=%x\n" "pid=%x usp=%x\n" "%x.%x.%x.%x\n" "%x.%x.%x.%x\n" "%x.%x.%x.%x\n" "%x.%x.%x.%x\n", - search_pc, dc->pc, dc->ppc, tb->flags, - env->btarget, tb->flags & 7, + search_pc, dc->pc, dc->ppc, + (unsigned long long)tb->flags, + env->btarget, (unsigned)tb->flags & 7, env->pregs[PR_CCS], env->pregs[PR_PID], env->pregs[PR_USP], env->regs[0], env->regs[1], env->regs[2], env->regs[3], @@ -3209,7 +3210,7 @@ gen_intermediate_code_internal(CPUState fprintf(logfile, "--------------\n"); fprintf(logfile, "IN: %s\n", lookup_symbol(pc_start)); target_disas(logfile, pc_start, dc->pc - pc_start, 0); - fprintf(logfile, "\nisize=%d osize=%d\n", + fprintf(logfile, "\nisize=%d osize=%zd\n", dc->pc - pc_start, gen_opc_ptr - gen_opc_buf); } #endif Index: b/target-cris/mmu.c =================================================================== --- a/target-cris/mmu.c +++ b/target-cris/mmu.c @@ -30,7 +30,11 @@ #include "mmu.h" #include "exec-all.h" +#ifdef DEBUG +#define D(x) x +#else #define D(x) +#endif void cris_mmu_init(CPUState *env) { @@ -95,6 +99,7 @@ static inline void set_field(uint32_t *d *dst |= val; } +#ifdef DEBUG static void dump_tlb(CPUState *env, int mmu) { int set; @@ -113,6 +118,7 @@ static void dump_tlb(CPUState *env, int } } } +#endif /* rw 0 = read, 1 = write, 2 = exec. */ static int cris_mmu_translate_page(struct cris_mmu_result_t *res,