Как структуры на основе стека передаются подпрограммам в сборке ARM?
Например:
typedef struct SomeStruct {
uint32_t one;
uint32_t two;
uint32_t three;
uint32_t four;
} SomeStruct;
void SomeFunction(uint32_t someValue, SomeStruct someStruct, uint32_t otherValue);
В таком случае, как будет проходить структура? Мое предположение:
r0
- someValue
r1
- someStruct.one
r2
- someStruct.two
r3
- someStruct.three
*sp
- someStruct.four
*sp,#4
- otherValue
Это правильно или что-то еще происходит? Или оно просто передает адрес структуры sp
?