Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  round_Xsig.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0 */
/*---------------------------------------------------------------------------+
 |  round_Xsig.S                                                             |
 |                                                                           |
 | Copyright (C) 1992,1993,1994,1995                                         |
 |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
 |                       Australia.  E-mail billm@jacobi.maths.monash.edu.au |
 |                                                                           |
 | Normalize and round a 12 byte quantity.                                   |
 | Call from C as:                                                           |
 |   int round_Xsig(Xsig *n)                                                 |
 |                                                                           |
 | Normalize a 12 byte quantity.                                             |
 | Call from C as:                                                           |
 |   int norm_Xsig(Xsig *n)                                                  |
 |                                                                           |
 | Each function returns the size of the shift (nr of bits).                 |
 |                                                                           |
 +---------------------------------------------------------------------------*/

 .file "round_Xsig.S"

#include "fpu_emu.h"


.text
SYM_FUNC_START(round_Xsig)
 pushl %ebp
 movl %esp,%ebp
 pushl %ebx  /* Reserve some space */
 pushl %ebx
 pushl %esi

 movl PARAM1,%esi

 movl 8(%esi),%edx
 movl 4(%esi),%ebx
 movl (%esi),%eax

 movl $0,-4(%ebp)

 orl %edx,%edx /* ms bits */
 js L_round  /* Already normalized */
 jnz L_shift_1 /* Shift left 1 - 31 bits */

 movl %ebx,%edx
 movl %eax,%ebx
 xorl %eax,%eax
 movl $-32,-4(%ebp)

/* We need to shift left by 1 - 31 bits */
L_shift_1:
 bsrl %edx,%ecx /* get the required shift in %ecx */
 subl $31,%ecx
 negl %ecx
 subl %ecx,-4(%ebp)
 shld %cl,%ebx,%edx
 shld %cl,%eax,%ebx
 shl %cl,%eax

L_round:
 testl $0x80000000,%eax
 jz L_exit

 addl $1,%ebx
 adcl $0,%edx
 jnz L_exit

 movl $0x80000000,%edx
 incl -4(%ebp)

L_exit:
 movl %edx,8(%esi)
 movl %ebx,4(%esi)
 movl %eax,(%esi)

 movl -4(%ebp),%eax

 popl %esi
 popl %ebx
 leave
 RET
SYM_FUNC_END(round_Xsig)



SYM_FUNC_START(norm_Xsig)
 pushl %ebp
 movl %esp,%ebp
 pushl %ebx  /* Reserve some space */
 pushl %ebx
 pushl %esi

 movl PARAM1,%esi

 movl 8(%esi),%edx
 movl 4(%esi),%ebx
 movl (%esi),%eax

 movl $0,-4(%ebp)

 orl %edx,%edx /* ms bits */
 js L_n_exit  /* Already normalized */
 jnz L_n_shift_1 /* Shift left 1 - 31 bits */

 movl %ebx,%edx
 movl %eax,%ebx
 xorl %eax,%eax
 movl $-32,-4(%ebp)

 orl %edx,%edx /* ms bits */
 js L_n_exit /* Normalized now */
 jnz L_n_shift_1 /* Shift left 1 - 31 bits */

 movl %ebx,%edx
 movl %eax,%ebx
 xorl %eax,%eax
 addl $-32,-4(%ebp)
 jmp L_n_exit /* Might not be normalized,
                           but shift no more. */


/* We need to shift left by 1 - 31 bits */
L_n_shift_1:
 bsrl %edx,%ecx /* get the required shift in %ecx */
 subl $31,%ecx
 negl %ecx
 subl %ecx,-4(%ebp)
 shld %cl,%ebx,%edx
 shld %cl,%eax,%ebx
 shl %cl,%eax

L_n_exit:
 movl %edx,8(%esi)
 movl %ebx,4(%esi)
 movl %eax,(%esi)

 movl -4(%ebp),%eax

 popl %esi
 popl %ebx
 leave
 RET
SYM_FUNC_END(norm_Xsig)

Messung V0.5
C=86 H=97 G=91

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge