4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright (c) 2007 by Sun Microsystems, Inc.
26 #pragma ident "%Z%%M% %I% %E% SMI"
29 * General machine architecture & implementation specific
30 * assembly language routines.
33 #include <sys/types.h>
34 #include <sys/machsystm.h>
35 #include <sys/t_lock.h>
40 #include <sys/asm_linkage.h>
41 #include <sys/eeprom.h>
42 #include <sys/param.h>
43 #include <sys/async.h>
44 #include <sys/intreg.h>
45 #include <sys/machthread.h>
46 #include <sys/iocache.h>
47 #include <sys/privregs.h>
48 #include <sys/archsystm.h>
54 memscrub_read
(caddr_t vaddr
, u_int blks
)
60 ! void memscrub_read
(caddr_t src
, u_int blks
)
67 srl
%o1
, 0, %o1
! clear upper word of blk count
68 rd
%fprs
, %o2
! get the status of fp
69 wr
%g0
, FPRS_FEF
, %fprs
! enable fp
72 prefetch
[%o0
+ 8*64], 0
73 ldda
[%o0
]ASI_BLK_P
, %d0
75 prefetch
[%o0
+ 8*64], 0
76 ldda
[%o0
]ASI_BLK_P
, %d16
78 prefetch
[%o0
+ 8*64], 0
79 ldda
[%o0
]ASI_BLK_P
, %d32
81 prefetch
[%o0
+ 8*64], 0
82 ldda
[%o0
]ASI_BLK_P
, %d48
88 wr
%o2
, 0, %fprs
! restore fprs
(disabled
)
89 SET_SIZE
(memscrub_read
)