Simplify move legality check for uncommon cases

Remove a bunch of difficult and tricky code to test
legality of castle and ep moves and instead use a slower
but simpler check against the list of generated legal moves.

Because these moves are very rare the performance impact
is small but code semplification is ver big: almost 100 lines
of difficult code removed !

No functionality change. No performance change (strangely enough
there is no even minimal performance regression in pgo builds but
instead a slightly and unexpected increase).

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2009-09-22 07:07:18 +01:00
parent 43ca5c926d
commit 8487069058
4 changed files with 31 additions and 123 deletions
+1 -1
View File
@@ -1966,7 +1966,7 @@ namespace {
bool includeAllMoves = (searchMoves[0] == MOVE_NONE);
// Generate all legal moves
MoveStack* last = generate_legal_moves(pos, mlist);
MoveStack* last = generate_moves(pos, mlist);
// Add each move to the moves[] array
for (MoveStack* cur = mlist; cur != last; cur++)