Raymond Chen wrote a very interesting introduction to the Itanium architecture and how it is used in Windows. I have collected links for the series of posts below:
- Part 1: Warming up
- Part 2: Instruction encoding, templates, and stops
- Part 3: The Windows calling convention, how parameters are passed
- Part 3b: How does spilling actually work?
- Part 4: The Windows calling convention, leaf functions
- Part 5: The GP register, calling functions, and function pointers
- Part 6: Calculating conditionals
- Part 7: Speculative loads
- Part 8: Advanced loads
- Part 9: Counted loops and loop pipelining
- Part 10: Register rotation