This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Updated new ia16 back end


   Here's an update to the ia16 back end I submitted for inclusion a month
ago. The changes:

- I removed some experimental code, most of which was disabled.
- I added the copyright notice to a few files where it was missing.
- Comparisons are not emitted until the use of the result is known. This
  allows better code to be generated.
- New slt pattern and improved seq pattern.
- New configuration ia16-*-elks which generates code for the Embeddable
  Linux Kernel Subset system. This includes support for binaries with a
  separate code segment with the only limitation that trampolines are not
  supported. Test results[2] are however not yet as good as with the
  ia16-*-elf target[1].
- Constructors and destructors are now supported, but for some reason they
  only work on the elks configuration.
- Updated for the s/ode_macro/ode_iterator/ change.

[1] http://gcc.gnu.org/ml/gcc-testresults/2007-08/msg01100.html
[2] http://gcc.gnu.org/ml/gcc-testresults/2007-08/msg01101.html

   I've decided I'm not going to merge this back end into the i386 one as
suggested by some people. I think it's too much work for too little benefit.
Those who think a merge is a good idea are of course free to do it.

   The following patches from a month ago are unchanged: 
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02109.html
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02110.html
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02112.html
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02114.html
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02142.html

   To run tests, download these files:
http://nospamnospam.homepage.dk/gcc/download/newlib.patch
http://nospamnospam.homepage.dk/gcc/download/newlib.tar.gz
http://nospamnospam.homepage.dk/gcc/download/unix.exp
http://nospamnospam.homepage.dk/gcc/download/elksemu-sim.exp

 1) Create a combined tree with newlib and libgloss.
 2) Apply newlib.patch.
 3) Extract newlib.tar.gz.
 4) Find binutils for an i386 ELF system somewhere and create links to the
 binaries as ia16-unknown-elf-{as,ld,ar,ranlib,strip,nm}.
 5) Configure --target=ia16-unknown-elf and build as with any other target.
 6) For the elks target, s/-elf/-elks/g in step 4) and 5).

    Use elksemu-sim.exp when testing the ia16-*-elks target. This requires
elksemu from the dev86 package. Use unix.exp above when running the
testsuite for ia16-*-elf. Note: It needs to be called unix.exp.

:ADDPATCH target:

libgcc/
2007-07-30  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config.host: Add support for ia16.
	* ia16/t-ia16: New.

gcc/
2007-07-30  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config.gcc: Add support for ia16.
	* doc/invoke.texi: Update for new ia16 back end.
	* doc/contrib.texi: Likewise.
	* doc/install.texi: Likewise.	
	* doc/md.texi: Likewise.
	* config/ia16/ia16.md: New.
	* config/ia16/ia16-peepholes.md: New.
	* config/ia16/ia16.opt: New.
	* config/ia16/ia16.c: New.
	* config/ia16/t-ia16: New.
	* config/ia16/ia16-modes.def: New.
	* config/ia16/predicates.md: New.
	* config/ia16/constraints.md: New.
	* config/ia16/ia16.h: New.
	* config/ia16/ia16-protos.h: New.
	* config/ia16/elf.h: New.
	* config/ia16/elks.h: New.

-- 
Rask Ingemann Lambertsen

Attachment: ia16.patch.gz
Description: GNU Zip compressed data


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