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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-mips64/] [exception.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * This file is subject to the terms and conditions of the GNU General Public
3
 * License.  See the file "COPYING" in the main directory of this archive
4
 * for more details.
5
 *
6
 * Copyright (C) 1994 - 1999 by Ralf Baechle
7
 * Copyright (C) 1999 Silicon Graphics
8
 *
9
 * Low level exception handling
10
 */
11
#include <asm/asm.h>
12
#include <asm/regdef.h>
13
#include <asm/fpregdef.h>
14
#include <asm/mipsregs.h>
15
#include <asm/stackframe.h>
16
 
17
        .macro  __build_clear_none
18
        .endm
19
 
20
        .macro  __build_clear_sti
21
        STI
22
        .endm
23
 
24
        .macro  __build_clear_cli
25
        CLI
26
        .endm
27
 
28
        .macro  __build_clear_fpe
29
        cfc1    a1, fcr31
30
        li      a2, ~(0x3f << 12)
31
        and     a2, a1
32
        ctc1    a2, fcr31
33
        STI
34
        .endm
35
 
36
        .macro  __build_clear_ade
37
        dmfc0   t0, CP0_BADVADDR
38
        sd      t0, PT_BVADDR(sp)
39
        KMODE
40
        .endm
41
 
42
        .macro  __BUILD_silent exception
43
        .endm
44
 
45
        /* Gas tries to parse the PRINT argument as a string containing
46
           string escapes and emits bogus warnings if it believes to
47
           recognize an unknown escape code.  So make the arguments
48
           start with an n and gas will believe \n is ok ...  */
49
        .macro  __BUILD_verbose nexception
50
        ld      a1, PT_EPC(sp)
51
        PRINT("Got \nexception at %016lx\012")
52
        .endm
53
 
54
        .macro  __BUILD_count exception
55
        .set    reorder
56
        ld      t0,exception_count_\exception
57
        daddiu  t0, 1
58
        sd      t0,exception_count_\exception
59
        .set    noreorder
60
        .comm   exception_count\exception, 8, 8
61
        .endm
62
 
63
        .macro  BUILD_HANDLER exception handler clear verbose
64
        .align  5
65
        NESTED(handle_\exception, PT_SIZE, sp)
66
        .set    noat
67
        SAVE_ALL
68
        __BUILD_clear_\clear
69
        .set    at
70
        __BUILD_\verbose \exception
71
        move    a0, sp
72
        jal     do_\handler
73
        j       ret_from_exception
74
         nop
75
        END(handle_\exception)
76
        .endm

powered by: WebSVN 2.1.0

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