linux-mips
[Top] [All Lists]

[PATCH] MIPS: Separate two consecutive loads in memset.S

To: linux-mips@linux-mips.org, ralf@linux-mips.org
Subject: [PATCH] MIPS: Separate two consecutive loads in memset.S
From: Tony Wu <tung7970@gmail.com>
Date: Tue, 9 Nov 2010 15:48:03 +0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=bnt5TvfQOHxa0HWfo/uAGtTvLyFjh+MVqX6p0s1X3GM=; b=eKiRgXaySy2GlgIZDq9OjvendNBUakNrF83T3MmvqnMwO1EUgq+CnGi0JEeU4iHv5/ N7FuBa7ybBWnEB9ZvDS+yXn39p394KikccRp5BqZICD2vSZDdrQO2JGDMPlCRLDI5yQQ 2yzJZ44AFppxnIy+msJ0fNtsb1wnteAP53Qxg=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=EMt1RERH0gU9AedAd1DQhlvLYbg3z6a0GcsqPosBO7fnGwg6LwKDOn9DTabBk4gmsZ 3UMYq9VYxbcFvbREsp8YjGZxbtp/WxK6kA01HDJ47SMk+9RAL1Hcc2QLrrcBTvG90kd/ FV9XczTi33SIHY9yZRub9wZd7E2PIhAuVv+Fo=
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
partial_fixup is used in noreorder block.

Separating two consecutive loads can save one cycle on processors with
GPR intrelock and can fix load-use on processors that need a load delay slot.

Also do so for fwd_fixup.

Signed-off-by: Tony Wu <tung7970@gmail.com>
---
 arch/mips/lib/memset.S |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/mips/lib/memset.S b/arch/mips/lib/memset.S
index 77dc3b2..606c8a9 100644
--- a/arch/mips/lib/memset.S
+++ b/arch/mips/lib/memset.S
@@ -161,16 +161,16 @@ FEXPORT(__bzero)

 .Lfwd_fixup:
        PTR_L           t0, TI_TASK($28)
-       LONG_L          t0, THREAD_BUADDR(t0)
        andi            a2, 0x3f
+      LONG_L          t0, THREAD_BUADDR(t0)
        LONG_ADDU       a2, t1
        jr              ra
         LONG_SUBU      a2, t0

 .Lpartial_fixup:
        PTR_L           t0, TI_TASK($28)
-       LONG_L          t0, THREAD_BUADDR(t0)
        andi            a2, LONGMASK
+      LONG_L          t0, THREAD_BUADDR(t0)
        LONG_ADDU       a2, t1
        jr              ra
         LONG_SUBU      a2, t0
--
1.7.1

<Prev in Thread] Current Thread [Next in Thread>