diff options
author | Roland McGrath <roland@gnu.org> | 1995-12-04 18:37:56 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-12-04 18:37:56 +0000 |
commit | ba848785bb048e7700555ef97c9d1fd3911a3da3 (patch) | |
tree | 646ee57c65b8d2231e235caa069d7fea634e8b64 /sysdeps/i386 | |
parent | c13a4f3dbd44ff03d85ad1ac35cca38c3f35d33c (diff) | |
download | glibc-ba848785bb048e7700555ef97c9d1fd3911a3da3.tar glibc-ba848785bb048e7700555ef97c9d1fd3911a3da3.tar.gz glibc-ba848785bb048e7700555ef97c9d1fd3911a3da3.tar.bz2 glibc-ba848785bb048e7700555ef97c9d1fd3911a3da3.zip |
Updated from ../=mpn/gmp-1.910
Diffstat (limited to 'sysdeps/i386')
-rw-r--r-- | sysdeps/i386/i586/lshift.S | 11 | ||||
-rw-r--r-- | sysdeps/i386/i586/rshift.S | 11 |
2 files changed, 14 insertions, 8 deletions
diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S index b9f8131297..c41f74e17d 100644 --- a/sysdeps/i386/i586/lshift.S +++ b/sysdeps/i386/i586/lshift.S @@ -43,12 +43,15 @@ C_SYMBOL_NAME(__mpn_lshift:) movl 28(%esp),%ebp /* size */ movl 32(%esp),%ecx /* cnt */ +/* We can use faster code for shift-by-1 under certain conditions. */ cmp $1,%ecx jne Lnormal - movl %edi,%eax - subl %esi,%eax - cmpl %ebp,%eax - jnc Lspecial + leal 4(%esi),%eax + cmpl %edi,%eax + jnc Lspecial /* jump if s_ptr + 1 >= res_ptr */ + leal (%esi,%ebp,4),%eax + cmpl %eax,%edi + jnc Lspecial /* jump if res_ptr >= s_ptr + size */ Lnormal: leal -4(%edi,%ebp,4),%edi diff --git a/sysdeps/i386/i586/rshift.S b/sysdeps/i386/i586/rshift.S index 51cde8f07f..a820a79bc7 100644 --- a/sysdeps/i386/i586/rshift.S +++ b/sysdeps/i386/i586/rshift.S @@ -43,12 +43,15 @@ C_SYMBOL_NAME(__mpn_rshift:) movl 28(%esp),%ebp /* size */ movl 32(%esp),%ecx /* cnt */ +/* We can use faster code for shift-by-1 under certain conditions. */ cmp $1,%ecx jne Lnormal - movl %edi,%eax - subl %esi,%eax - cmpl %ebp,%eax - jnc Lspecial + leal 4(%edi),%eax + cmpl %esi,%eax + jnc Lspecial /* jump if res_ptr + 1 >= s_ptr */ + leal (%edi,%ebp,4),%eax + cmpl %eax,%esi + jnc Lspecial /* jump if s_ptr >= res_ptr + size */ Lnormal: movl (%esi),%edx |