So in your _alloca example, the compiler doesn't have to use rbp but any register it wants, while 32-bit ABI requires the use of ebp?
_alloca
rbp
ebp