https://sourceware.org/bugzilla/show_bug.cgi?id=33092

            Bug ID: 33092
           Summary: Internal error: assertion failure in build_modrm_byte
           Product: binutils
           Version: 2.40
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: gas
          Assignee: unassigned at sourceware dot org
          Reporter: qingren2hxb at gmail dot com
  Target Milestone: ---

Input
==========
// test.c
#include <stdint.h>

int main()
{
  uint64_t a = 0xa, b = 0xb, c = 0xc, d = 0xd;
  __asm__(
      "shldq %2, %1, %0\n\t"
      "shldq %4, %3, %0\n\t"
      : "+r"(a), "+r"(b)
      : "r"(c), "r"(d)
      : "cc");
  return 0;
}
==========

Ouput
==========
gcc test.c
test.c: Assembler messages:
test.c:10: Internal error in build_modrm_byte at
../../gas/config/tc-i386.c:8290.
Please report this bug.
==========

GCC Version: 15.1.0
Gas Version: GNU assembler (GNU Binutils for Debian) 2.40
Hardware: x86_64
OS: Linux


This internal error originates from the following assertion check in
gas/config/tc-i386.c:8290
==========
gas_assert (i.imm_operands == 1
            || (i.imm_operands == 0
                && (i.tm.opcode_modifier.vexvvvv == VEXXDS
                    || (i.types[0].bitfield.instance == RegC
                        && i.types[0].bitfield.byte))));
==========

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to