92817a6ad7
Allow platforms to specify size of long double; seperate alignment from size.
David Given
2013-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 Given
2013-05-21 18:16:30 +01:00
6cdea73e84
Add a lot more opcodes.
David Given
2013-05-20 23:27:45 +01:00
d6565f4d5b
Fix typo.
David Given
2013-05-20 23:27:31 +01:00
e5341e4167
Remember to clear ackflags on reset.
David Given
2013-05-20 22:41:27 +01:00
970f2bae62
Major revamp to simplify and use 2op instructions. Better code. Now looks like it may work one day.
David Given
2013-05-20 22:35:12 +01:00
5082b2a5d7
Add lea instruction. Fix dependency issues.
David Given
2013-05-20 19:56:33 +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 Given
2013-05-19 23:34:42 +01:00
76ba0bf6b3
First steps towards a code generator.
David Given
2013-05-19 23:33:42 +01:00
61bff18082
Added skeleton bootstrap code.
David Given
2013-05-19 23:33:29 +01:00
80f85001fa
Correctly emit constants in some ALU instructions.
David Given
2013-05-19 23:19:10 +01:00
a46ee91859
Fix warning.
David Given
2013-05-19 23:18:36 +01:00
4f15423d63
Add compare-and-branch instructions.
David Given
2013-05-19 18:40:19 +01:00
80afe75c9b
Added memory operations that work on fixed up addresses.
David Given
2013-05-19 13:03:53 +01:00
febe8ca937
Add register offset and postincrement memory operations.
David Given
2013-05-19 12:39:35 +01:00
fc2833d456
Add most vanilla memory load/store instructions.
David Given
2013-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 Given
2013-05-18 13:00:37 +01:00
c18a82ec40
Apply build system fixes for OpenBSD contributed by George Koehler.
David Given
2013-05-18 12:15:53 +01:00
26877d3c4f
Add a whole bunch of VC4 opcodes.
David Given
2013-05-17 23:30:49 +01:00
5378e3fe53
Add special relocation type for VC4 jump instructions.
David Given
2013-05-17 22:40:50 +01:00
5b4aa07dee
Merge fixes from trunk.
David Given
2013-05-17 15:28:04 +01:00
9a513e8ef3
Fix warning.
David Given
2013-05-17 00:04:54 +01:00
e7c2029c9c
Dependency fixes.
David Given
2013-05-17 00:04:37 +01:00
32ebc502c8
Skeleton of VideoCore IV support for the Raspberry Pi.
David Given
2013-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 Given
2013-05-16 22:02:59 +01:00
f70f78b6e4
Correctly generate dependency information.
David Given
2013-05-16 22:02:00 +01:00
84f81a442c
Merge in build system changes.
David Given
2013-05-16 14:33:19 +01:00
24ef1627ec
A few last build tweaks.
David Given
2013-05-16 14:20:58 +01:00
11377070fd
Update distribution files.
David Given
2013-05-15 23:46:15 +01:00
8fbce949f5
Now describe the make-based build system in the README.
David Given
2013-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 Given
2013-05-15 22:09:28 +01:00
e9233b4712
Build ego.
David Given
2013-05-15 21:14:06 +01:00
f6c43b95ef
Modula-2 now works.
David Given
2013-05-14 22:24:38 +01:00
66aebcdd91
Pascal compiler now runs.
David Given
2013-05-14 20:47:04 +01:00
a6ebaeabd0
Basic compiler now runs.
David Given
2013-05-14 18:01:38 +01:00
d5f0107746
Build the Basic run-time library (after some modernisation).
David Given
2013-05-14 16:11:29 +01:00
a68b117e96
Add missing dependency.
David Given
2013-05-14 14:55:29 +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 Given
2013-05-13 23:26:15 +01:00
442306d557
Split off some of the platform-independent stuff (such as as and ncg).
David Given
2013-05-13 22:12:46 +01:00
81778b603f
Merge updates from trunk.
David Given
2013-05-13 12:37:27 +01:00
af0dedeb6e
Fix typo.
David Given
2013-05-13 11:14:10 +01:00
b0c238eb5d
Made a start on building the runtimes for each platform and language; the Linuxes all build.
David Given
2013-05-12 23:51:55 +01:00
c1aca7dae5
First milestone of replacing the build system.
David Given
2013-05-12 20:45:55 +01:00
d89f172841
Change fatal() and error() to use varargs.
David Given
2013-05-10 12:04:21 +01:00
33b4873932
Readjust after merge to default.
David Given
2013-05-09 18:15:49 +01:00
d91a1dc1a6
Merge changes from branch: linux68k platform, linuxppc platform (partially working), and miscellaneous changes to support these.
David Given
2013-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 Given
2013-05-09 15:54:23 +01:00
99d7f513f2
Properly error out if something goes wrong rather than ploughing ahead anyway.
David Given
2013-05-09 11:20:36 +01:00
bcfb3d802f
Add pmfile for m68020 libend.
David Given
2013-05-09 00:58:35 +01:00
8e2d027c49
Add pmfile for m68020 libem.
David Given
2013-05-09 00:57:47 +01:00
8d0261473d
Add missing linux68k platform and liblinux support library.
David Given
2013-05-09 00:56:10 +01:00
c93cb69959
Check in incomplete Linux PowerPC and M68K work.
David Given
2013-05-08 00:48:48 +01:00
c8fdcff960
Some fixes for aelflod and aslod.
George Koehler
2013-04-24 19:57:23 -04:00
dccecc5d45
Back out erroneous change.
David Given
2012-12-14 11:56:21 +00:00
0fc7fd5d33
Prevent segfault when trying to print an error message.
George Koehler
2012-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 Given
2012-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 Given
2012-09-27 10:54:41 +01:00
7ef9b79c11
Merge deletion of many undead files.
George Koehler
2012-09-23 15:31:16 -04:00
3dcc3bd1cf
Allow pc86 bootloader to boot from more floppy drives.
George Koehler
2012-09-23 14:43:22 -04:00
e7c79415b5
Prevent division by zero in aslod.
George Koehler
2012-09-21 22:51:12 -04:00
0131ca4d46
Delete 689 undead files.
George Koehler
2012-09-20 22:26:32 -04:00
be234ea759
*Again* fix fit16i() for systems with 64-bit long.
George Koehler
2012-09-19 23:39:51 -04:00
8bf34937f1
Delete old and unused files from modules/src/em_code
George Koehler
2012-09-17 16:04:55 -04:00
99eb12a282
Fix fit16i() for systems with 64-bit long.
George Koehler
2012-09-16 19:57:07 -04:00
96ea0a5903
Fix more functions in util/ack for 64-bit hosts.
George Koehler
2012-09-07 16:28:10 -04:00
800d4ae032
Fix cemcom.ansi for 64-bit hosts.
George Koehler
2012-09-07 15:53:13 -04:00
6ea172d0d9
Fix a 64-bitness issue (removed some untyped K&R C code that assumed ints and pointers were the same size).
David Given
2012-02-27 22:36:36 +00:00
1072a8797e
Added atol() that ignores overflow, so that unsigned long constants are dealt with properly
Ceriel Jacobs
2011-06-15 11:13:48 +02:00
45ee287136
Replaced dis and new with modern implementations donated by erik@backerud.se.
dtrg
2010-10-02 21:52:29 +00:00
075cb488a3
Call the correct kill() and getpid() syscalls rather than _kill() and _getpid().
dtrg
2010-10-02 21:51:40 +00:00
a33473e0a5
Now call creat() and open() instead of _creat() and _open().
dtrg
2010-09-27 20:47:32 +00:00
7292b538bc
Added support for remove() and unlink().
dtrg
2010-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.
dtrg
2010-09-01 19:55:15 +00:00
085f346f8c
Fixed definitions of O_* flags.
dtrg
2010-08-20 19:27:09 +00:00
c326f3c6a3
Remove references to using-machine-name-for-compiler, as we don't do that any more.
dtrg
2010-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.)
dtrg
2010-08-06 17:06:31 +00:00
293f34fa9b
Flush stdout before prompting the user for input.
dtrg
2010-08-06 17:02:16 +00:00
da6111328d
Flush output stream before waiting for user input.
dtrg
2010-08-05 22:23:34 +00:00
54ce3f451b
Configured distr system for the 6.0pre3 release.
dtrg
2007-04-29 23:09:24 +00:00
663f4f2fb5
Cleaned up a bit and made work with the new platform architecture.
dtrg
2007-04-29 23:03:24 +00:00
78777e802b
Now using more conservative optimisation due to random seg fault issues.
dtrg
2007-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).
dtrg
2007-04-29 23:00:31 +00:00
868b8c5075
Fixed the ego parameters to actually allow extended optimisation.
dtrg
2007-04-29 21:25:09 +00:00
eb4ea1e761
Use better optimisation options.
dtrg
2007-04-29 21:24:17 +00:00