summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2014-03-21 20:27:41 +0000
committerJeff Johnston <jjohnstn@redhat.com>2014-03-21 20:27:41 +0000
commit488d885bf3647634a94f9f95c6bcf3321073b2ac (patch)
treedbfcfcb2440c34a89587c3fe6cf1649962b045bc
parentd35d103f08edf3fc552981f1d8136e358b9faece (diff)
downloadcygnal-488d885bf3647634a94f9f95c6bcf3321073b2ac.tar.gz
cygnal-488d885bf3647634a94f9f95c6bcf3321073b2ac.tar.bz2
cygnal-488d885bf3647634a94f9f95c6bcf3321073b2ac.zip
2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
* nds32/crt0.S: Use pseudo-instruction "bal frame" to replace "la + jral". * nds32/crt1.S: Ditto.
-rw-r--r--libgloss/ChangeLog6
-rw-r--r--libgloss/nds32/crt0.S6
-rw-r--r--libgloss/nds32/crt1.S7
3 files changed, 11 insertions, 8 deletions
diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog
index 5b22a24c7..e4891f360 100644
--- a/libgloss/ChangeLog
+++ b/libgloss/ChangeLog
@@ -1,5 +1,11 @@
2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
+ * nds32/crt0.S: Use pseudo-instruction "bal frame" to replace
+ "la + jral".
+ * nds32/crt1.S: Ditto.
+
+2014-03-21 Sabrini Ni <sabrinanitw@gmail.com>
+
* nds32/crt0.S: Eliminate initialization for $fp.
* nds32/crt1.S: Ditto.
diff --git a/libgloss/nds32/crt0.S b/libgloss/nds32/crt0.S
index 30092e001..5f56e9a50 100644
--- a/libgloss/nds32/crt0.S
+++ b/libgloss/nds32/crt0.S
@@ -94,8 +94,7 @@ _start:
movi $r0, 0
movi $r1, 0
/* Call 'main'. */
- la $r15, main
- jral $r15
+ bal main
.L_terminate_program:
/* There are two ways to terminate program:
@@ -106,8 +105,7 @@ _start:
Currently, we use option 2 as a solution to follow C99 5.1.2.2.3,
but aware that general exit() will do some cleanup procedures
which may result in large-memory-footprints. */
- la $r15, exit
- jral $r15
+ bal exit
.L_forever_loop:
/* Should never return here. */
diff --git a/libgloss/nds32/crt1.S b/libgloss/nds32/crt1.S
index 0aca76246..5ff4d9629 100644
--- a/libgloss/nds32/crt1.S
+++ b/libgloss/nds32/crt1.S
@@ -100,8 +100,7 @@ _start:
movi $r1, 0
movi $r2, 0
/* Call 'main'. */
- la $r15, main
- jral $r15
+ bal main
.L_terminate_program:
/* There are two ways to terminate program:
@@ -112,8 +111,8 @@ _start:
Currently, we use option 2 as a solution to follow C99 5.1.2.2.3,
but aware that general exit() will do some cleanup procedures
which may result in large-memory-footprints. */
- la $r15, exit
- jral $r15
+
+ bal exit
.L_forever_loop:
/* Should never return here. */