> -----Original Message----- > From: jailhouse-...@googlegroups.com > [mailto:jailhouse-...@googlegroups.com] On Behalf Of Segher Boessenkool > Sent: 2019年2月13日 17:11 > To: Peng Fan <peng....@nxp.com> > Cc: gcc@gcc.gnu.org; james.greenha...@arm.com; n...@arm.com; > jailhouse-...@googlegroups.com; will.dea...@arm.com; Catalin Marinas > <catalin.mari...@arm.com> > Subject: Re: Warning: unpredictable: identical transfer and status registers > --`stxr w4,x5,[x4] using aarch64 poky gcc 8.3 > > OneWed, Feb 13, 2019 at 07:13:21AM +0000, Peng Fan wrote: > > We met an issue when building a piece jailhouse hypervisor code, > "stxr %w0, %3, %2\n\t" is > > compiled as "stxr w4,x5,[x4]" which triggers the warning > > "Warning: unpredictable: identical transfer and status registers" > > This is not a GCC question. > > The three registers, in order, are status, transfer, and base. The warning > claims transfer and status are identical, but in fact base and status are. > The code (in binutils, gas/config/tc-aarch64.c) is > > case ldstexcl: > /* It is unpredictable if the destination and status registers are the > same. */ > if ((aarch64_get_operand_class (opnds[0].type) > == AARCH64_OPND_CLASS_INT_REG) > && (aarch64_get_operand_class (opnds[1].type) > == AARCH64_OPND_CLASS_INT_REG) > && (opnds[0].reg.regno == opnds[1].reg.regno > || opnds[0].reg.regno == opnds[2].reg.regno)) > as_warn (_("unpredictable: identical transfer and status registers" > " --`%s'"), > str); > > so either that op0 == op2 test is spurious, or the warning message is > misleading.
From aarch64 spec, "stxr w4,x5,[x4]"'s behavior is chip implementation defined, so I think the warning is correct. > > Please ask on binut...@sourceware.org and/or file a bug at > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsour > ceware.org%2Fbugzilla%2F&data=02%7C01%7Cpeng.fan%40nxp.com% > 7C2463376de5aa417d3d6508d69197e4df%7C686ea1d3bc2b4c6fa92cd99c5c > 301635%7C0%7C0%7C636856478900947075&sdata=pg%2FZmo91Cxfji > ESlBiR5shmsdxoYWslpfZeAXk5TV30%3D&reserved=0 ? Ok. I'll post questions to binut...@sourceware.org Thanks, Peng. > > > Segher > > -- > You received this message because you are subscribed to the Google Groups > "Jailhouse" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jailhouse-dev+unsubscr...@googlegroups.com. > For more options, visit > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgrou > ps.google.com%2Fd%2Foptout&data=02%7C01%7Cpeng.fan%40nxp.co > m%7C2463376de5aa417d3d6508d69197e4df%7C686ea1d3bc2b4c6fa92cd9 > 9c5c301635%7C0%7C0%7C636856478900947075&sdata=oiNHshxQvku > OjuTiRKlK%2F3em5DIGNysm1UbZZKuHcjg%3D&reserved=0.