On 20 June 2012 11:14, deadalnix <deadalnix@gmail.com> wrote:
Le 20/06/2012 09:58, Manu a écrit :
On 20 June 2012 10:42, deadalnix <deadalnix@gmail.com
<mailto:deadalnix@gmail.com>> wrote:

   Le 19/06/2012 22:58, Manu a écrit :

       This would almost entirely eliminate the usefulness of an inline
       assembler.
       Better yet, this could use the 'new' attribute syntax, which
       most agree
       will support arguments:
       @register(rsp) int x;


   Choosing registers is something the compiler is better at than us
   most of the time.

   For this very reason, I think we want to go in the exact opposite
   direction : asm with compiler choosen register when possible.


...I think you've missed the entire point of my suggestion.
But that's okay. I give up ;)

We presented you example code where your approach isn't going to do the trick. You are free to ignore them.

No, the entire point of my suggestion IS to allow seamless mixing with conventional code, which includes compiler register assignment.
The main problem with IA is it's interference with the optimiser, and it's inability to make automatic register selection.

Walter claimed push/pop intrinsics wouldn't work due to alignment issues, but I think that's a moot argument, since it's identical to writing your code in asm anyway. If the asm works, then it'll work using an intrinsic exactly the same.
The neat bonus is, you can interleave it with structured code, any non-critical variables can be automatically assigned by the compiler as usual... and if the compiler feels comfortable to reorder the code, it can do so.