|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991 ! 27: * All Rights Reserved ! 28: * ! 29: * Permission to use, copy, modify, and distribute this software and ! 30: * its documentation for any purpose and without fee is hereby granted, ! 31: * provided that the above copyright notice appears in all copies and ! 32: * that both the copyright notice and this permission notice appear in ! 33: * supporting documentation. ! 34: * ! 35: * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE ! 36: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ! 37: * FOR A PARTICULAR PURPOSE. ! 38: * ! 39: * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR ! 40: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ! 41: * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, ! 42: * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ! 43: * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ! 44: * ! 45: */ ! 46: /* ! 47: * MKLINUX-1.0DR2 ! 48: */ ! 49: ! 50: /* Routines to perform high-speed scrolling, assuming that the memory is ! 51: * non-cached, and that the amount of memory to be scrolled is a multiple ! 52: * of (at least) 16. ! 53: */ ! 54: ! 55: #if 1 //notdef_next ! 56: #include <ppc/asm.h> ! 57: #include <ppc/proc_reg.h> ! 58: ! 59: /* ! 60: * void video_scroll_up(unsigned long start, ! 61: * unsigned long end, ! 62: * unsigned long dest) ! 63: */ ! 64: ! 65: ENTRY(video_scroll_up, TAG_NO_FRAME_USED) ! 66: ! 67: /* ! 68: * Turn the FPU on, save regs ! 69: */ ! 70: mfmsr ARG4 ! 71: ori ARG3, ARG4, MASK(MSR_FP) /* bit is in low-order 16 */ ! 72: mtmsr ARG3 ! 73: isync ! 74: ! 75: stfd f0, -16(r1) ! 76: stfd f1, -8(r1) ! 77: ! 78: /* ok, now we can use the FPU registers to do some fast copying, ! 79: * maybe this can be more optimal but it's not bad ! 80: */ ! 81: ! 82: .L_vscr_up_loop: ! 83: lfd f0, 0(ARG0) ! 84: lfd f1, 8(ARG0) ! 85: ! 86: addi ARG0, ARG0, 16 ! 87: ! 88: stfd f0, 0(ARG2) ! 89: ! 90: cmp CR0,0, ARG0, ARG1 ! 91: ! 92: stfd f1, 8(ARG2) ! 93: ! 94: addi ARG2, ARG2, 16 ! 95: ! 96: blt+ CR0, .L_vscr_up_loop ! 97: ! 98: lfd f0, -16(r1) ! 99: lfd f1, -8(r1) ! 100: ! 101: /* re-disable the FPU */ ! 102: sync ! 103: mtmsr ARG4 ! 104: isync ! 105: ! 106: blr ! 107: ! 108: /* ! 109: * void video_scroll_down(unsigned long start, HIGH address to scroll from ! 110: * unsigned long end, LOW address ! 111: * unsigned long dest) HIGH address ! 112: */ ! 113: ! 114: ENTRY(video_scroll_down, TAG_NO_FRAME_USED) ! 115: ! 116: /* ! 117: * Turn the FPU on, save regs ! 118: */ ! 119: mfmsr ARG4 ! 120: ori ARG3, ARG4, MASK(MSR_FP) /* bit is in low-order 16 */ ! 121: mtmsr ARG3 ! 122: isync ! 123: ! 124: stfd f0, -16(r1) ! 125: stfd f1, -8(r1) ! 126: ! 127: /* ok, now we can use the FPU registers to do some fast copying, ! 128: * maybe this can be more optimal but it's not bad ! 129: */ ! 130: ! 131: .L_vscr_down_loop: ! 132: lfd f0, -16(ARG0) ! 133: lfd f1, -8(ARG0) ! 134: ! 135: subi ARG0, ARG0, 16 ! 136: ! 137: stfd f0, -16(ARG2) ! 138: ! 139: cmp CR0,0, ARG0, ARG1 ! 140: ! 141: stfd f1, -8(ARG2) ! 142: ! 143: subi ARG2, ARG2, 16 ! 144: ! 145: bgt+ CR0, .L_vscr_down_loop ! 146: ! 147: lfd f0, -16(r1) ! 148: lfd f1, -8(r1) ! 149: ! 150: /* re-disable the FPU */ ! 151: sync ! 152: mtmsr ARG4 ! 153: isync ! 154: ! 155: blr ! 156: #endif notdef_next ! 157:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.