diff --git a/.distr b/.distr index d3cbdbbd6..971a46554 100644 --- a/.distr +++ b/.distr @@ -46,9 +46,11 @@ lang/m2 #lang/basic mach/proto +mach/i80 mach/i86 mach/i386 +plat/cpm plat/pc86 plat/linux386 diff --git a/CHANGES b/CHANGES index 648fc49ce..9416961e4 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,15 @@ # $State$ # $Revision$ +6.0pre3 + + Added the cpm platform. Made some optimisations to the i80 code generator, + including getting topgen up and running and adding some peephole optimiser + rules. Fixed loads of bugs in ego so that it now works on platforms that + support it (pc86 and linux386). Made the floating point work on platforms + that support it (pc86 and linux386 again). Made stdint.h work. Lots and lots + of bugfixes and tweaks everywhere. + 6.0pre2 Much simplified the syscall interface by disabling libmon and instead diff --git a/README b/README index d07635fd8..31f16fa94 100644 --- a/README +++ b/README @@ -2,11 +2,11 @@ # $State$ # $Revision$ - THE AMSTERDAM COMPILER KIT V6.0pre2 + THE AMSTERDAM COMPILER KIT V6.0pre3 =================================== © 1987-2005 Vrije Universiteit, Amsterdam - 2007-04-24 + 2007-04-29 INTRODUCTION @@ -34,6 +34,7 @@ Platforms: pc86 produces bootable floppy disk images for 8086 PCs linux386 produces ELF executables for PC Linux systems +cpm produces i80 CP/M .COM files INSTALLATION @@ -125,8 +126,8 @@ GOTCHAS There are some things you should be aware of. -- Look at plat/linux386/README and plat/pc86/README for information about the - two supported platforms. +- Look at plat//README for information about the two supported + platforms. - The library support is fairly limited; for C, it's at roughly the ANSI C level, and for the other languages it's similar. @@ -166,4 +167,4 @@ Please enjoy. David Given (dtrg on Sourceforge) dg@cowlark.com -2007-04-24 +2007-04-29 diff --git a/lang/cem/libcc.ansi/headers/.distr b/lang/cem/libcc.ansi/headers/.distr index e7d9d0986..cf35cec17 100644 --- a/lang/cem/libcc.ansi/headers/.distr +++ b/lang/cem/libcc.ansi/headers/.distr @@ -20,4 +20,3 @@ stdbool.h fcntl.h tgmath.h locale.h -stdint.h diff --git a/mach/i80/.distr b/mach/i80/.distr index 27c608429..c4ce2f711 100644 --- a/mach/i80/.distr +++ b/mach/i80/.distr @@ -1,8 +1,6 @@ -Action +pmfile as +top ncg -dl libem libend -libmon -mach_params diff --git a/mach/i80/libem/.distr b/mach/i80/libem/.distr index d2b4f2884..b6454fbc7 100644 --- a/mach/i80/libem/.distr +++ b/mach/i80/libem/.distr @@ -1,2 +1,38 @@ -LIST -libem_s.a +pmfile +aar2.s +adi4.s +and.s +blm.s +cii.s +cmi4.s +cms.s +com.s +csa.s +csb.s +dup.s +dvi2.s +dvi4.s +exg.s +flp.s +inn.s +ior.s +lar2.s +loi.s +mli2.s +mli4.s +mlu2.s +ngi4.s +nop.s +rck.s +rol4.s +ror4.s +sar2.s +sbi4.s +set2.s +set.s +sli2.s +sli4.s +sri2.s +sri4.s +sti.s +xor.s diff --git a/mach/i80/libend/.distr b/mach/i80/libend/.distr index b48ec8483..1508ebdc7 100644 --- a/mach/i80/libend/.distr +++ b/mach/i80/libend/.distr @@ -1,2 +1,5 @@ -LIST -end_s.a +pmfile +edata.s +em_end.s +end.s +etext.s diff --git a/mach/i80/pmfile b/mach/i80/pmfile index b5994f318..d87cef81f 100644 --- a/mach/i80/pmfile +++ b/mach/i80/pmfile @@ -11,6 +11,7 @@ mach_i80 = group { proto_as, proto_ncg { ARCHDIR = "i80" }, + proto_top, install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") } diff --git a/mach/i80/top/.distr b/mach/i80/top/.distr new file mode 100644 index 000000000..ecbe2e6d5 --- /dev/null +++ b/mach/i80/top/.distr @@ -0,0 +1 @@ +table diff --git a/mach/i80/top/table b/mach/i80/top/table new file mode 100644 index 000000000..e6c4af727 --- /dev/null +++ b/mach/i80/top/table @@ -0,0 +1,16 @@ + +/* 68020 desciptor table for ACK target optimizer */ + +MAXOP 2; + +%%; + +X, Y, Z { TRUE }; +%%; + +mvi X, Y : mov X, Z -> mov X, Z ; + +xchg : inx h : xchg -> inx d ; +xchg : inx d : xchg -> inx h ; + +%%; diff --git a/plat/cpm/.distr b/plat/cpm/.distr index 9bcdd612a..04a32eaa3 100644 --- a/plat/cpm/.distr +++ b/plat/cpm/.distr @@ -4,21 +4,22 @@ pmfile README include/ack/config.h include/unistd.h +include/cpm.h libsys/pmfile -libsys/_hol0.s +libsys/_bdos.s libsys/brk.c libsys/close.c libsys/creat.c libsys/errno.s libsys/getpid.c +libsys/_hol0.s +libsys/_inn2.s libsys/isatty.c libsys/kill.c -libsys/libsys.h libsys/lseek.c libsys/open.c libsys/read.c libsys/signal.c libsys/time.c +libsys/_trap.s libsys/write.c -libsys/_sys_rawread.s -libsys/_sys_rawwrite.s diff --git a/plat/cpm/descr b/plat/cpm/descr index a89c832f5..da320fe39 100644 --- a/plat/cpm/descr +++ b/plat/cpm/descr @@ -28,6 +28,15 @@ name be stdout need .e end +name asopt + from .s + to .so + program {EM}/lib.bin/{PLATFORM}/top + args + optimizer + stdin + stdout +end name as from .s.so to .o