- ss->staticEval = eval =
- (ss-1)->currentMove != MOVE_NULL ? evaluate(pos)
- : -(ss-1)->staticEval + 2 * Eval::Tempo;
-
- tte->save(posKey, VALUE_NONE, BOUND_NONE, DEPTH_NONE, MOVE_NONE,
- ss->staticEval, TT.generation());
- }
-
- improving = ss->staticEval >= (ss-2)->staticEval
- ||(ss-2)->staticEval == VALUE_NONE;
-
- if (skipEarlyPruning || !pos.non_pawn_material(pos.side_to_move()))
- goto moves_loop;
-
- // Step 7. Razoring (skipped when in check)
- if ( !PvNode
- && depth <= 2 * ONE_PLY)
- {
- if ( depth == ONE_PLY
- && eval + RazorMargin1 <= alpha)
- return qsearch<NonPV>(pos, ss, alpha, alpha+1);
-
- else if (eval + RazorMargin2 <= alpha)