aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/i586/lshift.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/i586/lshift.S')
-rw-r--r--sysdeps/i386/i586/lshift.S11
1 files changed, 9 insertions, 2 deletions
diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S
index 2a44150377..5d753b0bb3 100644
--- a/sysdeps/i386/i586/lshift.S
+++ b/sysdeps/i386/i586/lshift.S
@@ -19,6 +19,7 @@
#include "sysdep.h"
#include "asm-syntax.h"
+#include "bp-sym.h"
#include "bp-asm.h"
#define PARMS LINKAGE+16 /* space for 4 saved regs */
@@ -28,7 +29,7 @@
#define CNT SIZE+4
.text
-ENTRY(__mpn_lshift)
+ENTRY (BP_SYM (__mpn_lshift))
ENTER
pushl %edi
@@ -40,6 +41,12 @@ ENTRY(__mpn_lshift)
movl S(%esp),%esi
movl SIZE(%esp),%ebx
movl CNT(%esp),%ecx
+#if __BOUNDED_POINTERS__
+ shll $2, %ebx /* convert limbs to bytes */
+ CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ebx)
+ CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %ebx)
+ shrl $2, %ebx
+#endif
/* We can use faster code for shift-by-1 under certain conditions. */
cmp $1,%ecx
@@ -222,4 +229,4 @@ L(L1): movl %edx,(%edi) /* store last limb */
LEAVE
ret
-END(__mpn_lshift)
+END (BP_SYM (__mpn_lshift))