This problem has been seen when XST encodes themode_int" FSM in triple_rate_rx_autorate module as a one-hot state machine. XST Safe Implementation should ensure that it never ends up in an illegal state, but in some cases this does not happen (for example, if a user adds another state to detect another mode like ASI).
The way to work around this is to force the encoding method using the fsm_encoding attribute in the source code.
(* fsm_encoding ="user" *) reg [1:0] mode_int = 2'b00;
This does have the side affect in that it may make it harder to meet timing, but this will keep the state machine from ending up in an illegal state.