Подскажите в чём отличие набора инструкций mips4 от mips64. Т.е. то что в gcc задается флагом -march=mips4, -march=mips64, или просто -mips4, -mips64. Про разницу abi ( -mabi ) т.е. o32, n32, n64 - документации хватает, Про mips4 тоже есть документация, А вот c mips64 непонятно что. То ли это черновой вариант так и неродившигося MIPS V , то ли mips4 с плюшками, то ли вообще из другой оперы - непонятно. Ман к gcc ничего не говорит, гугл тоже вроде как молчит, ссылками на abi закидывает. Т.е. конкретно интересует разница между:
$ gcc -O2 -mips4 -o test test.c
$ file test
test: ELF 64-bit MSB executable, MIPS, MIPS-IV version 1, dynamically linked (uses shared libs), not stripped
и
$ gcc -O2 -mips64 -o test test.c
$ file test
test: ELF 64-bit MSB executable, MIPS, MIPS64 version 1, dynamically linked (uses shared libs), not stripped
Пытался поковыряться с objdump, но ввиду наличия совсем другого образования ничего из этого не вышло, чтобы могло для меня прояснить ситуацию.
P.S. Пытаюсь немного «ускорить» роутер. Захлебывается иногда на openvpn + lzo шифровании. Первоначально всё было собрано с mips3, Прочитал про улучшения в FPU и пересборка с mips4 дала прирост быстродействия заметное даже на глаз, процентов на 10-20. Когда первоначально ман gcc читал подумал что под -mips64 имеется ввиду abi. Потом заметил что это не так. Сейчас думаю стоит ли опять брать ключи в ЖЭСе и ползти на пыльный чердак многоэтажки за роутером и сидя без инета openvpn+lzo пересобирать, или овчинка не стоит выделки? Интересует разница только в производительности. Гуру embedded просветите.
gcc