annotate gcc/config/nds32/nds32_init.inc @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /*
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 * nds32_init.inc
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 *
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 * NDS32 architecture startup assembler header file
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 *
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 .macro nds32_init
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 ! Initialize GP for data access
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 la $gp, _SDA_BASE_
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 #if defined(__NDS32_EXT_EX9__)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 ! Check HW for EX9
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 mfsr $r0, $MSC_CFG
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 li $r1, (1 << 24)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 and $r2, $r0, $r1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 beqz $r2, 1f
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 ! Initialize the table base of EX9 instruction
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 la $r0, _ITB_BASE_
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 mtusr $r0, $ITB
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 1:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 #if defined(__NDS32_EXT_FPU_DP__) || defined(__NDS32_EXT_FPU_SP__)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 ! Enable FPU
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 mfsr $r0, $FUCOP_CTL
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 ori $r0, $r0, #0x1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 mtsr $r0, $FUCOP_CTL
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 dsb
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 ! Enable denormalized flush-to-Zero mode
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 fmfcsr $r0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 ori $r0,$r0,#0x1000
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 fmtcsr $r0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 dsb
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 ! Initialize default stack pointer
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 la $sp, _stack
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 .endm