LDC inline assembler
Mike via digitalmars-d-ldc
digitalmars-d-ldc at puremagic.com
Wed May 6 06:31:06 PDT 2015
On Wednesday, 6 May 2015 at 10:31:15 UTC, Kai Nacke wrote:
> Hi Mike!
>
> This should do the trick:
>
> extern(C) ulong dosyscall(ulong a, ulong b, ulong c)
> {
> import ldc.llvmasm;
>
> ulong result = __asm!ulong("syscall",
> "={rax},{rax},{rdi},{rsi},{rdx},~{rcx},~{r11}", 1, a, b, c);
> return result;
> }
>
> A named register must be surrounded with { }. If any register
> is ok then you can use simply r. As far as I know there is no
> way that to tell LLVM that a memory range is clobbered.
>
> Regardsm
> Kai
Thank you! It works great. I added it to the Wiki for future
reference:
http://wiki.dlang.org/LDC_inline_assembly_expressions
Mike
More information about the digitalmars-d-ldc
mailing list