Feature Request: enhanced inline ASM

Dan murpsoft at hotmail.com
Tue Apr 3 08:09:37 PDT 2007


Davidl Wrote:
...
> 	mov EAX, name.ptr;
> 	mov EBX, name.length;
> 
...
> For AA's we would still need to use the extern C func to deal with.
...

I agree m8.  That syntax is much more attractive to us assembly programmers as well.  The thing that I'm sure Walter doesn't want to do though is trick assembler programmers into thinking they can access a ways down the "." chain all the time.

Let me explain: If we have:

struct b {
  char[] s;
}

struct a {
  void* x = b;
  union y {
    int z;
  }
}



You can access a.y.z, but not a.x.s.ptr  The first just performs a structure offset while the second has to lea through x, and then again through b.s.ptr; more than one instruction ought to be illegal.  It's asm after all.

You can theoretically have D perform any single asm op to do the correct lookup into a structure or object - but you have to be aware of what's happening.



More information about the Digitalmars-d mailing list