From owner-freebsd-ppc@freebsd.org Mon May 6 20:52:51 2019 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7763815959EF for ; Mon, 6 May 2019 20:52:51 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic312-24.consmr.mail.gq1.yahoo.com (sonic312-24.consmr.mail.gq1.yahoo.com [98.137.69.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9F67F89AE8 for ; Mon, 6 May 2019 20:52:49 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: hC7si9wVM1mE08lUY0kZzuJKkWNvDntl0lpNOFj90L3c6UMwdvUDxKxezm3E9PF ttHVd4llwPxQFJHfZBIKtKs40Ayo_7V1hAJXLAgmH7qpGgXLInNoWNmUqQJ.loeHmYef2RcmOBND 5AtruuZGcf48rlDNlF7vsSAiDB3v44mkTSKAY0uGmyahBFWFYR5OrUjVMiug6CRT3gF3skDp.BV. YiIFVGVDjTBTBktXWKTW9lAre_MoOWNJLgpzEFKxYI0dpkb7snedBgrcV1l1ke8ZgFt1e8ba83w6 AbQmWA2e8d0kaQEm89UOAkpSZDAtrN5Fmq4mrlwFnXGLE0Cu0wxL2bwd_Lf7QXI.jiLh9moXPEYB Ji7R9ymPQ38gvuRCuBx8lHIudlvxBOIw6hBrBNiSr7ME.n6F4gG1d5SjzsAkShbOl6Yl9pCPXE8r qGhD2sbj6Y_zDwR7FtlFIBz10RM_DihVPiCtxf3VGHRM8xoamYVoNqi4FjUtUI5qm8Heb8314aM7 KemnY3doYhSLHN_.RpDubnHAakvcJOgqsMIz8cqK.VWTd3OorXFJFR1RQwP.e7NT8AwWtxdx7_A2 Eby4DGsGdCa0mwNL1pAnWJSw9XhMBtBNgR6W_7NksFhqHQZ65McvYAQHajB4yJKzgOoiJPFq4gns RXw9i_0Wr9Hh1y4DSL7UrIrwIVy._wL7D9DGnP4qhzOCpQgjq29.l3Z9rYm56PoloS0BJ0Qq9cLA 4XxnbEuImpfaj2QuFDgqsadR.4yEA3RYam.hTd0I1sb8XWnR5M7w8CDVh8BFmOAzxB6S.GoRbNiS rOyQAGdGT9Oa5u2MQ1ZPkvu46D_sX8Rx_maYh_T7Y8zYj2B2czcZBhwzIhS0NWsjDlif51Z8Gh9u raglZfbYBtYsDT8MUiwwabnF2rRYesqnpmh94o4LMLAE5SRc.8k5O2Hm9bFNhN_NjhvzfcAex5ya XGJX8G9ZTg47r.7Hgj80xLGzz5pxi1S62C5SO4uCM3hGo94T2ix.ytzGtPDQEw.DJ0_V3.PJKpDJ 1POMlT1OD5p4uKVAEcEz5BLGdK.AWCl8CelewCTP6.UtW1a4HkuVCvZx_9ngmvWvGz2CEzTclwVl 4Rg3qapa3vnjS465U8a2xi4iODHnUCJXrWna8fgbD7mf0kBx1_NSHwDWvlPGr9vs5vilpEn.ykfK Eug-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.gq1.yahoo.com with HTTP; Mon, 6 May 2019 20:52:46 +0000 Received: from c-76-115-7-162.hsd1.or.comcast.net (EHLO [192.168.1.103]) ([76.115.7.162]) by smtp412.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 83df02f7e2531a52278f1c028426c791; Mon, 06 May 2019 20:42:36 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Subject: powerpc64: kern_slbtrap double mtlr, one from (PC_SLBSAVE+120)(%r1) and one from (PC_SLBSAVE+136)(%r1)? Message-Id: Date: Mon, 6 May 2019 13:42:35 -0700 To: Justin Hibbits , FreeBSD PowerPC ML X-Mailer: Apple Mail (2.3445.104.8) X-Rspamd-Queue-Id: 9F67F89AE8 X-Spamd-Bar: ++++ X-Spamd-Result: default: False [4.89 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[yahoo.com]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MX_GOOD(-0.01)[cached: mta6.am0.yahoodns.net]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; SUBJECT_ENDS_QUESTION(1.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; NEURAL_SPAM_SHORT(0.50)[0.504,0]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; NEURAL_SPAM_MEDIUM(0.90)[0.901,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_LONG(0.98)[0.979,0]; RCVD_IN_DNSWL_NONE(0.00)[205.69.137.98.list.dnswl.org : 127.0.5.0]; IP_SCORE(2.01)[ip: (8.56), ipnet: 98.137.64.0/21(0.87), asn: 36647(0.69), country: US(-0.06)] X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 May 2019 20:52:51 -0000 kern_slbtrap has . . . (I have capitalized to make specific MFLR, MTLR, LD, and STD and related register usage stand out. Also note PC_SLBSAVE+136 and PC_SLBSAVE+120 usage.) CNAME(slbtrap): . . . 2: MFLR %R2 /* Save the old LR in r2 */ nop bl 3f /* Begin dance to jump to = kern_slbtrap*/ .llong kern_slbtrap 3: mflr %r1 ld %r1,0(%r1) mtlr %r1 GET_CPUINFO(%r1) blrl /* 124 bytes -- 4 to spare */ CNAME(slbtrapend): kern_slbtrap: STD %R2,(PC_SLBSAVE+136)(%R1) /* old LR */ . . . 3: /* Real kernel SLB miss */ . . . mfxer %r2 /* save XER */ std %r2,(PC_SLBSAVE+112)(%r1) MFLR %R2 /* save LR (SP already saved) */ STD %R2,(PC_SLBSAVE+120)(%R1) . . . LD %R2,(PC_SLBSAVE+120)(%R1) MTLR %R2 ld %r2,(PC_SLBSAVE+128)(%r1) mtctr %r2 LD %R2,(PC_SLBSAVE+136)(%R1) MTLR %R2 /* Restore r0-r3 */ It appears that PC_SLBSAVE+120(%r1) is being used to save and restore an "internal" lr value, despite overall being replaced before lr is used. If I gather right, the ld from PC_SLBSAVE+120(%r1) is effectively unneeded. May be the store to PC_SLBSAVE+120(%r1) serves for being able to see the value in a standard place, but my guess would be that it is also unneeded in the above code. Similarly for the matching mtlr and mflr. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)