KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
AMD has an ABI specification that describes the calling convention to use on x86-64. All OSes follow it, except for Windows which has it's own x86-64 calling convention. Why? Does anyone know the technical, historical, or political reasons for this difference, or is it purely a matter of NIHsyndrome? I understand that different OSes may have different needs for higher level things, but that doesn't explain why for example the register parameter passing order on Windows is rcx - rdx - r8 - r9 - rest on stack while everyone else uses rdi - rsi - rdx - rcx - r8 - r9 - rest on stack . P.S. I am aware of how these calling conventions differ generally and I know where to find details if I need to. What I want to know is why . Edit: for the how, see e.g. the wikipedia entry and links from there.
Tags (comma-separated)
Save Edits
Cancel