mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-10 05:03:06 +03:00
* sysdeps/i386/addmul_1.S: s2_limb is scalar so remove bounds check.
* sysdeps/i386/mul_1.S: Likewise. * sysdeps/i386/submul_1.S: Likewise. * sysdeps/i386/i586/addmul_1.S: Likewise. * sysdeps/i386/i586/mul_1.S: Add bounds checks. * sysdeps/i386/i586/submul_1.S: Likewise.
This commit is contained in:
@@ -51,7 +51,6 @@ ENTRY (BP_SYM (__mpn_addmul_1))
|
||||
shll $2, %sizeP /* convert limbs to bytes */
|
||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s2_limb, S2LIMB(%esp), %sizeP)
|
||||
shrl $2, %sizeP
|
||||
#endif
|
||||
leal (%res_ptr,%sizeP,4), %res_ptr
|
||||
|
@@ -51,7 +51,6 @@ ENTRY (BP_SYM (__mpn_addmul_1))
|
||||
shll $2, %size /* convert limbs to bytes */
|
||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s2_limb, S2LIMB(%esp), %size)
|
||||
shrl $2, %size
|
||||
#endif
|
||||
leal (%res_ptr,%size,4), %res_ptr
|
||||
|
@@ -20,6 +20,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 */
|
||||
@@ -34,7 +35,7 @@
|
||||
#define s2_limb ebx
|
||||
|
||||
.text
|
||||
ENTRY(__mpn_mul_1)
|
||||
ENTRY (BP_SYM (__mpn_mul_1))
|
||||
ENTER
|
||||
|
||||
pushl %edi
|
||||
@@ -46,7 +47,12 @@ ENTRY(__mpn_mul_1)
|
||||
movl S1(%esp), %s1_ptr
|
||||
movl SIZE(%esp), %size
|
||||
movl S2LIMB(%esp), %s2_limb
|
||||
|
||||
#if __BOUNDED_POINTERS__
|
||||
shll $2, %size /* convert limbs to bytes */
|
||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
|
||||
shrl $2, %size
|
||||
#endif
|
||||
leal (%res_ptr,%size,4), %res_ptr
|
||||
leal (%s1_ptr,%size,4), %s1_ptr
|
||||
negl %size
|
||||
@@ -76,4 +82,4 @@ L(oop): adcl $0, %ebp
|
||||
LEAVE
|
||||
ret
|
||||
#undef size
|
||||
END(__mpn_mul_1)
|
||||
END (BP_SYM (__mpn_mul_1))
|
||||
|
@@ -20,6 +20,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 */
|
||||
@@ -34,7 +35,7 @@
|
||||
#define s2_limb ebx
|
||||
|
||||
.text
|
||||
ENTRY(__mpn_submul_1)
|
||||
ENTRY (BP_SYM (__mpn_submul_1))
|
||||
ENTER
|
||||
|
||||
pushl %edi
|
||||
@@ -46,7 +47,12 @@ ENTRY(__mpn_submul_1)
|
||||
movl S1(%esp), %s1_ptr
|
||||
movl SIZE(%esp), %size
|
||||
movl S2LIMB(%esp), %s2_limb
|
||||
|
||||
#if __BOUNDED_POINTERS__
|
||||
shll $2, %sizeP /* convert limbs to bytes */
|
||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
|
||||
shrl $2, %sizeP
|
||||
#endif
|
||||
leal (%res_ptr,%size,4), %res_ptr
|
||||
leal (%s1_ptr,%size,4), %s1_ptr
|
||||
negl %size
|
||||
@@ -80,4 +86,4 @@ L(oop): adcl $0, %ebp
|
||||
LEAVE
|
||||
ret
|
||||
#undef size
|
||||
END(__mpn_submul_1)
|
||||
END (BP_SYM (__mpn_submul_1))
|
||||
|
@@ -51,7 +51,6 @@ ENTRY (BP_SYM (__mpn_mul_1))
|
||||
shll $2, %size /* convert limbs to bytes */
|
||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s2_limb, S2LIMB(%esp), %size)
|
||||
shrl $2, %size
|
||||
#endif
|
||||
leal (%res_ptr,%size,4), %res_ptr
|
||||
|
@@ -51,7 +51,6 @@ ENTRY (BP_SYM (__mpn_submul_1))
|
||||
shll $2, %sizeP /* convert limbs to bytes */
|
||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
|
||||
CHECK_BOUNDS_BOTH_WIDE (%s2_limb, S2LIMB(%esp), %sizeP)
|
||||
shrl $2, %sizeP
|
||||
#endif
|
||||
leal (%res_ptr,%sizeP,4), %res_ptr
|
||||
|
Reference in New Issue
Block a user