Quoting a post of a ipxe related developer that did a nice check
realizing that e.g. disassembly always lists pushq (and opcode stays the
same) - thanks to Valentine for these checks!:


AFAIU, segment registers
are 16-bit long, however, "pushl" and "pushq" should also be valid and
produce the same opcode.

Quite interesting that obdump -S always shows "pushq" even when
"push" or "pushl" is used in the original source.

Please, take a look at the following log:

[email protected]:/tmp$ cat push.S
 push %gs
 push %fs
[email protected]:/tmp$ as --64 push.S -o push.out
[email protected]:/tmp$ objdump -S push.out

push.out:     file format elf64-x86-64


Disassembly of section .text:

0000000000000000 <.text>:
   0:   0f a8                   pushq  %gs
   2:   0f a0                   pushq  %fs
[email protected]:/tmp$ cat pushl.S
 pushl %gs
 pushl %fs
[email protected]:/tmp$ as --64 pushl.S -o pushl.out
[email protected]:/tmp$ objdump -S pushl.out

pushl.out:     file format elf64-x86-64


Disassembly of section .text:

0000000000000000 <.text>:
   0:   0f a8                   pushq  %gs
   2:   0f a0                   pushq  %fs
[email protected]:/tmp$ cat pushq.S
 pushq %gs
 pushq %fs
[email protected]:/tmp$ as --64 pushq.S -o pushq.out
pushq.S: Assembler messages:
pushq.S:1: Error: operand type mismatch for `push'
pushq.S:2: Error: operand type mismatch for `push'

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1843394

Title:
  FTBFS in Eoan - Error: operand type mismatch for `push' - gcc 9.2.1 /
  binutils 2.32.51.20190905-0ubuntu1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/binutils/+bug/1843394/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to