This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: z8000?


Jeffrey A Law wrote:
> 
>   In message <002901bf742f$404f7fa0$7304460c@n8l9c8>you write:
>   > Did anyone ever create a gcc for the Z800x microcontroller?  I can't =
>   > find any hints in the search engines, and although there's an assembler =
>   > and debugger under gcc-2.9.x, there's no gcc.
>
> Cygnus did one a few years ago.  It wasn't what I'd call a clean port and
> required some totally inappropriate hacks to the target independent parts
> of the compiler.

 One guy asked this sometimes in 1997 and I helped him to get it work
from
the Cygwin-b18 or b19 sources. Now the 'gcc/config/z8k' is at least with
the
eCos-1.21 sources (non-working of course). Hmmm... I have the compiler
built
then only on a backup CDR (saved from '/usr' downwards) :

F:\local\bin>gcc-z8k -v
Using builtin specs.
gcc version cygnus-2.7.2-970404

F:\local\bin>gcc-z8k -print-search-dirs
install: /usr/local/lib/gcc-lib/z8k-coff/2_7_2_c/

 But the problems were in the target dependent parts then, e.g. the
'FIRST_PSEUDO_REGISTER' was changed, but some parts still expected
it to be '16'... Ok, the fixes were still there :

---------------- clip------------------------------ 
diff -r --exclude=*.o --exclude=*~ --unified ./gcc/config/z8k/t-z8k
//h/Rotortuner/Cygnus/B19/src/gcc/config/z8k/t-z8k
--- ./gcc/config/z8k/t-z8k	Tue Apr 15 09:01:31 1997
+++ //h/Rotortuner/Cygnus/B19/src/gcc/config/z8k/t-z8k	Tue May 26
10:45:57 1998
@@ -1,7 +1,11 @@
 CROSS_LIBGCC1 = libgcc1.null
-LIBGCC2_CFLAGS = -DCMPtype=HItype  -g   -O2 
+# This used to override LIBGCC2_CFLAGS.  This causes problems because
certain functions
+# then assume libc and standard include files.  Also set inhibit_libc
to make sure
+# there are no libc function calls
+TARGET_LIBGCC2_CFLAGS = -DCMPtype=HItype  -Dinhibit_libc
 LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c $(srcdir)/config/z8k/lib2funcs.c
-
+# For the z8k we only make a C compiler
+LANGUAGES = c proto gcov
 
 fp-bit.c: $(srcdir)/config/fp-bit.c
 	echo '#define FLOAT' > fp-bit.c
diff -r --exclude=*.o --exclude=*~ --unified ./gcc/config/z8k/z8k.c
//h/Rotortuner/Cygnus/B19/src/gcc/config/z8k/z8k.c
--- ./gcc/config/z8k/z8k.c	Tue Apr 15 09:01:32 1997
+++ //h/Rotortuner/Cygnus/B19/src/gcc/config/z8k/z8k.c	Sun May 24
19:44:39 1998
@@ -958,9 +958,12 @@
       TREE_ASM_WRITTEN (name_tree) = 1;
     }
 
-  data_section ();
-  assemble_name (file, name);
-  fprintf (file, ":\n\tblock\t%u\n", rounded);
+  //  data_section ();
+  //assemble_name (file, name);
+  //fprintf (file, ":\n\tblock\t%u\n", rounded);
+  fputs(".lcomm ",file );
+  assemble_name (file,name);
+  fprintf( file, ",%u\n",rounded );
 }
 
 void
@@ -2233,11 +2236,11 @@
   /* The mask is a bit-for-bit for the internal register numbering
system,
      so r10 has the fp in it.  We work out the external register
numbering
      so that we can push the registers efficiently */
-  int exregs[FIRST_PSEUDO_REGISTER];
+  int exregs[ 16 ];
 
   memset (exregs, 0, sizeof (exregs));
 
-  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
+  for (i = 0; i < 16; i++)
     {
       if (mask & (1<<i))
 	{
@@ -2245,7 +2248,7 @@
 	}
     }
 
-  for (i = 0; i < FIRST_PSEUDO_REGISTER; i+=2)
+  for (i = 0; i < 16; i+=2)
     {
       if (exregs[i] && exregs[i+1])
 	{

---------------- clip------------------------------ 

> It's bit-rotted a lot over the last 2-3 years.

 I believe that...

> If you're interested in cleaning it up and submitting it for inclusion into
> GCC, I can forward you the target dependent files.

 The previous patch may serve as a start, at least a 2.7.2.x version can
be
possible first. I would be a little pessimistic with egcs-1.1.x or
gcc-2.95.x...

Cheers, Kai


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]