https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
Eric Gallager changed:
What|Removed |Added
CC||egallager at gcc dot gnu.org
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #26 from LIU Hao ---
Created attachment 57199
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57199=edit
Draft patch Ver. 2
1. Fix a typo in `ASM_OUTPUT_SYMBOL_REF` (`x` => `SYM`)
2. For Intel syntax, if the name does not
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #25 from LIU Hao ---
Created attachment 57191
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57191=edit
Draft patch
This is a draft patch, bootstrapped on {i686,x86_64}-w64-mingw32 successfully.
Haven't run tests though.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #24 from LIU Hao ---
I've composed a proposal to address this issue:
https://github.com/lhmouse/mcfgthread/wiki/Formalized-Intel-Syntax-for-x86#the-proposal
The proposal is to treat names between `ptr` and `[` as symbols, and to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #23 from LIU Hao ---
Changes to GCC should look like this I suspect (I didn't test this):
```
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index fbd33a6bfd1..de80c7a805f 100644
--- a/gcc/config/i386/i386.cc
+++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #22 from jbeulich at suse dot com ---
(In reply to LIU Hao from comment #21)
> oh really? I thought it would have to be implemented. If it's readily
> available, we can start making use of it right now.
Well, the general symbol part
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #21 from LIU Hao ---
(In reply to jbeulich from comment #20)
> This is assembly; I don't see how (dis)similarity with C would matter. I
> also don't see how your example is any different in this regard from
>
> mov eax, "symbol"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #20 from jbeulich at suse dot com ---
(In reply to LIU Hao from comment #19)
> (In reply to jbeulich from comment #11)
> > I have a rough plan on the gas side, but that will then need a gcc side
> > change as well: For a couple of
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #19 from LIU Hao ---
(In reply to jbeulich from comment #11)
> I have a rough plan on the gas side, but that will then need a gcc side
> change as well: For a couple of years we have had quoted symbol names there.
> While this
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #18 from LIU Hao ---
Would it make any sense to have GAS be more permissive about such labels,
1. unconditionally? or
2. when input is from a pipe? or
3. when a special option is in effect e.g. `--output-from-gcc`?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #17 from LIU Hao ---
Yeah. It looks to me like the Microsoft compiler doesn't actually uses the
assembler (like LLVM).
Given the C source:
```
extern int rax;
int main() { return rax; }
```
which compiled without errors:
```
> cl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #16 from jbeulich at suse dot com ---
(In reply to LIU Hao from comment #15)
> This is accepted by ML64:
>
> ```
> PUBLICmain
> EXTRN rip:DWORD
> _TEXT SEGMENT
> main PROC
> mov eax, DWORD PTR rip
> ret 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #15 from LIU Hao ---
> 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
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
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #13 from LIU Hao ---
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
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
Andrew Pinski changed:
What|Removed |Added
CC||lh_mouse at 126 dot com
--- Comment #12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #11 from jbeulich at suse dot com ---
I have a rough plan on the gas side, but that will then need a gcc side change
as well: For a couple of years we have had quoted symbol names there. While
this doesn't currently work right in a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
H.J. Lu changed:
What|Removed |Added
CC||teo.samarzija at gmail dot com
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
--- Comment #9 from H.J. Lu ---
*** Bug 87986 has been marked as a duplicate of this bug. ***
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
H.J. Lu changed:
What|Removed |Added
CC||umrihinva123 at gmail dot com
--- Comment #8
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53929
H.J. Lu changed:
What|Removed |Added
Last reconfirmed||2020-12-31
Status|UNCONFIRMED
21 matches
Mail list logo