Vùng màu đỏ, hoàn toàn và đơn giản, là một tối ưu hóa có thể lưu các hướng dẫn. Điều đó có nghĩa là không còn cần thiết cho mã được phát ra cho mọi hàm để trừ khỏi con trỏ ngăn xếp để tạo bộ nhớ cục bộ như vậy
sub XXX, %rsp
ở đầu mỗi lệnh gọi hàm, ngay cả khi chúng không phải là hàm lá. Thông thường, mã được phát ra từ trình biên dịch có thể sử dụng không gian tạm thời trong vùng màu đỏ bên dưới con trỏ ngăn xếp mà không cần lưu nó và trước khi gọi các hàm khác. Đây là một tối ưu hóa hữu ích để có sẵn.
Nếu bạn không còn phải phụ từ con trỏ ngăn xếp, mã được phát có thể sử dụng rsp làm con trỏ cơ sở, một công việc thường dành cho rbp và mã được phát có thể sử dụng rbp làm một thanh ghi mục đích chung khác.
Điều này cuối cùng có nghĩa là phần mở đầu và phần kết của mỗi lệnh gọi hàm có thể lưu hai hướng dẫn sẽ lưu và khôi phục rbp:
(người lắp ráp gnu)
pushq %rbp # prologue [ two instructions not necessary ]
movq %rsp,%rbp
.... [code]
movq %rbp,%rsp # epilogue [ two instructions not necessary ]
popq %rbp
Lưu ý rằng trong gcc, bạn có thể vượt qua cờ -mno-red-nếu bạn không muốn nó (nhưng ABI x86-64 yêu cầu nó). Hạt nhân Linux không cần phải tuân thủ ABI và do đó tất cả mã hạt nhân được biên dịch với -mno-red-zone.
Hơn nữa, truy cập bộ nhớ ngoài con trỏ ngăn xếp không nguy hiểm nếu đó là chế độ hoạt động dự kiến. Nó chỉ nguy hiểm và có thể dẫn đến tham nhũng khi không có kế hoạch và bất ngờ. Khi mã được phát ra, nó biết nó đang làm gì.