Revision 93e3c0ae target-i386/ops_sse.h

b/target-i386/ops_sse.h
2099 2099
                                 pcmp_elen(env, R_EAX, ctrl));
2100 2100

  
2101 2101
    if (res) {
2102
        env->regs[R_ECX] = ((ctrl & (1 << 6)) ? rffs1 : ffs1)(res) - 1;
2102
        env->regs[R_ECX] = (ctrl & (1 << 6)) ? rffs1(res) - 1 : 32 - ffs1(res);
2103 2103
    } else {
2104 2104
        env->regs[R_ECX] = 16 >> (ctrl & (1 << 0));
2105 2105
    }
......
2137 2137
                                 pcmp_ilen(d, ctrl));
2138 2138

  
2139 2139
    if (res) {
2140
        env->regs[R_ECX] = ((ctrl & (1 << 6)) ? rffs1 : ffs1)(res) - 1;
2140
        env->regs[R_ECX] = (ctrl & (1 << 6)) ? rffs1(res) - 1 : 32 - ffs1(res);
2141 2141
    } else {
2142 2142
        env->regs[R_ECX] = 16 >> (ctrl & (1 << 0));
2143 2143
    }

Also available in: Unified diff