about summary refs log tree commit diff
path: root/sysdeps/powerpc/rshift.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/rshift.S')
-rw-r--r--sysdeps/powerpc/rshift.S11
1 files changed, 9 insertions, 2 deletions
diff --git a/sysdeps/powerpc/rshift.S b/sysdeps/powerpc/rshift.S
index a02fb2555c..944227d244 100644
--- a/sysdeps/powerpc/rshift.S
+++ b/sysdeps/powerpc/rshift.S
@@ -18,6 +18,8 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <sysdep.h>
+#include <bp-sym.h>
+#include <bp-asm.h>
 
 /* INPUT PARAMETERS
    res_ptr	r3
@@ -25,7 +27,12 @@
    size		r5
    cnt		r6  */
 
-ENTRY(__mpn_rshift)
+ENTRY (BP_SYM (__mpn_rshift))
+#if __BOUNDED_POINTERS__
+	slwi r10,r5,2		/* convert limbs to bytes */
+	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+#endif
 	mtctr	r5		# copy size into CTR
 	addi	r7,r3,-4	# move adjusted res_ptr to free return reg
 	subfic	r8,r6,32
@@ -53,4 +60,4 @@ L(1):	srw	r0,r11,r6
 L(2):	srw	r0,r10,r6
 	stw	r0,4(r7)
 	blr
-END(__mpn_rshift)
+END (BP_SYM (__mpn_rshift))