CRIS: Convert divide step to TCG.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4313 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/target-cris/translate.c b/target-cris/translate.c
index 04632f5..76996b5 100644
--- a/target-cris/translate.c
+++ b/target-cris/translate.c
@@ -375,6 +375,23 @@
 	tcg_gen_discard_i32(n);
 }
 
+static void t_gen_cris_dstep(TCGv d, TCGv s)
+{
+	int l1;
+
+	l1 = gen_new_label();
+
+	/* 
+	 * d <<= 1
+	 * if (d >= s)
+	 *    d -= s;
+	 */
+	tcg_gen_shli_tl(d, d, 1);
+	tcg_gen_brcond_tl(TCG_COND_LTU, d, s, l1);
+	tcg_gen_sub_tl(d, d, s);
+	gen_set_label(l1);
+}
+
 /* Extended arithmetics on CRIS.  */
 static inline void t_gen_add_flag(TCGv d, int flag)
 {
@@ -725,7 +742,7 @@
 		}
 		break;
 		case CC_OP_DSTEP:
-			gen_op_dstep_T0_T1();
+			t_gen_cris_dstep(cpu_T[0], cpu_T[1]);
 			break;
 		case CC_OP_BOUND:
 		{