public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "lh_mouse at 126 dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/53929] [meta-bug] -masm=intel with global symbol
Date: Thu, 04 May 2023 04:37:18 +0000	[thread overview]
Message-ID: <bug-53929-4-j77ZQlM1jc@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-53929-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #13 from LIU Hao <lh_mouse at 126 dot com> ---
dup notwithstanding, I think I had better copy my recommendation here for
reference:



This is how MSVC handles such names:
(https://gcc.godbolt.org/z/TonjYaxqj)

```
static int* volatile rip;
static unsigned int volatile eax;

int
get_value(void)
  {
    return rip[eax];
  }
```

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
```

GCC outputs:
```
get_value:
        mov     rdx, QWORD PTR rip[rip]
        mov     eax, DWORD PTR eax[rip]
        mov     eax, DWORD PTR [rdx+rax*4]
        ret
```

In the case of MSVC, `DWORD PTR eax` is unambiguously parsed as the label `eax`
and `DWORD PTR [eax]` is unambiguously parsed as the register `eax`. The
address of all labels are always relative to RIP, but it is implied, and
brackets are not written explicitly.


Maybe GCC can follow MSVC to omit the RIP register and brackets. The x86_64
memory reference syntax matches x86 with the only change in semantics of the
immediate offset (for x86_64 it is relative to the next instruction, while for
i686 it is absolute), but the opcode is the same.

  parent reply	other threads:[~2023-05-04  4:37 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11 15:39 [Bug c/53929] New: Bug in the use of Intel asm syntax when a global is named "and" louis.granboulan.developer at gmail dot com
2020-09-05  7:49 ` [Bug target/53929] " u1049321969 at caramail dot com
2020-09-06 18:42 ` asolokha at gmx dot com
2020-09-07 10:21 ` jakub at gcc dot gnu.org
2020-09-07 10:45 ` u1049321969 at caramail dot com
2020-09-07 10:54 ` jakub at gcc dot gnu.org
2020-10-26 10:17 ` jbeulich at suse dot com
2020-10-26 10:23 ` jbeulich at suse dot com
2020-12-31 15:06 ` [Bug target/53929] [meta-bug] -masm=intel with global symbol hjl.tools at gmail dot com
2020-12-31 15:07 ` hjl.tools at gmail dot com
2020-12-31 15:08 ` hjl.tools at gmail dot com
2020-12-31 15:08 ` hjl.tools at gmail dot com
2021-06-10  7:25 ` jbeulich at suse dot com
2023-05-04  4:20 ` pinskia at gcc dot gnu.org
2023-05-04  4:37 ` lh_mouse at 126 dot com [this message]
2023-05-04  6:21 ` jbeulich at suse dot com
2023-05-04  7:02 ` lh_mouse at 126 dot com
2023-05-04  7:15 ` jbeulich at suse dot com
2023-05-04  7:24 ` lh_mouse at 126 dot com
2023-05-04 13:14 ` lh_mouse at 126 dot com
2023-05-11 10:58 ` lh_mouse at 126 dot com
2023-05-11 11:35 ` jbeulich at suse dot com
2023-05-11 12:19 ` lh_mouse at 126 dot com
2023-05-11 14:30 ` jbeulich at suse dot com
2023-05-11 14:48 ` lh_mouse at 126 dot com
2024-01-18  5:38 ` lh_mouse at 126 dot com
2024-01-23  1:11 ` lh_mouse at 126 dot com
2024-01-24  2:16 ` lh_mouse at 126 dot com
2024-01-31 20:07 ` egallager at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-53929-4-j77ZQlM1jc@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).