x86-64: respect MOVABS when choosing alternative encodings
authorJan Beulich <jbeulich@suse.com>
Fri, 3 Feb 2023 07:21:11 +0000 (08:21 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 3 Feb 2023 07:21:11 +0000 (08:21 +0100)
The alternative encoding is valid for MOV, but there's no such thing for
MOVABS.

gas/config/tc-i386.c

index 438180cf4e8d08cb225962241ac8e6a89146db99..235deb841c827e03708389d3a7a5ed451987479e 100644 (file)
@@ -6888,7 +6888,8 @@ match_template (char mnem_suffix)
            continue;
 
          if (t->base_opcode == MOV_AX_DISP32
-             && t->opcode_modifier.opcodespace == SPACE_BASE)
+             && t->opcode_modifier.opcodespace == SPACE_BASE
+             && t->mnem_off != MN_movabs)
            {
              /* Force 0x8b encoding for "mov foo@GOT, %eax".  */
              if (i.reloc[0] == BFD_RELOC_386_GOT32)