-
- По большому счету для 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)