https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93053

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I've tried manually:
--- cas_16_1.s~ 2020-04-14 12:19:03.000000000 +0200
+++ cas_16_1.s  2020-04-14 12:20:10.083098672 +0200
@@ -5,7 +5,7 @@
 # 1 "<command-line>" 2
 # 1 "/usr/src/gcc/libgcc/config/aarch64/lse.S"
 # 53 "/usr/src/gcc/libgcc/config/aarch64/lse.S"
- .arch armv8-a+lse
+ .arch armv8-a


  .hidden __aarch64_have_lse_atomics
@@ -37,7 +37,8 @@
 STARTFN __aarch64_cas16_relax
  JUMP_IF_NOT_LSE 8f
 # 166 "/usr/src/gcc/libgcc/config/aarch64/lse.S"
- casp x0, x1, x2, x3, [x4]
+// casp x0, x1, x2, x3, [x4]
+ .word 0x48207c82
  ret

 8: mov x16, x0
which assembles (the constant taken from aarch64-linux-objdump -dr before the
changes), but for some reason when disassembled aarch64-linux-objdump -dr knows
that it was .word and not casp instruction.
Any way to emit insns not supported by the assembler?

Reply via email to