Mercurial > hg > CbC > CbC_gcc
diff gcc/config/nds32/nds32_init.inc @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/config/nds32/nds32_init.inc Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,43 @@ +/* + * nds32_init.inc + * + * NDS32 architecture startup assembler header file + * + */ + +.macro nds32_init + + ! Initialize GP for data access + la $gp, _SDA_BASE_ + +#if defined(__NDS32_EXT_EX9__) + ! Check HW for EX9 + mfsr $r0, $MSC_CFG + li $r1, (1 << 24) + and $r2, $r0, $r1 + beqz $r2, 1f + + ! Initialize the table base of EX9 instruction + la $r0, _ITB_BASE_ + mtusr $r0, $ITB +1: +#endif + +#if defined(__NDS32_EXT_FPU_DP__) || defined(__NDS32_EXT_FPU_SP__) + ! Enable FPU + mfsr $r0, $FUCOP_CTL + ori $r0, $r0, #0x1 + mtsr $r0, $FUCOP_CTL + dsb + + ! Enable denormalized flush-to-Zero mode + fmfcsr $r0 + ori $r0,$r0,#0x1000 + fmtcsr $r0 + dsb +#endif + + ! Initialize default stack pointer + la $sp, _stack + +.endm