automatically set gp register
authorbrian <brian@brianweb.net>
Mon, 22 May 2006 08:03:05 +0000 (01:03 -0700)
committerbrian <brian@brianweb.net>
Mon, 22 May 2006 08:03:05 +0000 (01:03 -0700)
darcs-hash:20060522080305-24bed-4fe83c225bfc06a4bbc43fdb935811b7d07d8d15.gz

src/org/ibex/nestedvm/crt0.c

index 7e2c69e..8965c1f 100644 (file)
@@ -8,11 +8,16 @@ extern int atexit(void (*f)());
 extern void _init();
 extern void _fini();
 
 extern void _init();
 extern void _fini();
 
+extern char _gp[];
+register char *gp asm("$28");
 char **environ;
     
 void _start(char **argv, char **environ_) {
     int argc;
     
 char **environ;
     
 void _start(char **argv, char **environ_) {
     int argc;
     
+    if(!gp) gp = _gp;
+    
     environ = environ_;
     
     /* Call global constructors */
     environ = environ_;
     
     /* Call global constructors */