https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929

--- Comment #14 from jbeulich at suse dot com ---
(In reply to LIU Hao from comment #13)
> MSVC outputs:
> ```
> get_value PROC                                      ; COMDAT
>         mov     ecx, DWORD PTR eax
>         mov     rax, QWORD PTR rip
>         mov     eax, DWORD PTR [rax+rcx*4]
>         ret     0
> get_value ENDP
> ```

Which as least MASM up to 12.x won't assemble. For one it complains about "rip"
being undeclared. And then the load of "ecx" is _not_ a memory access (i.e. the
"DWORD PTR" is ignored there). Which is in line with it also objecting to
something like "extrn eax:dword".

I say this because I'd be happy to help this on the gas side, but only without
breaking MASM compatibility. My present plan for gas is (as already outlined in
#11) to make quoted identifiers unambiguously mean symbols, not registers. But
of course that would still require a gcc side change as well. Unfortunately
there continue to be inconsistencies in gas with quoted identifiers in general,
and it's not entirely clear yet whether those may need addressing first.

Reply via email to