aboutsummaryrefslogtreecommitdiff
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))