6 ms·
Calling conventions are a compiler feature, and in some languages like zig, will let the LLVM backend fully optimize. In zig you can specify a different calling
by nyrikki 2mo ago
Calling conventions are a compiler feature, and in some languages like zig, will let the LLVM backend fully optimize. In zig you can specify a different calling convention at any function call, and you have to be explicit if you want a ABI contract at all.
Intel introduced the RAT (Register address table) with the P6 in 1995. Although IIRC it depended on ROT(Register Order Table) and wouldn’t affect the outcome the same way.
I think Netburst is where it really was extended to support out-of-order pipeline stages.
As long as the CPU does’t violate the interface contract it can micro-optimize at will.