Frame layout with objects at bottom of frame

On my target, the stack is growing downwards, and some registers must be stored at the bottom of the stack frame.
The layout looks like this:

 +-------------------------+ High Address
 |                         |
 |                         |
 | Argument Area           | <- Incoming SP
 +-------------------------+    16-byte aligned
 | (Stack protector)       | 
 |                         | 
 | Temporary Space /       |
 | Local Variable Space    |
 |                         | 
 | r1 = return address     |
 | r30 = previous FP       | <- FP of callee
 +-------------------------+    16-byte aligned
 |                         |
 |                         |
 | Argument Area           | <- SP of callee
 +-------------------------+    16-byte aligned
 |                         |
 |                         |
 +-------------------------+ <- Low Address

LLVM allocates the local stack objects in direction of stack growth, downwards in this case. The stack size is not known assignCalleeSavedSpillSlots(), so it’s difficult to assign the right stack offset for the registers. What is the recommend approach to match this layout? Especially, how to make sure that r30 and r1 are stored at the right aligned address?
I have several ideas how to create this frame layout, but none of it feels “right”.
Thanks!