qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] fix CRIS-related warnings
@ 2008-06-23  6:41 Jan Kiszka
  0 siblings, 0 replies; only message in thread
From: Jan Kiszka @ 2008-06-23  6:41 UTC (permalink / raw)
  To: edgar.iglesias; +Cc: qemu-devel

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 <jan.kiszka@web.de>
---
 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,

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-06-23  6:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-23  6:41 [Qemu-devel] [PATCH] fix CRIS-related warnings Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).