[an error occurred while processing this directive]
|
Пусть уберем memory mapped. Что потеряем? Потеряем возможность сделать за один такт какие-то операции. Все равно их сможем сделать, но за два такта. то есть придется сделать mem=Rz; Rx=Ry+mem; Просто они добавили фичу. Которую могли бы и не делать. И добавили ее для удобства программистов, чтобы они могли заворотить в ЛЮБОЙ опреции, работающей с памятью, обращение к ЛЮБОМУ регистру. А не только при помощи команд, умеющих работать с регистрами. Это уже из серии "фича есть, не хотите, не используйте". В блекфине при этом вообще НИКАК нельзя использовать операнд из памяти в арифметической команде. Ни через какую Ж. Надо его загрузить сначала в регистр.
Принятые нормы это как раз тормоза прогресса. :) Всегда что-то новое и необычное вызывает у части людей аналогичную реакцию, что это все неправильно, и неоптимально, и т.д. НО ЭТО НЕ ТОТ СЛУЧАЙ! И, кстати, насчет перехода с классической архитектуры - я на него перешел прямо с (куда уж более классической) интеловской 51-ой архитектуры. И все очень и очень похоже было. И операнды из памяти во всех инструкциях, и регистры в память замапленные, и битовые операции, и прочее. Ну естественно все мощнее и продвинутее.
Насчет компиляторов - скорее всего какая-то политика TI. Начинался когда-то гнутый компилер под 6х, да так и не продолжился, заГНУлся. Либо всех устраивает родной code generation от них, тем более что оно есть под большинство используеиых платформ, включая линукс, солярис и hp/ux.
E-mail: info@telesys.ru