From e59026e844dc2f11f032058e671da848beb67f91 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Fri, 21 Mar 2014 20:58:54 +0000 Subject: [PATCH] 2014-03-21 Sabrini Ni * nds32/crt0.S: Initialize ITB base. * nds32/crt1.S: Ditto. --- libgloss/ChangeLog | 5 +++++ libgloss/nds32/crt0.S | 11 +++++++++++ libgloss/nds32/crt1.S | 11 +++++++++++ 3 files changed, 27 insertions(+) diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index 0b4e4f540..6cec93af6 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,3 +1,8 @@ +2014-03-21 Sabrini Ni + + * nds32/crt0.S: Initialize ITB base. + * nds32/crt1.S: Ditto. + 2014-03-21 Sabrini Ni * nds32/Makefile.in: Alter filename. diff --git a/libgloss/nds32/crt0.S b/libgloss/nds32/crt0.S index 5f56e9a50..ec294428c 100644 --- a/libgloss/nds32/crt0.S +++ b/libgloss/nds32/crt0.S @@ -52,6 +52,17 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .type _start, @function .align 2 _start: +.L_hw_config: +#if __NDS32_EX9_EXT__ + /* Initialize the table base of EX9 instruction. */ + mfsr $r0, $MSC_CFG /* Check if support EIT. */ + srli $r0, $r0, 24 + andi $r0, $r0, 0x1 + beqz $r0, .L_fp_gp_init + la $r0, $_ITB_BASE_ /* Init ITB. */ + mtusr $r0, $ITB +#endif + .L_fp_gp_init: /* Initialization for $gp. The _SDA_BASE_ location stands for Small Data Access. */ diff --git a/libgloss/nds32/crt1.S b/libgloss/nds32/crt1.S index 5ff4d9629..f8365cef5 100644 --- a/libgloss/nds32/crt1.S +++ b/libgloss/nds32/crt1.S @@ -52,6 +52,17 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .type _start, @function .align 2 _start: +.L_hw_config: +#if __NDS32_EX9_EXT__ + /* Initialize the table base of EX9 instruction. */ + mfsr $r0, $MSC_CFG /* Check if support EIT. */ + srli $r0, $r0, 24 + andi $r0, $r0, 0x1 + beqz $r0, .L_fp_gp_init + la $r0, $_ITB_BASE_ /* Init ITB. */ + mtusr $r0, $ITB +#endif + .L_fp_gp_init: /* Initialization for $gp. The _SDA_BASE_ location stands for Small Data Access. */