about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/mips/memcpy.S2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e2108a98c7..9cb8df3b88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
+            Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/mips/memcpy.S (MEMCPY_NAME) [USE_DOUBLE]: Avoid word
+	load in branch delay slot when less than a word of input left.
+
 2016-01-27  Andreas Schwab  <schwab@suse.de>
 
 	* sysdeps/ieee754/ldbl-128ibm/s_erfl.c (half): Remove.
diff --git a/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
index d79e144731..9b072d7420 100644
--- a/sysdeps/mips/memcpy.S
+++ b/sysdeps/mips/memcpy.S
@@ -565,11 +565,11 @@ L(lastw):
 #ifdef USE_DOUBLE
 	andi    t8,a2,3		/* a2 is the remainder past 4 byte chunks.  */
 	beq	t8,a2,L(lastb)
+	move	a2,t8
 	lw	REG3,0(a1)
 	sw	REG3,0(a0)
 	PTR_ADDIU a0,a0,4
 	PTR_ADDIU a1,a1,4
-	move	a2,t8
 #endif
 
 /* Copy the last 8 (or 16) bytes */