The Itanium Architecture for Software Developers talks about the Kernel Registers. It states:
The eight kernel registers, labeled Kr0 through Kr7, are used to convey information from the operating system to the application program. For instance, the operating system can put read-only, semi-static information such as processor ID into one of the Kernel registers.
Question, If it is read only, how does the OS put information into the register? Is it read only to an application but not to the OS? I am not running under Windows or Linux or anything other OS. I am running in a standalone environment. Am I free to read and write these kernel registers as I see fit and be guaranteed that the compilers won't use them for "normal" code? I want some registers where I can put information that I MUST have extremely fast access to and a dedicated register would be perfect. How can I leverage these or any other register inside the Itanium and be guaranteed that the compilers won't allocate them for use behind my back?