On 09/08/2016 03:31 PM, Michael Rolnik wrote:
+static void gen_sub_Cf(TCGv dest, TCGv src1, TCGv src2)
+{
+ TCGv t1 = tcg_temp_new_i32();
+ TCGv t2 = tcg_temp_new_i32();
+ TCGv t3 = tcg_temp_new_i32();
+
+ tcg_gen_not_tl(t1, src1); /* t1 = ~src1 */
+ tcg_gen_and_tl(t2, t1, src2); /* t2 = ~src1 & src2 */
+ tcg_gen_or_tl(t3, t1, src2); /* t3 = (~src1 | src2) & dest */
+ tcg_gen_and_tl(t3, t3, dest);
+ tcg_gen_or_tl(t2, t2, t3); /* t2 = ~src1 & src2
+ | ~src1 & dest
+ | dest & src2 */
+ tcg_gen_shri_tl(cpu_Cf, t2, 31);/* Cf = t2(31) */
Again, this can be done with tcg_gen_sub2_tl.
r~