On Tue, Jan 02, 2024 at 08:32:00PM -0000, Stuart Henderson wrote:
> I can't say. Though I doubt there would much objection if it's clean and
> not a copy of a GPLv3-licensed upstream commit.

what about this?

i am not sure about the situation on arm64. it looks like newer gnu
assemblers don't like bti instructions unless explicitly enabled.
llvm seems to be using hint #34 for compatibility.

is /usr/bin/as the GNU assembler on arm64 aswell?

Index: include/opcode/i386.h
===================================================================
RCS file: /cvs/src/gnu/usr.bin/binutils-2.17/include/opcode/i386.h,v
retrieving revision 1.11
diff -C5 -r1.11 i386.h
*** include/opcode/i386.h       9 Sep 2018 21:59:43 -0000       1.11
--- include/opcode/i386.h       3 Jan 2024 07:35:49 -0000
***************
*** 1532,1541 ****
--- 1532,1545 ----
  
  /* Intel PCID extension */
  {"invpcid", 2, 0x660f3882, X, CpuNEW|CpuNo64, 
Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { 
BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 } },
  {"invpcid", 2, 0x660f3882, X, CpuNEW|Cpu64, 
Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { 
BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg64 } },
  
+ /* Intel Indirect Branch Tracking extensions */
+ {"endbr64", 0, 0xF30F1E, 0xFA, Cpu64, NoSuf|ImmExt, { 0, 0, 0 } },
+ {"endbr32", 0, 0xF30F1E, 0xFB, CpuNo64, NoSuf|ImmExt, { 0, 0, 0 } },
+ 
  /* sentinel */
  {NULL, 0, 0, 0, 0, 0, { 0, 0, 0} }
  };
  #undef X
  #undef NoSuf

Reply via email to