[an error occurred while processing this directive]
Хотя это я невнимательно посмотрел - слева у Вас (x>>=1). Тут непонятно посчитает ли компилятор это переменной или нет. Но как-то (x=x>>1) больше на выражение похоже, чем на переменную.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)