Le 03/11/2016 à 17:36, Richard Henderson a écrit : > On 11/02/2016 03:15 PM, Laurent Vivier wrote: >> + if (c1 != l1) { >> + env->cc_n = l1; >> + env->cc_v = c1; >> + } else { >> + env->cc_n = l2; >> + env->cc_v = c2; >> + } >> + env->cc_op = CC_OP_CMPL; >> + env->dregs[Dc1] = deposit32(env->dregs[Dc1], 0, 16, l1); >> + env->dregs[Dc2] = deposit32(env->dregs[Dc2], 0, 16, l2); > > CC_OP_CMPW for cas2w.
It was working because I have used helper_be_ldsw_mmu() to load values, is it better to use helper_be_lduw_mmu with CC_OP_CMPW? >> +DISAS_INSN(cas2l) >> +{ > ... >> + regs = tcg_const_i32(REG(ext2, 6) | >> + (REG(ext1, 6) << 3) | >> + (REG(ext2, 0) << 6) | >> + (REG(ext1, 0) << 9)); >> + gen_helper_cas2w(cpu_env, regs, addr1, addr2); > > cas2l. I should not use values with the high word equal to the low word to test this... Many thanks, Laurent