Annotation of Gnu-Mach/i386/pc/i16/i16_real_int.S, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Copyright (c) 1995-1994 The University of Utah and
                      3:  * the Computer Systems Laboratory at the University of Utah (CSL).
                      4:  * All rights reserved.
                      5:  *
                      6:  * Permission to use, copy, modify and distribute this software is hereby
                      7:  * granted provided that (1) source code retains these copyright, permission,
                      8:  * and disclaimer notices, and (2) redistributions including binaries
                      9:  * reproduce the notices in supporting documentation, and (3) all advertising
                     10:  * materials mentioning features or use of this software display the following
                     11:  * acknowledgement: ``This product includes software developed by the
                     12:  * Computer Systems Laboratory at the University of Utah.''
                     13:  *
                     14:  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
                     15:  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
                     16:  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     17:  *
                     18:  * CSL requests users of this software to return to [email protected] any
                     19:  * improvements that they make and grant CSL redistribution rights.
                     20:  *
                     21:  *      Author: Bryan Ford, University of Utah CSL
                     22:  */
                     23: 
                     24: #include <mach/machine/asm.h>
                     25: 
                     26: #include "pc_asm.h"
                     27: 
                     28:        .text
                     29:        .code16
                     30: 
                     31: ENTRY(i16_real_int)
                     32:        pushf
                     33:        pushl   %ebx
                     34:        pushl   %esi
                     35:        pushl   %edi
                     36:        pushl   %ebp
                     37: 
                     38:        cli
                     39: 
                     40:        movl    6*4(%esp),%eax
                     41:        movb    %al,1f+1
                     42: 
                     43:        movl    7*4(%esp),%ebp
                     44:        movl    RCD_EAX(%ebp),%eax
                     45:        movl    RCD_EBX(%ebp),%ebx
                     46:        movl    RCD_ECX(%ebp),%ecx
                     47:        movl    RCD_EDX(%ebp),%edx
                     48:        movl    RCD_ESI(%ebp),%esi
                     49:        movl    RCD_EDI(%ebp),%edi
                     50:        movw    RCD_DS(%ebp),%ds
                     51:        movw    RCD_ES(%ebp),%es
                     52:        /* XXX flags */
                     53:        movl    RCD_EBP(%ebp),%ebp
                     54: 
                     55: 1:     int     $0
                     56: 
                     57:        pushl   %ebp
                     58:        movl    8*4(%esp),%ebp
                     59:        popl    RCD_EBP(%ebp)
                     60: 
                     61:        movl    %eax,RCD_EAX(%ebp)
                     62:        movl    %ebx,RCD_EBX(%ebp)
                     63:        movl    %ecx,RCD_ECX(%ebp)
                     64:        movl    %edx,RCD_EDX(%ebp)
                     65:        movl    %esi,RCD_ESI(%ebp)
                     66:        movl    %edi,RCD_EDI(%ebp)
                     67:        movw    %ds,RCD_DS(%ebp)
                     68:        movw    %es,RCD_ES(%ebp)
                     69: 
                     70:        pushf
                     71:        popl    %eax
                     72:        movw    %ax,RCD_FLAGS(%ebp)
                     73: 
                     74:        movw    %ss,%ax
                     75:        movw    %ax,%ds
                     76:        movw    %ax,%es
                     77: 
                     78:        popl    %ebp
                     79:        popl    %edi
                     80:        popl    %esi
                     81:        popl    %ebx
                     82:        popf
                     83:        ret
                     84: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.