-
- ARM EABI регламентирует, что входные параметры функций передаются регистрами R0,R1,R2,R3 каждый шириной 32 бита. Все остальное компилятор начинает обыгрывать, раскладывая нужные данные на стеке. lloyd(98 знак., 13.09.2017 10:09, )
- Могу ошибаться, но суть примерно такая - при одном формальном параметре возвращаемый параметр укладывается на его место. Т.е. при использовании одного указателя (размер равен int32 для Cortex), как и любого одного параметра, обычно (без глубоких Vit(523 знак., 10.09.2017 21:05)
- А почему количество или тип параметров должны быть ограничены? - ASDFS(10.09.2017 18:09)
- Понятно, почему. Скажем, массив занимает половину ОЗУ, и мы передаём его по значению, то есть в процессе создаётся копия. ОЗУ кончается, опять же такты на копирование жалко тем, кто постоянно куда-то опаздывает. Но аффтар это всё умолчал, поэтому SciFi(32 знак., 10.09.2017 18:13 - 18:15)
- У меня тяжелое восьмибитное детство,
деревянные игрушки прибитые к полупередача значений через регистры, поэтому и парюсь. В Арме разве не так? - IBAH(10.09.2017 18:31)- На мой взгляд, передача параметров в функцию целиком на совести компилятора, а ARM тут ни при чем. - Ксения(10.09.2017 20:51)
- Ну здрассте. Есть же EABI, почитайте на досуге. - SciFi(10.09.2017 20:54)
- Забыла, что ARMировщики под OS живут. Но тогда это соглашение, продиктованное используемой операционной системой. - Ксения(10.09.2017 20:58)
- Ксения, мы привыкли к вашим заблуждениям, такшта продолжайте :-) - SciFi(10.09.2017 20:59)
- Забыла, что ARMировщики под OS живут. Но тогда это соглашение, продиктованное используемой операционной системой. - Ксения(10.09.2017 20:58)
- Ну здрассте. Есть же EABI, почитайте на досуге. - SciFi(10.09.2017 20:54)
- Да хоть передача голубиной почтой. О чём печаль? - SciFi(10.09.2017 18:39)
- О эффективность! О время выполнения! самое тяжелое время в жизни моего народа! Время от рассвета и до открытия магазинов! Метастазы перфекционизма , аж кушать не могу! - IBAH(10.09.2017 18:46)
- Нужно почитать о передаче данных между С и asm модулями в конкретном компиляторе. Обычно пишут какие регистры нужно использовать. Обычно не более 4-х. - misyachniy(10.09.2017 19:19)
- не более четырех? спасибо то что нужно! в АВР например передача шла через 10-12 регистров, все что больше через программный стек, соответственно с потерей эффективности - IBAH(10.09.2017 19:41)
- Есть регистры, которые любая функция может использовать без сохранения. misyachniy(78 знак., 10.09.2017 21:07)
- Это всё дурь. Ежели эффективность - это микроамперы, то втыкайте микроамперметр и измеряйте, а не трындите на форуме. Объективная реальность - это вам не регистры. - SciFi(10.09.2017 19:47)
- Трындеть не мешки ворочать, но таки приятнее! IBAH(120 знак., 10.09.2017 19:53)
- не более четырех? спасибо то что нужно! в АВР например передача шла через 10-12 регистров, все что больше через программный стек, соответственно с потерей эффективности - IBAH(10.09.2017 19:41)
- Не цените свой труд, коллега. Эффективность - это не такты процессора, а минуты рабочего времени. Не забивайте себе голову фигнёй без причины. - SciFi(10.09.2017 19:10)
- так можно рассуждать когда у тебя 100500мегагерцбайт+Красноярская ГЭС, а когда всего в обрез, и не известно, хватит ли тебе этого в конечном релизе, немножко кушать не могу IBAH(84 знак., 10.09.2017 19:29)
- С батарейками дела не имел, но не верю, что там что-то в эту хрень упирается. Важнее правильно организовать режимы энергосбережения и всё такое, или нет? - SciFi(10.09.2017 19:41)
- Каждая команда ЦПУ требует энергии, как не организовывай режимы, чем меньше пустых команд (типа while(1);) сделает ЦПУ тем меньше он сожрет энергии - IBAH(10.09.2017 19:48)
- С батарейками дела не имел, но не верю, что там что-то в эту хрень упирается. Важнее правильно организовать режимы энергосбережения и всё такое, или нет? - SciFi(10.09.2017 19:41)
- так можно рассуждать когда у тебя 100500мегагерцбайт+Красноярская ГЭС, а когда всего в обрез, и не известно, хватит ли тебе этого в конечном релизе, немножко кушать не могу IBAH(84 знак., 10.09.2017 19:29)
- Нужно почитать о передаче данных между С и asm модулями в конкретном компиляторе. Обычно пишут какие регистры нужно использовать. Обычно не более 4-х. - misyachniy(10.09.2017 19:19)
- О эффективность! О время выполнения! самое тяжелое время в жизни моего народа! Время от рассвета и до открытия магазинов! Метастазы перфекционизма , аж кушать не могу! - IBAH(10.09.2017 18:46)
- На мой взгляд, передача параметров в функцию целиком на совести компилятора, а ARM тут ни при чем. - Ксения(10.09.2017 20:51)
- У меня тяжелое восьмибитное детство,
- Понятно, почему. Скажем, массив занимает половину ОЗУ, и мы передаём его по значению, то есть в процессе создаётся копия. ОЗУ кончается, опять же такты на копирование жалко тем, кто постоянно куда-то опаздывает. Но аффтар это всё умолчал, поэтому SciFi(32 знак., 10.09.2017 18:13 - 18:15)