92817a6ad7
Allow platforms to specify size of long double; seperate alignment from size.
David Given2013-05-21 19:18:11 +01:00
877e06ed89
Lots more opcodes including float support. Define float and double to be the same thing (as the VC4 seems not to have double-precision float support).
David Given2013-05-21 18:16:30 +01:00
11890026db
Push/pop are the right way round. Don't corrup short-form ALU instructions. Correct encoding of push/pop register ranges.
David Given2013-05-19 23:34:42 +01:00
76ba0bf6b3
First steps towards a code generator.
David Given2013-05-19 23:33:42 +01:00
4f15423d63
Add compare-and-branch instructions.
David Given2013-05-19 18:40:19 +01:00
80afe75c9b
Added memory operations that work on fixed up addresses.
David Given2013-05-19 13:03:53 +01:00
febe8ca937
Add register offset and postincrement memory operations.
David Given2013-05-19 12:39:35 +01:00
fc2833d456
Add most vanilla memory load/store instructions.
David Given2013-05-19 00:56:56 +01:00
fc1b3672a3
Reapply bugfix to sbrk() which got dropped during the move from linx386/libsys to liblinux. Set errno correctly.
David Given2013-05-18 13:00:37 +01:00
c18a82ec40
Apply build system fixes for OpenBSD contributed by George Koehler.
David Given2013-05-18 12:15:53 +01:00
32ebc502c8
Skeleton of VideoCore IV support for the Raspberry Pi.
David Given2013-05-17 00:03:38 +01:00
e5f6d5acfa
Fix buffer overrun looking up type information for op_lab pseudoops (as they're not EM opcodes, we shouldn't look them up in em_flags!).
David Given2013-05-16 22:02:59 +01:00
f70f78b6e4
Correctly generate dependency information.
David Given2013-05-16 22:02:00 +01:00
8fbce949f5
Now describe the make-based build system in the README.
David Given2013-05-15 23:12:05 +01:00
aaa3f14a79
Fix build error in opt which was causing all code, everywhere, to be broken. Remember to build opt2 too.
David Given2013-05-15 22:09:28 +01:00
07453d184a
Top, topgen, aelflod. Moved the libraries back into the platform-specific directories --- wrangling descr files was too hard. C programs can be built for cpm, pc86, linux386, linux68k!
David Given2013-05-13 23:26:15 +01:00
442306d557
Split off some of the platform-independent stuff (such as as and ncg).
David Given2013-05-13 22:12:46 +01:00
d91a1dc1a6
Merge changes from branch: linux68k platform, linuxppc platform (partially working), and miscellaneous changes to support these.
David Given2013-05-09 18:14:16 +01:00
b9b808e01a
Apply George Koehler's aelflod fix for generating non-EM_386 binaries. Adjust platforms to use it. Fix some bugs in the linux386 platform.
David Given2013-05-09 15:54:23 +01:00
99d7f513f2
Properly error out if something goes wrong rather than ploughing ahead anyway.
David Given2013-05-09 11:20:36 +01:00
0fc7fd5d33
Prevent segfault when trying to print an error message.
George Koehler2012-10-24 13:44:50 -04:00
4349d702fa
Change from using platform-specific types to stdint platform-independent types when reading the structure header.
David Given2012-09-27 11:32:40 +01:00
2beb3646a7
Change to use stdint's implementation independent types rather than short and long (which vary depending on whether you're on a 64-bit system or not).
David Given2012-09-27 10:54:41 +01:00
6ea172d0d9
Fix a 64-bitness issue (removed some untyped K&R C code that assumed ints and pointers were the same size).
David Given2012-02-27 22:36:36 +00:00
1072a8797e
Added atol() that ignores overflow, so that unsigned long constants are dealt with properly
Ceriel Jacobs2011-06-15 11:13:48 +02:00
075cb488a3
Call the correct kill() and getpid() syscalls rather than _kill() and _getpid().
dtrg2010-10-02 21:51:40 +00:00
a33473e0a5
Now call creat() and open() instead of _creat() and _open().
dtrg2010-09-27 20:47:32 +00:00
7292b538bc
Added support for remove() and unlink().
dtrg2010-09-27 20:44:49 +00:00
a8ecb11013
Fixed very old bug where Streams.GetStreamPosition would return the wrong position --- thanks to Jan Verhoeven for finding this.
dtrg2010-09-01 19:55:15 +00:00
085f346f8c
Fixed definitions of O_* flags.
dtrg2010-08-20 19:27:09 +00:00
c326f3c6a3
Remove references to using-machine-name-for-compiler, as we don't do that any more.
dtrg2010-08-09 22:47:33 +00:00
a0c67da261
Changed to actually work. (On modern Linux systems the old version just crashes. On old Linux systems it apparently only worked by accident.)
dtrg2010-08-06 17:06:31 +00:00
293f34fa9b
Flush stdout before prompting the user for input.
dtrg2010-08-06 17:02:16 +00:00
da6111328d
Flush output stream before waiting for user input.
dtrg2010-08-05 22:23:34 +00:00
54ce3f451b
Configured distr system for the 6.0pre3 release.
dtrg2007-04-29 23:09:24 +00:00
663f4f2fb5
Cleaned up a bit and made work with the new platform architecture.
dtrg2007-04-29 23:03:24 +00:00
78777e802b
Now using more conservative optimisation due to random seg fault issues.
dtrg2007-04-29 23:02:23 +00:00
df088c184b
Added optimised rules for int<<8 and uint>>8 (which can be done with simple register shuffling rather than calling .sli).
dtrg2007-04-29 23:00:31 +00:00
868b8c5075
Fixed the ego parameters to actually allow extended optimisation.
dtrg2007-04-29 21:25:09 +00:00
eb4ea1e761
Use better optimisation options.
dtrg2007-04-29 21:24:17 +00:00