improved x86 detection