From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhOJX-0005Nx-2n for qemu-devel@nongnu.org; Wed, 30 Sep 2015 16:49:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhOJS-000439-Vg for qemu-devel@nongnu.org; Wed, 30 Sep 2015 16:49:22 -0400 Received: from mail-pa0-x232.google.com ([2607:f8b0:400e:c03::232]:34142) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhOJS-00042z-QT for qemu-devel@nongnu.org; Wed, 30 Sep 2015 16:49:18 -0400 Received: by padhy16 with SMTP id hy16so50812616pad.1 for ; Wed, 30 Sep 2015 13:49:18 -0700 (PDT) Sender: Richard Henderson References: <1443627027-2193-1-git-send-email-james.hogan@imgtec.com> <1443627027-2193-5-git-send-email-james.hogan@imgtec.com> From: Richard Henderson Message-ID: <560C4AC7.5010107@twiddle.net> Date: Thu, 1 Oct 2015 06:49:11 +1000 MIME-Version: 1.0 In-Reply-To: <1443627027-2193-5-git-send-email-james.hogan@imgtec.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 4/7] tcg/mips: Support r6 JR encoding List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: James Hogan , qemu-devel@nongnu.org Cc: Leon Alrae , Aurelien Jarno On 10/01/2015 01:30 AM, James Hogan wrote: > MIPSr6 encodes JR as JALR with zero as the link register, and the pre-r6 > JR encoding is removed. Update TCG to use the new encoding when built > for r6. > > We still use the old encoding for pre-r6, so as not to confuse return > prediction stack hardware which may detect only particular encodings of > the return instruction. > > Signed-off-by: James Hogan > Cc: Richard Henderson > Cc: Aurelien Jarno > --- > tcg/mips/tcg-target.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c > index 4305af967326..0a16140b1cdb 100644 > --- a/tcg/mips/tcg-target.c > +++ b/tcg/mips/tcg-target.c > @@ -288,7 +288,7 @@ typedef enum { > OPC_SRLV = OPC_SPECIAL | 0x06, > OPC_ROTRV = OPC_SPECIAL | (0x01 << 6) | 0x06, > OPC_SRAV = OPC_SPECIAL | 0x07, > - OPC_JR = OPC_SPECIAL | 0x08, > + OPC_JR_R5 = OPC_SPECIAL | 0x08, > OPC_JALR = OPC_SPECIAL | 0x09, > OPC_MOVZ = OPC_SPECIAL | 0x0A, > OPC_MOVN = OPC_SPECIAL | 0x0B, > @@ -322,6 +322,9 @@ typedef enum { > OPC_SEH = OPC_SPECIAL3 | 0x620, > } MIPSInsn; > > +/* MIPS r6 doesn't have JR, JALR should be used instead */ > +#define OPC_JR (use_mips32r6_instructions ? OPC_JALR : OPC_JR_R5) This could be done in the enum instead of a define, but otherwise, Reviewed-by: Richard Henderson r~