[BACK]Return to asmiw.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / asm

Diff for /OpenXM_contrib2/asir2000/asm/asmiw.c between version 1.1 and 1.4

version 1.1, 1999/12/03 07:39:06 version 1.4, 2018/03/29 01:32:50
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/asir99/asm/asmiw.c,v 1.1.1.1 1999/11/10 08:12:25 noro Exp $ */  /*
    * Copyright (c) 1994-2000 FUJITSU LABORATORIES LIMITED
    * All rights reserved.
    *
    * FUJITSU LABORATORIES LIMITED ("FLL") hereby grants you a limited,
    * non-exclusive and royalty-free license to use, copy, modify and
    * redistribute, solely for non-commercial and non-profit purposes, the
    * computer program, "Risa/Asir" ("SOFTWARE"), subject to the terms and
    * conditions of this Agreement. For the avoidance of doubt, you acquire
    * only a limited right to use the SOFTWARE hereunder, and FLL or any
    * third party developer retains all rights, including but not limited to
    * copyrights, in and to the SOFTWARE.
    *
    * (1) FLL does not grant you a license in any way for commercial
    * purposes. You may use the SOFTWARE only for non-commercial and
    * non-profit purposes only, such as academic, research and internal
    * business use.
    * (2) The SOFTWARE is protected by the Copyright Law of Japan and
    * international copyright treaties. If you make copies of the SOFTWARE,
    * with or without modification, as permitted hereunder, you shall affix
    * to all such copies of the SOFTWARE the above copyright notice.
    * (3) An explicit reference to this SOFTWARE and its copyright owner
    * shall be made on your publication or presentation in any form of the
    * results obtained by use of the SOFTWARE.
    * (4) In the event that you modify the SOFTWARE, you shall notify FLL by
    * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification
    * for such modification or the source code of the modified part of the
    * SOFTWARE.
    *
    * THE SOFTWARE IS PROVIDED AS IS WITHOUT ANY WARRANTY OF ANY KIND. FLL
    * MAKES ABSOLUTELY NO WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY, AND
    * EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS
    * FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF THIRD PARTIES'
    * RIGHTS. NO FLL DEALER, AGENT, EMPLOYEES IS AUTHORIZED TO MAKE ANY
    * MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS WARRANTY.
    * UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT,
    * OR OTHERWISE, SHALL FLL BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY
    * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL
    * DAMAGES OF ANY CHARACTER, INCLUDING, WITHOUT LIMITATION, DAMAGES
    * ARISING OUT OF OR RELATING TO THE SOFTWARE OR THIS AGREEMENT, DAMAGES
    * FOR LOSS OF GOODWILL, WORK STOPPAGE, OR LOSS OF DATA, OR FOR ANY
    * DAMAGES, EVEN IF FLL SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
    * SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. EVEN IF A PART
    * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
    * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
    * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
    *
    * $OpenXM: OpenXM_contrib2/asir2000/asm/asmiw.c,v 1.3 2000/08/22 05:03:54 noro Exp $
   */
 unsigned int dm(a1,a2,u)  unsigned int dm(a1,a2,u)
 unsigned int a1,a2,*u;  unsigned int a1,a2,*u;
 {  {
         __asm    __asm
         {    {
         mov             eax,a1    mov    eax,a1
         mul             a2    mul    a2
         mov     ebx,u    mov   ebx,u
         mov     DWORD PTR [ebx],edx    mov   DWORD PTR [ebx],edx
         }    }
 }  }
   
 unsigned int dma(a1,a2,a3,u)  unsigned int dma(a1,a2,a3,u)
 unsigned int a1,a2,a3,*u;  unsigned int a1,a2,a3,*u;
 {  {
         __asm    __asm
         {    {
         mov             eax,a1    mov    eax,a1
         mul             a2    mul    a2
         add             eax,a3    add    eax,a3
         adc             edx,0    adc    edx,0
         mov     ebx,u    mov   ebx,u
         mov     DWORD PTR [ebx],edx    mov   DWORD PTR [ebx],edx
         }    }
 }  }
   
 unsigned int dma2(a1,a2,a3,a4,u)  unsigned int dma2(a1,a2,a3,a4,u)
 unsigned int a1,a2,a3,a4,*u;  unsigned int a1,a2,a3,a4,*u;
 {  {
         __asm    __asm
         {    {
         mov             eax,a1    mov    eax,a1
         mul             a2    mul    a2
         add             eax,a3    add    eax,a3
         adc             edx,0    adc    edx,0
         add             eax,a4    add    eax,a4
         adc             edx,0    adc    edx,0
         mov     ebx,u    mov   ebx,u
         mov     DWORD PTR [ebx],edx    mov   DWORD PTR [ebx],edx
         }    }
 }  }
   
 unsigned int dmb(base,a1,a2,u)  unsigned int dmb(base,a1,a2,u)
 unsigned int base,a1,a2,*u;  unsigned int base,a1,a2,*u;
 {  {
         __asm    __asm
         {    {
         mov             eax,a1    mov    eax,a1
         mul             a2    mul    a2
         div             base    div    base
         mov     ebx,u    mov   ebx,u
         mov     DWORD PTR [ebx],eax    mov   DWORD PTR [ebx],eax
         mov     eax,edx    mov   eax,edx
         }    }
 }  }
   
 unsigned int dmab(base,a1,a2,a3,u)  unsigned int dmab(base,a1,a2,a3,u)
 unsigned int base,a1,a2,a3,*u;  unsigned int base,a1,a2,a3,*u;
 {  {
         __asm    __asm
         {    {
         mov             eax,a1    mov    eax,a1
         mul             a2    mul    a2
         add             eax,a3    add    eax,a3
         adc             edx,0    adc    edx,0
         div             base    div    base
         mov     ebx,u    mov   ebx,u
         mov     DWORD PTR [ebx],eax    mov   DWORD PTR [ebx],eax
         mov     eax,edx    mov   eax,edx
         }    }
 }  }
   
 unsigned int dsab(base,a1,a2,u)  unsigned int dsab(base,a1,a2,u)
 unsigned int base,a1,a2,*u;  unsigned int base,a1,a2,*u;
 {  {
         __asm    __asm
         {    {
         mov             edx,a1    mov    edx,a1
         mov             eax,a2    mov    eax,a2
         div             base    div    base
         mov     ebx,u    mov   ebx,u
         mov     DWORD PTR [ebx],eax    mov   DWORD PTR [ebx],eax
         mov     eax,edx    mov   eax,edx
         }    }
 }  }
   
 unsigned int dmar(a1,a2,a3,d)  unsigned int dmar(a1,a2,a3,d)
 unsigned int a1,a2,a3,d;  unsigned int a1,a2,a3,d;
 {  {
         __asm    __asm
         {    {
         mov             eax,a1    mov    eax,a1
         mul             a2    mul    a2
         add             eax,a3    add    eax,a3
         adc             edx,0    adc    edx,0
         div             d    div    d
         mov     eax,edx    mov   eax,edx
         }    }
 }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>