OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [x86/] [boot/] [copy.S] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
/* ----------------------------------------------------------------------- *
2
 *
3
 *   Copyright (C) 1991, 1992 Linus Torvalds
4
 *   Copyright 2007 rPath, Inc. - All Rights Reserved
5
 *
6
 *   This file is part of the Linux kernel, and is made available under
7
 *   the terms of the GNU General Public License version 2.
8
 *
9
 * ----------------------------------------------------------------------- */
10
 
11
/*
12
 * arch/i386/boot/copy.S
13
 *
14
 * Memory copy routines
15
 */
16
 
17
        .code16gcc
18
        .text
19
 
20
        .globl  memcpy
21
        .type   memcpy, @function
22
memcpy:
23
        pushw   %si
24
        pushw   %di
25
        movw    %ax, %di
26
        movw    %dx, %si
27
        pushw   %cx
28
        shrw    $2, %cx
29
        rep; movsl
30
        popw    %cx
31
        andw    $3, %cx
32
        rep; movsb
33
        popw    %di
34
        popw    %si
35
        ret
36
        .size   memcpy, .-memcpy
37
 
38
        .globl  memset
39
        .type   memset, @function
40
memset:
41
        pushw   %di
42
        movw    %ax, %di
43
        movzbl  %dl, %eax
44
        imull   $0x01010101,%eax
45
        pushw   %cx
46
        shrw    $2, %cx
47
        rep; stosl
48
        popw    %cx
49
        andw    $3, %cx
50
        rep; stosb
51
        popw    %di
52
        ret
53
        .size   memset, .-memset
54
 
55
        .globl  copy_from_fs
56
        .type   copy_from_fs, @function
57
copy_from_fs:
58
        pushw   %ds
59
        pushw   %fs
60
        popw    %ds
61
        call    memcpy
62
        popw    %ds
63
        ret
64
        .size   copy_from_fs, .-copy_from_fs
65
 
66
        .globl  copy_to_fs
67
        .type   copy_to_fs, @function
68
copy_to_fs:
69
        pushw   %es
70
        pushw   %fs
71
        popw    %es
72
        call    memcpy
73
        popw    %es
74
        ret
75
        .size   copy_to_fs, .-copy_to_fs
76
 
77
#if 0 /* Not currently used, but can be enabled as needed */
78
 
79
        .globl  copy_from_gs
80
        .type   copy_from_gs, @function
81
copy_from_gs:
82
        pushw   %ds
83
        pushw   %gs
84
        popw    %ds
85
        call    memcpy
86
        popw    %ds
87
        ret
88
        .size   copy_from_gs, .-copy_from_gs
89
        .globl  copy_to_gs
90
 
91
        .type   copy_to_gs, @function
92
copy_to_gs:
93
        pushw   %es
94
        pushw   %gs
95
        popw    %es
96
        call    memcpy
97
        popw    %es
98
        ret
99
        .size   copy_to_gs, .-copy_to_gs
100
 
101
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.