Whether a red zone is present depends on the calling convention.
x86-64 systems that use the System V AMD64 ABI (including Linux and macOS) use a 128-byte red zone that begins directly under the current value of the stack pointer.
[1][2] The OpenRISC toolchain assumes a 128-byte red zone.
[4] In fact, the ABI explicitly states that the memory beyond the stack pointer is volatile and may be overwritten by debuggers or interrupt handlers.
[6] The red zone is safe from modification by interrupt/exception/signal handlers.