-
- Внутри хала должна быть просто запись по адресу с инкрементом двух 32разрядных слов. Врядли тут засада возможна. - Andreas(14.05.2021 11:20)
- а что там есть внутрях 64-х разрядного? кроме, возможно, умножителя - Mahagam(14.05.2021 10:48)
- вот ниже более опытный товарищ подсказывает выравнивание стека по 8 байтам - VLLV(14.05.2021 11:25)
- все равно не могу понять - напуркуа оно 32-х разрядному
контроллеру? и там ниже - выравниваение по 4 байтам вроде. - Mahagam(14.05.2021 13:59)
- По большому счету для CM0 выравнивание стека на 8 байт не нужно,
просто ABI у ARM одинаков для всех кортексов, а камням с плавучкой
выравнивание стека на 8 байт необходимо. - LightElf(14.05.2021 14:12)
- а почему? и что, один push в одно слово сломает стек? или как? - Mahagam(14.05.2021 14:14)
- LDRD, STRD? - SciFi(14.05.2021 14:32)
- вроде как две 32-х разрядные транзакции по шине. но да, давно с
армами не сталкивался. спасиб за инфу. - Mahagam(14.05.2021 14:51)
- По ссылке некая выжимка про выравнивание. Там 8 байт необходимо для LDRD, STRD только у "ARMv5 and earlier". Но я ещё сталкивался с тем, что компилятор использовал знание о том, что младшие три бита адреса нули, в адресной арифметике. Соответственно, если это нарушалось, код ломался. - SciFi(14.05.2021 15:02 - 15:24, ссылка)
- вроде как две 32-х разрядные транзакции по шине. но да, давно с
армами не сталкивался. спасиб за инфу. - Mahagam(14.05.2021 14:51)
- LDRD, STRD? - SciFi(14.05.2021 14:32)
- а почему? и что, один push в одно слово сломает стек? или как? - Mahagam(14.05.2021 14:14)
- По большому счету для CM0 выравнивание стека на 8 байт не нужно,
просто ABI у ARM одинаков для всех кортексов, а камням с плавучкой
выравнивание стека на 8 байт необходимо. - LightElf(14.05.2021 14:12)
- все равно не могу понять - напуркуа оно 32-х разрядному
контроллеру? и там ниже - выравниваение по 4 байтам вроде. - Mahagam(14.05.2021 13:59)
- вот ниже более опытный товарищ подсказывает выравнивание стека по 8 байтам - VLLV(14.05.2021 11:25)