The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/i386at/kdasm.s

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* 
    2  * Mach Operating System
    3  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
    4  * All Rights Reserved.
    5  * 
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  * 
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  * 
   16  * Carnegie Mellon requests users of this software to return to
   17  * 
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  * 
   23  * any improvements or extensions that they make and grant Carnegie Mellon
   24  * the rights to redistribute these changes.
   25  */
   26 /* 
   27  * HISTORY
   28  * $Log:        kdasm.s,v $
   29  * Revision 2.7  91/10/07  17:26:05  af
   30  *      From 2.5: Always set "direction bit" before rep.
   31  *              ([91/05/03            rvb])
   32  *      [91/09/04            rvb]
   33  * 
   34  * Revision 2.6  91/05/14  16:28:01  mrt
   35  *      Correcting copyright
   36  * 
   37  * Revision 2.5  91/02/14  14:43:32  mrt
   38  *      Follow dbg's lead.
   39  *      [91/01/15            rvb]
   40  * 
   41  * Revision 2.4  91/02/05  17:19:37  mrt
   42  *      Changed to new Mach copyright
   43  *      [91/02/01  17:46:06  mrt]
   44  * 
   45  * Revision 2.3  90/11/26  14:50:39  rvb
   46  *      jsb bet me to XMK34, sigh ...
   47  *      [90/11/26            rvb]
   48  *      Synched 2.5 & 3.0 at I386q (r2.2.1.4) & XMK35 (r2.3)
   49  *      [90/11/15            rvb]
   50  * 
   51  * Revision 2.2  90/05/03  15:45:07  dbg
   52  *      First checkin.
   53  * 
   54  * Revision 2.2.1.3  90/02/28  15:50:42  rvb
   55  *      Fix numerous typo's in Olivetti disclaimer.
   56  *      [90/02/28            rvb]
   57  * 
   58  * Revision 2.2.1.2  90/01/08  13:30:38  rvb
   59  *      Add Olivetti copyright.
   60  *      [90/01/08            rvb]
   61  * 
   62  * Revision 2.2.1.1  89/10/22  11:34:35  rvb
   63  *      New a.out and coff compatible .s files.
   64  *      [89/10/16            rvb]
   65  * 
   66  * Revision 2.2  89/04/05  13:02:14  rvb
   67  *      Converted to real asm file.
   68  *      [89/03/04            rvb]
   69  * 
   70  * Revision 1.3  89/02/26  12:37:20  gm0w
   71  *      Changes for cleanup.
   72  * 
   73  */
   74  
   75 /* 
   76  * Some inline code to speed up major block copies to and from the
   77  * screen buffer.
   78  * 
   79  * Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989.
   80  *  All rights reserved.
   81  *
   82  * orc!eugene   28 Oct 1988
   83  *
   84  */
   85 /*
   86   Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc.,
   87 Cupertino, California.
   88 
   89                 All Rights Reserved
   90 
   91   Permission to use, copy, modify, and distribute this software and
   92 its documentation for any purpose and without fee is hereby
   93 granted, provided that the above copyright notice appears in all
   94 copies and that both the copyright notice and this permission notice
   95 appear in supporting documentation, and that the name of Olivetti
   96 not be used in advertising or publicity pertaining to distribution
   97 of the software without specific, written prior permission.
   98 
   99   OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
  100 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
  101 IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
  102 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  103 LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
  104 NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
  105 WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  106 */
  107 
  108 /* $ Header: $ */
  109 
  110  
  111 #include <i386/asm.h>
  112 
  113 /*
  114  * Function:    kd_slmwd()
  115  *
  116  *      This function "slams" a word (char/attr) into the screen memory using
  117  *      a block fill operation on the 386.
  118  *
  119  */
  120 
  121 #define start 0x08(%ebp)
  122 #define count 0x0c(%ebp)
  123 #define value 0x10(%ebp)
  124 
  125 ENTRY(kd_slmwd)
  126         pushl   %ebp
  127         movl    %esp, %ebp
  128         pushl   %edi
  129 
  130         movl    start, %edi
  131         movl    count, %ecx
  132         movw    value, %ax
  133         cld
  134         rep
  135         stosw
  136 
  137         popl    %edi
  138         leave
  139         ret
  140 #undef start
  141 #undef count
  142 #undef value
  143 
  144 /*
  145  * "slam up"
  146  */
  147 
  148 #define from  0x08(%ebp)
  149 #define to    0x0c(%ebp)
  150 #define count 0x10(%ebp)
  151 ENTRY(kd_slmscu)
  152         pushl   %ebp
  153         movl    %esp, %ebp
  154         pushl   %esi
  155         pushl   %edi
  156 
  157         movl    from, %esi
  158         movl    to, %edi
  159         movl    count, %ecx
  160         cmpl    %edi, %esi
  161         cld
  162         rep
  163         movsw
  164 
  165         popl    %edi
  166         popl    %esi
  167         leave
  168         ret
  169 
  170 /*
  171  * "slam down"
  172  */
  173 ENTRY(kd_slmscd)
  174         pushl   %ebp
  175         movl    %esp, %ebp
  176         pushl   %esi
  177         pushl   %edi
  178 
  179         movl    from, %esi
  180         movl    to, %edi
  181         movl    count, %ecx
  182         cmpl    %edi, %esi
  183         std
  184         rep
  185         movsw
  186         cld
  187 
  188         popl    %edi
  189         popl    %esi
  190         leave
  191         ret
  192 #undef from
  193 #undef to
  194 #undef count

Cache object: 31bd8ca15b289346d9b4c19dca8a0c01


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.