+ if (Type == CAPTURE || Type == EVASION)
+ (*mlist++).move = make_promotion_move(to - Delta, to, QUEEN);
+
+ if (Type == NON_CAPTURE || Type == EVASION)
+ {
+ (*mlist++).move = make_promotion_move(to - Delta, to, ROOK);
+ (*mlist++).move = make_promotion_move(to - Delta, to, BISHOP);
+ (*mlist++).move = make_promotion_move(to - Delta, to, KNIGHT);
+ }
+
+ // This is the only possible under promotion that can give a check
+ // not already included in the queen-promotion.
+ if ( Type == CHECK
+ && bit_is_set(pos.attacks_from<KNIGHT>(to), pos.king_square(opposite_color(Us))))
+ (*mlist++).move = make_promotion_move(to - Delta, to, KNIGHT);
+ else (void)pos; // Silence a warning under MSVC
+ }