Re: [PATCH] s390/test_unwind: use raw opcode instead of invalid instruction

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Am 19.11.21 um 11:54 schrieb Heiko Carstens:
On Fri, Nov 19, 2021 at 10:39:15AM +0100, Christian Borntraeger wrote:
So if I understand
https://sourceware.org/binutils/docs/as/s390-Directives.html#s390-Directives
https://sourceware.org/binutils/docs/as/s390-Formats.html
that `e,` prefix is for 16B opcodes?

e is an instruction format as specified by the architecture.
See http://publibfp.dhe.ibm.com/epubs/pdf/a227832c.pdf
without any parameters.
Normally RR would be the right thing for MVCL, but since
we try to build an invalid opcode without the assembler
noticing (ab)using e seem like a safer approach.

LGTM, thanks again.
Suggested-by: Ulrich Weigand <Ulrich.Weigand@xxxxxxxxxx>
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

added those and added my RB. applied to the s390 tree. Thanks
..
diff --git a/arch/s390/lib/test_unwind.c b/arch/s390/lib/test_unwind.c
index cfc5f5557c06..d342bc884b94 100644
--- a/arch/s390/lib/test_unwind.c
+++ b/arch/s390/lib/test_unwind.c
@@ -176,7 +176,7 @@ static noinline int unwindme_func4(struct unwindme *u)
                   * trigger specification exception
                   */
                  asm volatile(
-                       "       mvcl    %%r1,%%r1\n"
+                       "       .insn e,0x0e11\n"       /* mvcl %%r1,%%r1" */

Sorry, I disagree with this. As you said above rr would be the correct
format for this instruction. If we go for the e format then we should
also use an instruction with e format.
Which in this case would simply be an illegal opcode, which would be
sufficient for what this code is good for: ".insn e,0x0000".

Why not simply use .short then?



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux