hal и ll - это просто разные (утрированно) способы обращения к регистрам. Предлагаю не пользовать ни то, ни другое - ручками прописать битики и увидеть максимум... А уже потом смотреть, где собака каку искала. :)
Поскольку такого не может быть (ХАЛ не может работать быстрее регистров), вывод напрашивается один - где-то вы налажали. Либо с замерами, либо ещё с чем-то.