summaryrefslogtreecommitdiffstats
path: root/libgloss/mips/crt0.S
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/mips/crt0.S')
-rw-r--r--libgloss/mips/crt0.S10
1 files changed, 6 insertions, 4 deletions
diff --git a/libgloss/mips/crt0.S b/libgloss/mips/crt0.S
index dbecc5e87..00a398c25 100644
--- a/libgloss/mips/crt0.S
+++ b/libgloss/mips/crt0.S
@@ -116,7 +116,6 @@ _start:
.globl get_mem_info .text
.globl __stack
.globl __global
- .globl zerobss
.ent zerobss
zerobss:
LA (v0, _fbss)
@@ -163,10 +162,10 @@ zerobss:
*/
.globl hardware_init_hook .text
.globl software_init_hook .text
- .globl __do_global_dtors .text
+ .type _fini,@function
+ .type _init,@function
.globl atexit .text
.globl exit .text
- .globl init
.ent init
init:
LA (t9, hardware_init_hook) # init the hardware if needed
@@ -181,7 +180,7 @@ init:
jal t9
nop
7:
- LA (a0, __do_global_dtors)
+ LA (a0, _fini)
jal atexit
nop
@@ -194,6 +193,9 @@ init:
nop
#endif
+ jal _init # run global constructors
+ nop
+
move a0,zero # set argc to 0
jal main # call the program start function
nop