From f2897624e20cfc8e89fc30c8e8e1619ebbc1aacf Mon Sep 17 00:00:00 2001 From: Greg McGary Date: Sat, 29 Jul 2000 08:09:30 +0000 Subject: * 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. --- sysdeps/i386/addmul_1.S | 1 - sysdeps/i386/i586/addmul_1.S | 1 - sysdeps/i386/i586/mul_1.S | 12 +++++++++--- sysdeps/i386/i586/submul_1.S | 12 +++++++++--- sysdeps/i386/mul_1.S | 1 - sysdeps/i386/submul_1.S | 1 - 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S index 47c875d26d..2b0e40408c 100644 --- a/sysdeps/i386/addmul_1.S +++ b/sysdeps/i386/addmul_1.S @@ -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 diff --git a/sysdeps/i386/i586/addmul_1.S b/sysdeps/i386/i586/addmul_1.S index 2cc17ddf90..180d728ce5 100644 --- a/sysdeps/i386/i586/addmul_1.S +++ b/sysdeps/i386/i586/addmul_1.S @@ -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 diff --git a/sysdeps/i386/i586/mul_1.S b/sysdeps/i386/i586/mul_1.S index 2d777036ad..8c477e53f2 100644 --- a/sysdeps/i386/i586/mul_1.S +++ b/sysdeps/i386/i586/mul_1.S @@ -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)) diff --git a/sysdeps/i386/i586/submul_1.S b/sysdeps/i386/i586/submul_1.S index d9e197dcc1..0624a7c04b 100644 --- a/sysdeps/i386/i586/submul_1.S +++ b/sysdeps/i386/i586/submul_1.S @@ -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)) diff --git a/sysdeps/i386/mul_1.S b/sysdeps/i386/mul_1.S index 91483eb28e..d673dcf7cd 100644 --- a/sysdeps/i386/mul_1.S +++ b/sysdeps/i386/mul_1.S @@ -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 diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S index 56a015eb4b..ff6920c8f1 100644 --- a/sysdeps/i386/submul_1.S +++ b/sysdeps/i386/submul_1.S @@ -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 -- cgit 1.4.1