"Manu" <[email protected]> wrote in message news:[email protected]... > On 30 March 2014 13:39, Walter Bright <[email protected]> wrote: >>> >>> Two pointers structs are passed in register, which is fast. If that >>> spill, that >>> spill on stack, which is hot, and prefetcher friendly. >>> >> >> That underestimates how precious register real estate is on the x86. > > > This is only a concern when passing args. x86 has huge internal register > files and uses aggressive register renaming,
If we could use them that would be great but we cant. We have to store/load to memory, and that means aprox 3 cycle latency each way. The cpu cant guess that we're only saving it for later, it has to do the memory write, and even with the store to load forwarding mechanism, spilling and reloading is expensive.
