[Bug target/87986] New: Assembler errors w/ -masm=intel

asolokha at gmx dot com gcc-bugzilla@gcc.gnu.org
Mon Nov 12 11:35:00 GMT 2018


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

            Bug ID: 87986
           Summary: Assembler errors w/ -masm=intel
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: assemble-failure
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-pc-linux-gnu

Let's consider the following cases:

% cat logpnyyb.c 
int bx;

void
ue (void)
{
  bx = 0;
}

% cat rluc6lhr.c 
void
k1 (void)
{
}

Compiling them for x86_64 w/ -masm=intel yields the following:

% gcc-9.0.0-alpha20181111 -pipe -masm=intel -c logpnyyb.c
{standard input}: Assembler messages:
{standard input}:15: Error: invalid use of register

% cat logpnyyb.s 
        .file   "logpnyyb.c"
        .intel_syntax noprefix
        .text
        .comm   bx,4,4
        .globl  ue
        .type   ue, @function
ue:
.LFB0:
        .cfi_startproc
        push    rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        mov     rbp, rsp
        .cfi_def_cfa_register 6
        mov     DWORD PTR bx[rip], 0
        nop
        pop     rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE0:
        .size   ue, .-ue
        .ident  "GCC: (GNU) 9.0.0-alpha20181111 20181111 (experimental)"
        .section        .note.GNU-stack,"",@progbits

% gcc-9.0.0-alpha20181111 -pipe -masm=intel -c rluc6lhr.c
{standard input}: Assembler messages:
{standard input}: Error: .size expression for k1 does not evaluate to a
constant

% cat rluc6lhr.s 
        .file   "rluc6lhr.c"
        .intel_syntax noprefix
        .text
        .globl  k1
        .type   k1, @function
k1:
.LFB0:
        .cfi_startproc
        push    rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        mov     rbp, rsp
        .cfi_def_cfa_register 6
        nop
        pop     rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE0:
        .size   k1, .-k1
        .ident  "GCC: (GNU) 9.0.0-alpha20181111 20181111 (experimental)"
        .section        .note.GNU-stack,"",@progbits

Top of trunk gcc is not actually necessary, it also reproduces at least on the
gcc 8 branch.

I have binutils 2.31.1 installed. I'm not sure which tool, gcc or gas, might be
at fault here, so I'll move this PR to the binutils Bugzilla if necessary.


More information about the Gcc-bugs mailing list