+ // Span of backward pawns and span behind opposing pawns are not included
+ // in the pawnAttacksSpan bitboard.
+ if (!backward || phalanx)
+ {
+ if (opposed)
+ e->pawnAttacksSpan[Us] |= pawn_attack_span(Us, s) &
+ ~pawn_attack_span(Us, frontmost_sq(Them, opposed));
+ else
+ e->pawnAttacksSpan[Us] |= pawn_attack_span(Us, s);
+ }
+