Thread overview
Strange things allowed in iasm
Feb 04, 2018
Basile B.
Feb 04, 2018
Basile B.
Feb 05, 2018
Basile B.
February 04, 2018
1/

void foo()
{
    asm pure nothrow
    {
        naked;
        mov RAX, [0x10][0x20] R8;
        ret;
    }
}

generates

;------- SUB 0000000000449468h -------
0000000000449468h  mov eax, 00000030h
000000000044946Dh  ret
;-------------------------------------


2/

void foo()
{
    asm pure nothrow
    {
        naked;
        mov RAX, [R9][R10] R8;
        ret;
    }
}

generates

;------- SUB 0000000000449468h -------
0000000000449468h  mov rax, r8
000000000044946Bh  ret
;-------------------------------------


IASM Parser bug ?
February 04, 2018
On Sunday, 4 February 2018 at 05:45:02 UTC, Basile B. wrote:
> 1/
>
> void foo()
> {
>     asm pure nothrow
>     {
>         naked;
>         mov RAX, [0x10][0x20] R8;
>         ret;
>     }
> }
>
> generates
>
> ;------- SUB 0000000000449468h -------
> 0000000000449468h  mov eax, 00000030h
> 000000000044946Dh  ret
> ;-------------------------------------
>
>
> 2/
>
> void foo()
> {
>     asm pure nothrow
>     {
>         naked;
>         mov RAX, [R9][R10] R8;
>         ret;
>     }
> }
>
> generates
>
> ;------- SUB 0000000000449468h -------
> 0000000000449468h  mov rax, r8
> 000000000044946Bh  ret
> ;-------------------------------------
>
>
> IASM Parser bug ?

This one too

void foo()
{
    asm pure nothrow
    {
        naked;
        mov RAX[R8][R12], [0x10][0x20] DX [0x10][0x20];
        ret;
    }
}
February 05, 2018
On Sunday, 4 February 2018 at 05:45:02 UTC, Basile B. wrote:
> 1/
>
> void foo()
> {
>     asm pure nothrow
>     {
>         naked;
>         mov RAX, [0x10][0x20] R8;
>         ret;
>     }
> }
>
> generates
>
> ;------- SUB 0000000000449468h -------
> 0000000000449468h  mov eax, 00000030h
> 000000000044946Dh  ret
> ;-------------------------------------
>
>
> 2/
>
> void foo()
> {
>     asm pure nothrow
>     {
>         naked;
>         mov RAX, [R9][R10] R8;
>         ret;
>     }
> }
>
> generates
>
> ;------- SUB 0000000000449468h -------
> 0000000000449468h  mov rax, r8
> 000000000044946Bh  ret
> ;-------------------------------------
>
>
> IASM Parser bug ?

Decided than it is indeed a bug:

https://issues.dlang.org/show_bug.cgi?id=18373

but maybe that the problem happens after parsing.