tlibmp: no text jump labels for darwin - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 88cf5927234499472ad3910aff63803f85fba40b
 (DIR) parent 50808670fce561a500eb46267f7da10bddad3524
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Mon,  5 Nov 2007 12:27:49 -0500
       
       libmp: no text jump labels for darwin
       
       Diffstat:
         M src/libmp/386/mpdigdiv-Darwin.s     |      12 ++++++------
         M src/libmp/386/mpvecadd-Darwin.s     |      28 ++++++++++++++--------------
         M src/libmp/386/mpvecdigmuladd-Darwi… |      13 ++++++-------
         M src/libmp/386/mpvecdigmulsub-Darwi… |      21 ++++++++++-----------
         M src/libmp/386/mpvecsub-Darwin.s     |      18 +++++++++---------
       
       5 files changed, 45 insertions(+), 47 deletions(-)
       ---
 (DIR) diff --git a/src/libmp/386/mpdigdiv-Darwin.s b/src/libmp/386/mpdigdiv-Darwin.s
       t@@ -1,5 +1,5 @@
        .text
       -.p2align 2,0x90
       +
        .globl _mpdigdiv
        _mpdigdiv:
                /* Prelude */
       t@@ -15,19 +15,19 @@ _mpdigdiv:
        
                xorl        %ecx, %ecx
                cmpl        %ebx, %edx                /* dividend >= 2^32 * divisor */
       -        jae        divovfl
       +        jae        2f
                cmpl        %ecx, %ebx                /* divisor == 1 */
       -        je        divovfl
       +        je        2f
                divl        %ebx                /* AX = DX:AX/BX */
                movl        %eax, (%ebp)
       -done:
       +1:
                /* Postlude */
                popl %ebx
                popl %ebp
                ret
        
                /* return all 1's */
       -divovfl:
       +2:
                notl        %ecx
                movl        %ecx, (%ebp)
       -        jmp done
       +        jmp 1b
 (DIR) diff --git a/src/libmp/386/mpvecadd-Darwin.s b/src/libmp/386/mpvecadd-Darwin.s
       t@@ -26,42 +26,42 @@ _mpvecadd:
        
                /* skip addition if b is zero */
                testl        %ecx,%ecx
       -        je        _add1
       +        je        2f
        
                /* sum[0:blen-1],carry = a[0:blen-1] + b[0:blen-1] */
       -_addloop1:
       +1:
                movl        (%esi, %ebp, 4), %eax
                adcl        (%ebx, %ebp, 4), %eax
                movl        %eax, (%edi, %ebp, 4)
                incl        %ebp
       -        loop        _addloop1
       +        loop        1b
        
       -_add1:
       +2:
                /* jump if alen > blen */
                incl        %edx
                movl        %edx, %ecx
       -        loop        _addloop2
       +        loop        5f
        
                /* sum[alen] = carry */
       -_addend:
       -        jb        _addcarry
       +3:
       +        jb        4f
                movl        $0, (%edi, %ebp, 4)
       -        jmp done
       +        jmp 6f
        
       -_addcarry:
       +4:
                movl        $1, (%edi, %ebp, 4)
       -        jmp done
       +        jmp 6f
        
                /* sum[blen:alen-1],carry = a[blen:alen-1] + 0 */
       -_addloop2:
       +5:
                movl        (%esi, %ebp, 4),%eax
                adcl        $0, %eax
                movl        %eax, (%edi, %ebp, 4)
                incl        %ebp
       -        loop        _addloop2
       -        jmp        _addend
       +        loop        5b
       +        jmp        3b
        
       -done:
       +6:
                /* Postlude */
                popl %edi
                popl %esi
 (DIR) diff --git a/src/libmp/386/mpvecdigmuladd-Darwin.s b/src/libmp/386/mpvecdigmuladd-Darwin.s
       t@@ -22,7 +22,6 @@
         */
        .text
        
       -.p2align 2,0x90
        .globl _mpvecdigmuladd
        _mpvecdigmuladd:
                /* Prelude */
       t@@ -42,20 +41,20 @@ _mpvecdigmuladd:
                addl        %ecx, %esi                /* SI = b + n */
                addl        %ecx, %edi                /* DI = p + n */
                xorl        %ecx, %ecx
       -_muladdloop:
       +1:
                movl        (%esi, %ebp, 4), %eax        /* lo = b[i] */
                mull        %ebx                        /* hi, lo = b[i] * m */
                addl        %ecx,%eax                /* lo += oldhi */
       -        jae        _muladdnocarry1
       +        jae        2f
                incl        %edx                        /* hi += carry */
       -_muladdnocarry1:
       +2:
                addl        %eax, (%edi, %ebp, 4)        /* p[i] += lo */
       -        jae        _muladdnocarry2
       +        jae        3f
                incl        %edx                        /* hi += carry */
       -_muladdnocarry2:
       +3:
                movl        %edx, %ecx                /* oldhi = hi */
                incl        %ebp                        /* i++ */
       -        jnz        _muladdloop
       +        jnz        1b
                xorl        %eax, %eax
                addl        %ecx, (%edi, %ebp, 4)        /* p[n] + oldhi */
                adcl        %eax, %eax                /* return carry out of p[n] */
 (DIR) diff --git a/src/libmp/386/mpvecdigmulsub-Darwin.s b/src/libmp/386/mpvecdigmulsub-Darwin.s
       t@@ -23,7 +23,6 @@
         */
        .text
        
       -.p2align 2,0x90
        .globl _mpvecdigmulsub
        _mpvecdigmulsub:
                /* Prelude */
       t@@ -39,28 +38,28 @@ _mpvecdigmulsub:
                movl        12(%ebp), %edi                /* p */
                xorl        %ebp, %ebp
                pushl %ebp
       -_mulsubloop:
       +1:
                movl        (%esi, %ebp, 4),%eax        /* lo = b[i] */
                mull        %ebx                        /* hi, lo = b[i] * m */
                addl        0(%esp), %eax                /* lo += oldhi */
       -        jae        _mulsubnocarry1
       +        jae        2f
                incl        %edx                        /* hi += carry */
       -_mulsubnocarry1:
       +2:
                subl        %eax, (%edi, %ebp, 4)
       -        jae        _mulsubnocarry2
       +        jae        3f
                incl        %edx                        /* hi += carry */
       -_mulsubnocarry2:
       +3:
                movl        %edx, 0(%esp)
                incl        %ebp
       -        loop        _mulsubloop
       +        loop        1b
                popl %eax
                subl        %eax, (%edi, %ebp, 4)
       -        jae        _mulsubnocarry3
       +        jae        4f
                movl        $-1, %eax
       -        jmp done
       -_mulsubnocarry3:
       +        jmp 5f
       +4:
                movl        $1, %eax
       -done:
       +5:
                /* Postlude */
                popl %edi
                popl %esi
 (DIR) diff --git a/src/libmp/386/mpvecsub-Darwin.s b/src/libmp/386/mpvecsub-Darwin.s
       t@@ -26,31 +26,31 @@ _mpvecsub:
        
                /* skip subraction if b is zero */
                testl        %ecx,%ecx
       -        jz        _sub1
       +        jz        2f
        
                /* diff[0:blen-1],borrow = a[0:blen-1] - b[0:blen-1] */
       -_subloop1:
       +1:
                movl        (%esi, %ebp, 4), %eax
                sbbl        (%ebx, %ebp, 4), %eax
                movl        %eax, (%edi, %ebp, 4)
                incl        %ebp
       -        loop        _subloop1
       +        loop        1b
        
       -_sub1:
       +2:
                incl        %edx
                movl        %edx,%ecx
       -        loop        _subloop2
       -        jmp done
       +        loop        3f
       +        jmp 4f
        
                /* diff[blen:alen-1] = a[blen:alen-1] - 0 */
       -_subloop2:
       +3:
                movl        (%esi, %ebp, 4), %eax
                sbbl        $0, %eax
                movl        %eax, (%edi, %ebp, 4)
                incl        %ebp
       -        loop        _subloop2
       +        loop        3b
        
       -done:
       +4:
                /* Postlude */
                popl %edi
                popl %esi