From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com [IPv6:2607:f8b0:4864:20::230]) by sourceware.org (Postfix) with ESMTPS id 8E6BD384646A for ; Thu, 15 Sep 2022 02:43:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8E6BD384646A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-oi1-x230.google.com with SMTP id a133so623803oif.4 for ; Wed, 14 Sep 2022 19:43:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=pB8osYZ6SP6N2O0pDFpAwyv+uGJ8TRHeiSIvwesiNWg=; b=cTE6qjSoMxrVjKtMsgkRy1aPwRJxubK/Xunai4Lf8gklsv+pNdBP5n3ixU4KcduCZj gk/4rS2GqyAksLz+MHZMrmvw1qAEYoSBgyYFSB98ggz2dp6ynOTYP68z5AhFElxM2SjT nw1+XiY98Ygok2MKE76qYXemZImlCFpr8YP3JiwvzXlZQ83Nh/AluUz6sG6dAa5UNkM1 gmGtI6tFIGwqKO31lGH4E4k3AvM4+YWGjRYVDvyXENyyNiXihrIL6Au0UFovOybbKv3O uhPHYVuuhgLpyPQuiP1GJpKgH/2ojgf0k1vRWbUES/+p4dbGCQaP6i5x9szhX/KqjzaO Vmag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=pB8osYZ6SP6N2O0pDFpAwyv+uGJ8TRHeiSIvwesiNWg=; b=AJlSU2mJkEVtTM6ptpRW5dQ5wLW+EQqBZMOH52+Bsk2M0p8UhmowVTyyxtLKilq5OZ m1VYPdCAu4iREtyNurilqMuSMZR5fRdd8xkHJ9XF6dPu4qnn5RWAT0E1KNOwj9hAWBNe F/NDB+qa8yT8ZTPkmvsqU5gt2ENvDTqWv//vlXs9A2Wj8YSkM4uTe0jhGoTvm0yU32bg nQmTvWRSX8xPX2SYV7Vr6m7Kb8HQNV2dQp8bezNANZJqHA1jFXX8xxCdHt9aAyG3saxk qcJ6Z1IowXtPTj1T2EMvgfow0K38mgHAR/ZUmjnShGYR7dfemRMkDzxOpyZD/HkKdsTu GpoA== X-Gm-Message-State: ACgBeo2A3MCSahDARQlB7JojcNzEwTcko32GUXY0MCv01p6GUL15pWgK eQFPsHPj6Fuls8lDzUnwmZ0ZkyBC0J1ZLG1ZWQSwCw== X-Google-Smtp-Source: AA6agR6D2pFEgTGrrpG9Zaq5XoiAOyWu3MJ+A8rgLlo1UhQRvUuludYv6el9QjBTjT27juH1y3/zby3IAAp8/pwb6oM= X-Received: by 2002:a05:6808:1884:b0:344:cc03:c64d with SMTP id bi4-20020a056808188400b00344cc03c64dmr3163061oib.107.1663209836912; Wed, 14 Sep 2022 19:43:56 -0700 (PDT) MIME-Version: 1.0 References: <7cb92a0b-d1ef-e3db-4773-0b6cd5183272@suse.com> <348fe122-8296-716a-30ad-ce77746b9aa8@suse.com> In-Reply-To: <348fe122-8296-716a-30ad-ce77746b9aa8@suse.com> From: Nelson Chu Date: Thu, 15 Sep 2022 10:43:46 +0800 Message-ID: Subject: Re: [PATCH 2/3] RISC-V: drop stray INSN_ALIAS flags To: Jan Beulich Cc: Binutils , Palmer Dabbelt , Andrew Waterman , Jim Wilson Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Thanks, this patch fixes the problem when dumping fence.tso, zip and unzip with -Mno-aliases. Please commit this one when you think it's time. * Before applying this patch, % cat tmp.s zip a0, a1 unzip a0, a1 fence.tso % riscv64-unknown-elf-as -march=rv32i_zbkb tmp.s -o tmp.o % riscv64-unknown-elf-objdump -d tmp.o tmp.o: file format elf32-littleriscv Disassembly of section .text: 00000000 <.text>: 0: 08f59513 zip a0,a1 4: 08f5d513 unzip a0,a1 8: 8330000f fence.tso % riscv64-unknown-elf-objdump -d -Mno-aliases tmp.o tmp.o: file format elf32-littleriscv Disassembly of section .text: 00000000 <.text>: 0: 08f59513 .4byte 0x8f59513 4: 08f5d513 .4byte 0x8f5d513 8: 8330000f .4byte 0x8330000f * After applying this patch, I get the right result for -Mno-aliases, % riscv64-unknown-elf-objdump -d -Mno-aliases tmp.o tmp.o: file format elf32-littleriscv Disassembly of section .text: 00000000 <.text>: 0: 08f59513 zip a0,a1 4: 08f5d513 unzip a0,a1 8: 8330000f fence.tso Thanks Nelson On Tue, Sep 13, 2022 at 9:03 PM Jan Beulich wrote: > > FENCE.TSO isn't an alias. ZIP and UNZIP in the long run likely are, but > presently they aren't. This fixes disassembly of these insns with > -Mno-aliases. > > --- /dev/null > +++ b/gas/testsuite/gas/riscv/fence-tso-na.d > @@ -0,0 +1,12 @@ > +#as: -march=rv32ic > +#source: fence-tso.s > +#objdump: -dr -Mno-aliases > + > +.*:[ ]+file format .* > + > + > +Disassembly of section .text: > + > +0+000 : > +[ ]+[0-9a-f]+:[ ]+8330000f[ ]+fence.tso > +#pass > --- /dev/null > +++ b/gas/testsuite/gas/riscv/zbkb-32-na.d > @@ -0,0 +1,23 @@ > +#as: -march=rv32i_zbkb > +#source: zbkb-32.s > +#objdump: -d -Mno-aliases > + > +.*:[ ]+file format .* > + > + > +Disassembly of section .text: > + > +0+000 : > +[ ]+[0-9a-f]+:[ ]+60c5d533[ ]+ror[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+60c59533[ ]+rol[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+6025d513[ ]+rori[ ]+a0,a1,0x2 > +[ ]+[0-9a-f]+:[ ]+40c5f533[ ]+andn[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+40c5e533[ ]+orn[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+40c5c533[ ]+xnor[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+08c5c533[ ]+pack[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+08c5f533[ ]+packh[ ]+a0,a1,a2 > +[ ]+[0-9a-f]+:[ ]+68755513[ ]+brev8[ ]+a0,a0 > +[ ]+[0-9a-f]+:[ ]+69855513[ ]+rev8[ ]+a0,a0 > +[ ]+[0-9a-f]+:[ ]+08f51513[ ]+zip[ ]+a0,a0 > +[ ]+[0-9a-f]+:[ ]+08f55513[ ]+unzip[ ]+a0,a0 > +#pass > --- a/opcodes/riscv-opc.c > +++ b/opcodes/riscv-opc.c > @@ -421,7 +421,7 @@ const struct riscv_opcode riscv_opcodes[ > {"fence", 0, INSN_CLASS_I, "", MATCH_FENCE|MASK_PRED|MASK_SUCC, MASK_FENCE|MASK_RD|MASK_RS1|MASK_IMM, match_opcode, INSN_ALIAS }, > {"fence", 0, INSN_CLASS_I, "P,Q", MATCH_FENCE, MASK_FENCE|MASK_RD|MASK_RS1|(MASK_IMM & ~MASK_PRED & ~MASK_SUCC), match_opcode, 0 }, > {"fence.i", 0, INSN_CLASS_ZIFENCEI, "", MATCH_FENCE_I, MASK_FENCE|MASK_RD|MASK_RS1|MASK_IMM, match_opcode, 0 }, > -{"fence.tso", 0, INSN_CLASS_I, "", MATCH_FENCE_TSO, MASK_FENCE_TSO|MASK_RD|MASK_RS1, match_opcode, INSN_ALIAS }, > +{"fence.tso", 0, INSN_CLASS_I, "", MATCH_FENCE_TSO, MASK_FENCE_TSO|MASK_RD|MASK_RS1, match_opcode, 0 }, > {"rdcycle", 0, INSN_CLASS_I, "d", MATCH_RDCYCLE, MASK_RDCYCLE, match_opcode, INSN_ALIAS }, > {"rdinstret", 0, INSN_CLASS_I, "d", MATCH_RDINSTRET, MASK_RDINSTRET, match_opcode, INSN_ALIAS }, > {"rdtime", 0, INSN_CLASS_I, "d", MATCH_RDTIME, MASK_RDTIME, match_opcode, INSN_ALIAS }, > @@ -942,8 +942,8 @@ const struct riscv_opcode riscv_opcodes[ > {"cpopw", 64, INSN_CLASS_ZBB, "d,s", MATCH_CPOPW, MASK_CPOPW, match_opcode, 0 }, > {"brev8", 32, INSN_CLASS_ZBKB, "d,s", MATCH_GREVI | MATCH_SHAMT_BREV8, MASK_GREVI | MASK_SHAMT, match_opcode, 0 }, > {"brev8", 64, INSN_CLASS_ZBKB, "d,s", MATCH_GREVI | MATCH_SHAMT_BREV8, MASK_GREVI | MASK_SHAMT, match_opcode, 0 }, > -{"zip", 32, INSN_CLASS_ZBKB, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_32, MASK_SHFLI|MASK_SHAMT, match_opcode, INSN_ALIAS }, > -{"unzip", 32, INSN_CLASS_ZBKB, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_ZIP_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, INSN_ALIAS }, > +{"zip", 32, INSN_CLASS_ZBKB, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 }, > +{"unzip", 32, INSN_CLASS_ZBKB, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_ZIP_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 }, > {"pack", 0, INSN_CLASS_ZBKB, "d,s,t", MATCH_PACK, MASK_PACK, match_opcode, 0 }, > {"packh", 0, INSN_CLASS_ZBKB, "d,s,t", MATCH_PACKH, MASK_PACKH, match_opcode, 0 }, > {"packw", 64, INSN_CLASS_ZBKB, "d,s,t", MATCH_PACKW, MASK_PACKW, match_opcode, 0 }, >