Kitz ADSL Broadband Information
adsl spacer  
Support this site
Home Broadband ISPs Tech Routers Wiki Forum
   Compare ISP   Rate your ISP
   Glossary   Glossary
Please login or register.

Login with username, password and session length
Advanced search  


Author Topic: Red zone - hardware and o/s implementation  (Read 1249 times)


  • Addicted Kitizen
  • *****
  • Posts: 9342
  • Retd sw dev; A&A; 4 × 7km ADSL2; IPv6; Firebrick
Red zone - hardware and o/s implementation
« on: July 26, 2019, 10:03:16 AM »

In the System V ABI for AMD64, there is a ‘red zone’ of 128 bytes below the stack pointer. I have never used a system with this feature, it’s usually death and horror beyond imagining. So how does this manage to work?

Is it the case that there are (effectively) several stack pointers - like on some processors that have a user stack pointer and a supervisor stack pointer, 6809? 68000? And there could be three stack pointers, an additional one for interrupts. If so, is it the case that it all just works, because interrupts are always guaranteed to use only the ‘system/supervisor’ stack immediately and directly ? - without any bothersome software stack-switching (stack switching would be death anyway for this case)

Anyway however it manages to work, it’s a very nice touch, someone really really cares about efficiency and shaving that last percentage point off critical routines.
« Last Edit: July 26, 2019, 10:05:20 AM by Weaver »