Mercurial > flash_v2
annotate packages/hal/mips/arch/current/include/arch.inc @ 6:d376b777e2ce ecos-sw-1999-05-14
Merge from eCos master repository on 1999-05-14-19:27:43-BST
| author | jlarmour |
|---|---|
| date | Fri, 14 May 1999 12:20:00 +0000 |
| parents | |
| children | ece80412419a |
| rev | line source |
|---|---|
|
6
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
1 #ifndef CYGONCE_HAL_ARCH_INC |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
2 #define CYGONCE_HAL_ARCH_INC |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
3 ##============================================================================= |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
4 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
5 ## arch.inc |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
6 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
7 ## MIPS assembler header file |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
8 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
9 ##============================================================================= |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
10 #####COPYRIGHTBEGIN#### |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
11 # |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
12 # ------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
13 # The contents of this file are subject to the Cygnus eCos Public License |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
14 # Version 1.0 (the "License"); you may not use this file except in |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
15 # compliance with the License. You may obtain a copy of the License at |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
16 # http://sourceware.cygnus.com/ecos |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
17 # |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
18 # Software distributed under the License is distributed on an "AS IS" |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
19 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
20 # License for the specific language governing rights and limitations under |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
21 # the License. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
22 # |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
23 # The Original Code is eCos - Embedded Cygnus Operating System, released |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
24 # September 30, 1998. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
25 # |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
26 # The Initial Developer of the Original Code is Cygnus. Portions created |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
27 # by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
28 # ------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
29 # |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
30 #####COPYRIGHTEND#### |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
31 ##============================================================================= |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
32 #######DESCRIPTIONBEGIN#### |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
33 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
34 ## Author(s): nickg |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
35 ## Contributors: nickg |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
36 ## Date: 1997-10-16 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
37 ## Purpose: Architecture definitions. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
38 ## Description: This file contains various definitions and macros that are |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
39 ## useful for writing assembly code for the MIPS CPU family. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
40 ## Usage: |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
41 ## #include <cyg/hal/arch.inc> |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
42 ## ... |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
43 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
44 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
45 ######DESCRIPTIONEND#### |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
46 ## |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
47 ##============================================================================= |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
48 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
49 #include <cyg/hal/mips.inc> |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
50 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
51 #include <cyg/hal/variant.inc> |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
52 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
53 ##----------------------------------------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
54 ## Set up the value for the initial status register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
55 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
56 #ifndef INITIAL_SR |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
57 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
58 #if defined(CYG_HAL_STARTUP_RAM) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
59 # if defined(CYG_HAL_MIPS_SIM) || !defined(CYG_HAL_USE_ROM_MONITOR) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
60 # define INITIAL_SR 0x1000ff00 /* CP0 usable, Ints enabled */ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
61 # else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
62 # define INITIAL_SR 0x1040ff00 /* as above + ROM vectors used */ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
63 # endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
64 #elif defined(CYG_HAL_STARTUP_ROM) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
65 # define INITIAL_SR 0x1040ff00 /* as above + ROM vectors used */ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
66 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
67 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
68 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
69 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
70 ##----------------------------------------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
71 ## MIPS thread and interrupt saved state. This must match the layout of the |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
72 ## HAL_SavedRegisters in hal_arch.h. Do not change this without changing the |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
73 ## layout there, or viceversa. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
74 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
75 #ifdef CYGHWR_HAL_MIPS_64BIT |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
76 # define mips_regsize 8 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
77 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
78 # define mips_regsize 4 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
79 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
80 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
81 #if defined(CYGHWR_HAL_MIPS_FPU) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
82 # if defined(CYGHWR_HAL_MIPS_FPU_64BIT) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
83 # define mips_fpuregsize 8 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
84 # elif defined(CYGHWR_HAL_MIPS_FPU_32BIT) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
85 # define mips_fpuregsize 4 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
86 # else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
87 # error MIPS FPU register size not defined |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
88 # endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
89 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
90 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
91 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
92 #define mipsreg_regs 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
93 #define mipsreg_hi (mips_regsize*32) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
94 #define mipsreg_lo (mipsreg_hi+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
95 #ifdef CYGHWR_HAL_MIPS_FPU |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
96 # define mipsreg_fpureg (mipsreg_lo+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
97 # define mipsreg_fcr31 (mipsreg_fpureg+(mips_fpuregsize*32)) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
98 # define mipsreg_fppad (mipsreg_fcr31+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
99 # define mipsreg_vector (mipsreg_fppad+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
100 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
101 # define mipsreg_vector (mipsreg_lo+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
102 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
103 #define mipsreg_pc (mipsreg_vector+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
104 #define mipsreg_sr (mipsreg_pc+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
105 #define mipsreg_cache (mipsreg_sr+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
106 #define mipsreg_cause (mipsreg_cache+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
107 #define mipsreg_badvr (mipsreg_cause+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
108 #define mipsreg_prid (mipsreg_badvr+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
109 #define mipsreg_config (mipsreg_prid+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
110 #define mipsreg_size (mipsreg_config+mips_regsize) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
111 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
112 #define mips_exception_decrement (mipsreg_size*2) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
113 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
114 ##----------------------------------------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
115 ## Minimal stack frame size uses to call functions from asm. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
116 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
117 #define mips_stack_frame_size 32 // 4 (64 bit) args worth |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
118 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
119 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
120 ##----------------------------------------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
121 ## CPU specific macros. These provide a common assembler interface to |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
122 ## operations that may have CPU specific implementations on different |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
123 ## variants of the architecture. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
124 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
125 # Initialize CPU |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
126 .macro hal_cpu_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
127 mtc0 zero,cause # zero cause reg |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
128 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
129 la v0,INITIAL_SR # initialize status register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
130 mtc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
131 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
132 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
133 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
134 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
135 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
136 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
137 # Enable interrupts |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
138 #ifdef CYG_HAL_MIPS_R3900 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
139 .macro hal_cpu_int_enable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
140 mfc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
141 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
142 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
143 ori v0,v0,0x0001 # set IE bit |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
144 mtc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
145 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
146 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
147 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
148 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
149 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
150 .macro hal_cpu_int_enable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
151 mfc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
152 la v1,0xFFFFFFF9 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
153 and v0,v0,v1 # clear EXL and ERL bits |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
154 ori v0,v0,0x0001 # set IE bit |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
155 mtc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
156 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
157 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
158 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
159 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
160 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
161 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
162 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
163 # Disable interrupts |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
164 .macro hal_cpu_int_disable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
165 mfc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
166 la v1,0xFFFFFFFE |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
167 and v0,v0,v1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
168 mtc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
169 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
170 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
171 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
172 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
173 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
174 # Merge the interrupt enable state of the status register in |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
175 # \sr with the current sr. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
176 #ifdef CYG_HAL_MIPS_R3900 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
177 #define HAL_SR_INT_MASK 0x00000001 // IEc only |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
178 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
179 #define HAL_SR_INT_MASK 0x00000007 // IE, EXL, ERL |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
180 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
181 .macro hal_cpu_int_merge sr |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
182 mfc0 v0,status # V0 = current SR |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
183 la v1,HAL_SR_INT_MASK # V1 = SR interrupt bits mask |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
184 and \sr,\sr,v1 # Isolate interrupt bits of \sr |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
185 nor v1,v1,zero # Invert mask |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
186 and v0,v0,v1 # V0 = current SR except int bits |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
187 or v0,v0,\sr # V0 = New SR |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
188 mtc0 v0,status # Return to SR |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
189 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
190 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
191 # Enable further exception processing, and disable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
192 # interrupt processing. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
193 #ifdef CYG_HAL_MIPS_R3900 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
194 .macro hal_cpu_except_enable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
195 hal_cpu_int_disable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
196 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
197 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
198 .macro hal_cpu_except_enable |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
199 mfc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
200 la v1,0xFFFFFFF0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
201 and v0,v0,v1 # clear EXL, ERL and IE bits |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
202 mtc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
203 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
204 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
205 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
206 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
207 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
208 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
209 # Return from exception. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
210 #ifdef CYG_HAL_MIPS_R3900 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
211 .macro hal_cpu_eret pc,sr |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
212 mtc0 \sr,status # Load status register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
213 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
214 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
215 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
216 sync # settle things down |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
217 jr \pc # jump back to interrupted code |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
218 rfe # restore state (delay slot) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
219 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
220 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
221 .macro hal_cpu_eret pc,sr |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
222 mtc0 \pc,epc # put PC in EPC |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
223 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
224 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
225 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
226 mtc0 \sr,status # put SR back |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
227 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
228 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
229 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
230 sync # settle things down |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
231 eret # return |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
232 nop # just to be safe |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
233 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
234 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
235 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
236 ##----------------------------------------------------------------------------- |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
237 # Default MIPS interrupt decoding macros. This uses the basic interrupt |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
238 # support provided by CP0 in the cause and status registers. If there is |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
239 # a more complex external interrupt controller, or the default stuff is |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
240 # interpreted differently (as in the TX3904) then these macros will be |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
241 # overridden and CYGPKG_HAL_MIPS_INTC_DEFINED will be defined. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
242 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
243 #ifndef CYGPKG_HAL_MIPS_INTC_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
244 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
245 #ifndef CYGPKG_HAL_MIPS_INTC_INIT_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
246 # initialize all interrupts to disabled |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
247 .macro hal_intc_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
248 mfc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
249 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
250 lui v1,0xFFFF |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
251 ori v1,v1,0x00FF |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
252 and v0,v0,v1 # clear the IntMask bits |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
253 mtc0 v0,status |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
254 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
255 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
256 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
257 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
258 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
259 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
260 .macro hal_intc_decode vnum |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
261 mfc0 v0,cause # get cause register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
262 nop # delay slot |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
263 srl v0,v0,10 # shift interrupt bits down |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
264 andi v0,v0,0x7f # isolate 6 interrupt bits |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
265 la v1,hal_intc_translation_table |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
266 add v0,v0,v1 # index into table |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
267 lb \vnum,0(v0) # pick up vector number |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
268 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
269 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
270 .macro hal_intc_decode_data |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
271 hal_intc_translation_table: |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
272 .byte 0, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
273 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
274 .byte 3, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
275 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
276 .byte 4, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
277 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
278 .byte 3, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
279 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
280 .byte 5, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
281 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
282 .byte 3, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
283 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
284 .byte 4, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
285 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
286 .byte 3, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
287 .byte 2, 0, 1, 0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
288 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
289 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
290 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
291 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
292 # FPU macros. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
293 # The MIPS floating point unit essentially operates in two modes. In the first |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
294 # it supplies 32 32bit FP registers that may be paired into 16 64 bit registers. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
295 # In the second it supplies 32 64bit registers. Which mode is to be used depends |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
296 # not only on the specific implementation in use, but also on the setting of the |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
297 # FR bit in the status register (if it is implemented) and on the expectations of |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
298 # the toolchain. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
299 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
300 #ifndef CYGPKG_HAL_MIPS_FPU_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
301 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
302 #ifdef CYGHWR_HAL_MIPS_FPU |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
303 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
304 #if defined(CYGHWR_HAL_MIPS_FPU_64BIT) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
305 #define sfpr sdc1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
306 #define lfpr ldc1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
307 #define CYG_HAL_MIPS_FPU_SR_INIT 0x24000000 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
308 #elif defined(CYGHWR_HAL_MIPS_FPU_32BIT) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
309 #define sfpr swc1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
310 #define lfpr lwc1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
311 #define CYG_HAL_MIPS_FPU_SR_INIT 0x20000000 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
312 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
313 #error MIPS FPU register size not defined |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
314 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
315 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
316 .macro hal_fpu_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
317 mfc0 v0,status # Get sr |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
318 la v1,0xDBFFFFFF # Clear bits to be changed |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
319 and v0,v0,v1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
320 la v1,CYG_HAL_MIPS_FPU_SR_INIT # Set the bits we want |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
321 or v0,v0,v1 # Set sr to required value |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
322 mtc0 v0,status # return to sr |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
323 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
324 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
325 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
326 ctc1 zero,$31 # clear Fp control reg |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
327 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
328 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
329 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
330 # Save the caller-saved registers as defined by the ABI. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
331 # These only really need saving during interrupts. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
332 .macro hal_fpu_save_caller regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
333 sfpr f0,(mipsreg_fpureg+0*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
334 sfpr f1,(mipsreg_fpureg+1*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
335 sfpr f2,(mipsreg_fpureg+2*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
336 sfpr f3,(mipsreg_fpureg+3*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
337 sfpr f4,(mipsreg_fpureg+4*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
338 sfpr f5,(mipsreg_fpureg+5*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
339 sfpr f6,(mipsreg_fpureg+6*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
340 sfpr f7,(mipsreg_fpureg+7*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
341 sfpr f8,(mipsreg_fpureg+8*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
342 sfpr f9,(mipsreg_fpureg+9*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
343 sfpr f10,(mipsreg_fpureg+10*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
344 sfpr f11,(mipsreg_fpureg+11*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
345 sfpr f12,(mipsreg_fpureg+12*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
346 sfpr f13,(mipsreg_fpureg+13*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
347 sfpr f14,(mipsreg_fpureg+14*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
348 sfpr f15,(mipsreg_fpureg+15*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
349 sfpr f16,(mipsreg_fpureg+16*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
350 sfpr f17,(mipsreg_fpureg+17*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
351 sfpr f18,(mipsreg_fpureg+18*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
352 sfpr f19,(mipsreg_fpureg+19*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
353 sfpr f31,(mipsreg_fpureg+31*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
354 cfc1 v0,$31 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
355 sw v0,mipsreg_fcr31(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
356 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
357 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
358 # Save the callee-saved registers as defined by the ABI. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
359 # These are the only registers that need to be saved |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
360 # across thread switches. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
361 .macro hal_fpu_save_callee regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
362 sfpr f20,(mipsreg_fpureg+20*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
363 sfpr f21,(mipsreg_fpureg+21*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
364 sfpr f22,(mipsreg_fpureg+22*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
365 sfpr f23,(mipsreg_fpureg+23*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
366 sfpr f24,(mipsreg_fpureg+24*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
367 sfpr f25,(mipsreg_fpureg+25*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
368 sfpr f26,(mipsreg_fpureg+26*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
369 sfpr f27,(mipsreg_fpureg+27*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
370 sfpr f28,(mipsreg_fpureg+28*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
371 sfpr f29,(mipsreg_fpureg+29*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
372 sfpr f30,(mipsreg_fpureg+30*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
373 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
374 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
375 # General macro to save everything |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
376 .macro hal_fpu_save regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
377 hal_fpu_save_callee \regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
378 hal_fpu_save_caller \regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
379 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
380 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
381 # Reload the caller-saved registers. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
382 .macro hal_fpu_load_caller regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
383 lw v0,mipsreg_fcr31(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
384 ctc1 v0,$31 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
385 lfpr f0,(mipsreg_fpureg+0*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
386 lfpr f1,(mipsreg_fpureg+1*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
387 lfpr f2,(mipsreg_fpureg+2*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
388 lfpr f3,(mipsreg_fpureg+3*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
389 lfpr f4,(mipsreg_fpureg+4*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
390 lfpr f5,(mipsreg_fpureg+5*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
391 lfpr f6,(mipsreg_fpureg+6*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
392 lfpr f7,(mipsreg_fpureg+7*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
393 lfpr f8,(mipsreg_fpureg+8*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
394 lfpr f9,(mipsreg_fpureg+9*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
395 lfpr f10,(mipsreg_fpureg+10*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
396 lfpr f11,(mipsreg_fpureg+11*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
397 lfpr f12,(mipsreg_fpureg+12*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
398 lfpr f13,(mipsreg_fpureg+13*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
399 lfpr f14,(mipsreg_fpureg+14*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
400 lfpr f15,(mipsreg_fpureg+15*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
401 lfpr f16,(mipsreg_fpureg+16*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
402 lfpr f17,(mipsreg_fpureg+17*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
403 lfpr f18,(mipsreg_fpureg+18*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
404 lfpr f19,(mipsreg_fpureg+19*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
405 lfpr f31,(mipsreg_fpureg+31*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
406 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
407 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
408 # Reload the callee-saved registers. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
409 .macro hal_fpu_load_callee regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
410 lfpr f20,(mipsreg_fpureg+20*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
411 lfpr f21,(mipsreg_fpureg+21*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
412 lfpr f22,(mipsreg_fpureg+22*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
413 lfpr f23,(mipsreg_fpureg+23*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
414 lfpr f24,(mipsreg_fpureg+24*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
415 lfpr f25,(mipsreg_fpureg+25*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
416 lfpr f26,(mipsreg_fpureg+26*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
417 lfpr f27,(mipsreg_fpureg+27*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
418 lfpr f28,(mipsreg_fpureg+28*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
419 lfpr f29,(mipsreg_fpureg+29*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
420 lfpr f30,(mipsreg_fpureg+30*mips_fpuregsize)(\regs) |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
421 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
422 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
423 # Reload everything. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
424 .macro hal_fpu_load regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
425 hal_fpu_load_caller \regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
426 hal_fpu_load_callee \regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
427 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
428 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
429 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
430 # Default macros for non-fpu implementations |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
431 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
432 .macro hal_fpu_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
433 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
434 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
435 .macro hal_fpu_save regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
436 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
437 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
438 .macro hal_fpu_save_caller regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
439 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
440 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
441 .macro hal_fpu_save_callee regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
442 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
443 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
444 .macro hal_fpu_load_caller regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
445 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
446 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
447 .macro hal_fpu_load_callee regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
448 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
449 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
450 .macro hal_fpu_load regs |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
451 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
452 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
453 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
454 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
455 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
456 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
457 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
458 # MMU macros. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
459 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
460 #ifndef CYGPKG_HAL_MIPS_MMU_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
461 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
462 .macro hal_mmu_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
463 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
464 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
465 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
466 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
467 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
468 # MEMC macros. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
469 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
470 #ifndef CYGPKG_HAL_MIPS_MEMC_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
471 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
472 .macro hal_memc_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
473 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
474 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
475 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
476 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
477 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
478 # Cache macros. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
479 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
480 #ifndef CYGPKG_HAL_MIPS_CACHE_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
481 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
482 #ifdef CYG_HAL_MIPS_R3900 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
483 .macro hal_cache_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
484 mfc0 v0,config # disable cache in config register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
485 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
486 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
487 la v1,0xffffffcf |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
488 and v0,v0,v1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
489 mtc0 v0,config |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
490 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
491 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
492 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
493 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
494 #else |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
495 .macro hal_cache_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
496 mfc0 v0,config0 # disable Kseg0 caching in config0 register |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
497 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
498 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
499 la v1,0xfffffff8 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
500 and v0,v0,v1 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
501 ori v0,v0,2 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
502 mtc0 v0,config0 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
503 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
504 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
505 nop |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
506 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
507 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
508 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
509 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
510 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
511 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
512 # Diagnostics macros. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
513 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
514 #ifndef CYGPKG_HAL_MIPS_DIAG_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
515 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
516 .macro hal_diag_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
517 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
518 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
519 .macro hal_diag_excpt_start |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
520 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
521 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
522 .macro hal_diag_intr_start |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
523 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
524 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
525 .macro hal_diag_restore |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
526 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
527 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
528 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
529 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
530 # Timer initialization. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
531 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
532 #ifndef CYGPKG_HAL_MIPS_TIMER_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
533 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
534 .macro hal_timer_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
535 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
536 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
537 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
538 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
539 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
540 # Monitor initialization. |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
541 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
542 #ifndef CYGPKG_HAL_MIPS_MON_DEFINED |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
543 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
544 .macro hal_mon_init |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
545 .endm |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
546 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
547 #endif |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
548 |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
549 #------------------------------------------------------------------------------ |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
550 #endif // ifndef CYGONCE_HAL_ARCH_INC |
|
d376b777e2ce
Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents:
diff
changeset
|
551 # end of arch.inc |
