public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
* GCC and binutils support for BPF V4 instructions
@ 2023-07-28 16:41 Jose E. Marchesi
  2023-07-28 16:47 ` Alexei Starovoitov
  2023-07-28 16:59 ` Yonghong Song
  0 siblings, 2 replies; 15+ messages in thread
From: Jose E. Marchesi @ 2023-07-28 16:41 UTC (permalink / raw)
  To: bpf


Hello.

Just a heads up regarding the new BPF V4 instructions and their support
in the GNU Toolchain.

V4 sdiv/smod instructions

  Binutils has been updated to use the V4 encoding of these
  instructions, which used to be part of the xbpf testing dialect used
  in GCC.  GCC generates these instructions for signed division when
  -mcpu=v4 or higher.

V4 sign-extending register move instructions
V4 signed load instructions
V4 byte swap instructions

  Supported in assembler, disassembler and linker.  GCC generates these
  instructions when -mcpu=v4 or higher.

V4 32-bit unconditional jump instruction

  Supported in assembler and disassembler.  GCC doesn't generate that
  instruction.

  However, the assembler has been expanded in order to perform the
  following relaxations when the disp16 field of a jump instruction is
  known at assembly time, and is overflown, unless -mno-relax is
  specified:

    JA disp16  -> JAL disp32
    Jxx disp16 -> Jxx +1; JA +1; JAL disp32

  Where Jxx is one of the conditional jump instructions such as jeq,
  jlt, etc.

So I think we are done with this.  Please let us know if these
instructions ever change.

Relevant binutils bugzillas (all now resolved as fixed):

* Make use of long range calls by relaxation (jal/gotol):
  https://sourceware.org/bugzilla/show_bug.cgi?id=30690

Relevant GCC bugzillas (all now resolved as fixed):

* Make use of signed-load instructions:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110782
  
* Make use of signed division/modulus:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110783

* Make use of signed mov instructions:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110784

* Make use of byte swap instructions:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110786

Salud!

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-07-31 18:11 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-28 16:41 GCC and binutils support for BPF V4 instructions Jose E. Marchesi
2023-07-28 16:47 ` Alexei Starovoitov
2023-07-28 17:06   ` Jose E. Marchesi
2023-07-28 16:59 ` Yonghong Song
2023-07-28 17:40   ` Jose E. Marchesi
2023-07-28 18:01     ` Jose E. Marchesi
2023-07-28 23:49       ` Alexei Starovoitov
2023-07-29  8:29         ` Jose E. Marchesi
2023-07-29 17:56           ` Alexei Starovoitov
2023-07-30  4:54             ` Jose E. Marchesi
2023-07-30 16:12               ` Yonghong Song
2023-07-30 19:11                 ` Jose E. Marchesi
2023-07-30 16:53               ` Alexei Starovoitov
2023-07-30 21:06                 ` Jose E. Marchesi
2023-07-31 18:10                   ` Alexei Starovoitov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox