David Given
|
e299cc3bcf
|
stdio (output only) now works.
--HG--
branch : dtrg-videocore
|
2013-05-25 23:59:31 +01:00 |
|
David Given
|
8c21a2ef9b
|
Stop fighting the terrible code and remove the regvar support --- it didn't help much and was a pain.
--HG--
branch : dtrg-videocore
|
2013-05-25 23:58:35 +01:00 |
|
David Given
|
6a672d5e96
|
Heap allocations now works.
--HG--
branch : dtrg-videocore
|
2013-05-25 23:28:47 +01:00 |
|
David Given
|
3b07fee160
|
Major bugfix where instructions weren't being shrunk correctly. (Turns out there's built-in support for doing this, which I hadn't found.)
--HG--
branch : dtrg-videocore
|
2013-05-25 23:26:10 +01:00 |
|
David Given
|
b6680a48cc
|
Disable register variables. The code is a bit worse, but having two stackable registers makes things much easier to understand.
--HG--
branch : dtrg-videocore
|
2013-05-25 13:31:58 +01:00 |
|
David Given
|
d7efb0a32c
|
Implement .csa.
--HG--
branch : dtrg-videocore
rename : mach/vc4/libem/dummy.s => mach/vc4/libem/csa.s
|
2013-05-25 13:31:27 +01:00 |
|
David Given
|
2ee79ab0b2
|
Encode comparing branch correctly.
--HG--
branch : dtrg-videocore
|
2013-05-25 13:31:01 +01:00 |
|
David Given
|
ec25fec145
|
Build binaries that will run bare metal. Add enough syscall library to init the uart and write text.
--HG--
branch : dtrg-videocore
rename : plat/rpi/libsys/libsys.h => plat/rpi/libsys/libsysasm.h
rename : plat/rpi/libsys/_sys_rawread.s => plat/rpi/libsys/phys_to_user.s
rename : plat/rpi/libsys/_sys_rawread.s => plat/rpi/libsys/uart.s
rename : plat/rpi/libsys/_sys_rawread.s => plat/rpi/libsys/user_to_phys.s
|
2013-05-25 00:35:29 +01:00 |
|
David Given
|
472f778342
|
Don't write out constant data as big-endian! Some other cleanups.
--HG--
branch : dtrg-videocore
|
2013-05-25 00:33:38 +01:00 |
|
David Given
|
98e745d04c
|
Fix awful bug where uint32_t was sometimes defined as a short.
--HG--
branch : dtrg-videocore
|
2013-05-25 00:33:01 +01:00 |
|
David Given
|
98a51732ab
|
Various codegen tweaks.
--HG--
branch : dtrg-videocore
|
2013-05-24 17:04:29 +01:00 |
|
David Given
|
2c7ee27206
|
Double-quads can be loaded and stored (more) correctly.
--HG--
branch : dtrg-videocore
|
2013-05-22 23:55:23 +01:00 |
|
David Given
|
6cbe6e1c4e
|
Better treatment of sign extension.
--HG--
branch : dtrg-videocore
|
2013-05-22 23:12:48 +01:00 |
|
David Given
|
8f338f9b44
|
Now actually runs on real hardware.
--HG--
branch : dtrg-videocore
|
2013-05-22 22:46:10 +01:00 |
|
David Given
|
7537c85e0a
|
Generate adds instructions when a shift-and-add is seen (useful for array indexing).
--HG--
branch : dtrg-videocore
|
2013-05-22 21:37:48 +01:00 |
|
David Given
|
b5e5df4a63
|
Allocate a user stack to run code in.
--HG--
branch : dtrg-videocore
|
2013-05-22 18:25:30 +01:00 |
|
David Given
|
cdce394b6c
|
Generate ld rd, (rs) instructions properly.
--HG--
branch : dtrg-videocore
|
2013-05-22 11:02:46 +01:00 |
|
David Given
|
9e556d8b7b
|
Optimise direct access to globals, and incrementing and decrementing locals.
--HG--
branch : dtrg-videocore
|
2013-05-22 10:55:13 +01:00 |
|
David Given
|
0068952bd1
|
Build the Raspberry Pi code.
--HG--
branch : dtrg-videocore
|
2013-05-22 09:47:22 +01:00 |
|
David Given
|
6b5316dcfa
|
More typo fixes.
--HG--
branch : dtrg-videocore
|
2013-05-22 00:52:58 +01:00 |
|
David Given
|
08c4334224
|
Typo fixes.
--HG--
branch : dtrg-videocore
|
2013-05-22 00:44:04 +01:00 |
|
David Given
|
72542288cd
|
Adjust bootstrap code to build kernels that work with the mailbox test app.
--HG--
branch : dtrg-videocore
|
2013-05-22 00:16:59 +01:00 |
|
David Given
|
f904465e9c
|
Fix signedness problem that was showing up on ARM.
--HG--
branch : dtrg-videocore
|
2013-05-22 00:16:16 +01:00 |
|
David Given
|
5e9102955c
|
Reworked VC4 relocations and some of the instruction encoding to be actually correct. Now generating what could be real code!
--HG--
branch : dtrg-videocore
|
2013-05-21 23:17:30 +01:00 |
|
David Given
|
1312fe298b
|
Now compiles (incorrectly) the entire libc, libpc, libm2 and libbasic!
--HG--
branch : dtrg-videocore
|
2013-05-21 20:05:26 +01:00 |
|
David Given
|
92817a6ad7
|
Allow platforms to specify size of long double; seperate alignment from size.
--HG--
branch : dtrg-videocore
|
2013-05-21 19:18:11 +01:00 |
|
David Given
|
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).
--HG--
branch : dtrg-videocore
|
2013-05-21 18:16:30 +01:00 |
|
David Given
|
6cdea73e84
|
Add a lot more opcodes.
--HG--
branch : dtrg-videocore
|
2013-05-20 23:27:45 +01:00 |
|
David Given
|
d6565f4d5b
|
Fix typo.
--HG--
branch : dtrg-videocore
|
2013-05-20 23:27:31 +01:00 |
|
David Given
|
e5341e4167
|
Remember to clear ackflags on reset.
--HG--
branch : dtrg-videocore
|
2013-05-20 22:41:27 +01:00 |
|
David Given
|
970f2bae62
|
Major revamp to simplify and use 2op instructions. Better code. Now looks like it may work one day.
--HG--
branch : dtrg-videocore
|
2013-05-20 22:35:12 +01:00 |
|
David Given
|
5082b2a5d7
|
Add lea instruction. Fix dependency issues.
--HG--
branch : dtrg-videocore
|
2013-05-20 19:56:33 +01:00 |
|
David Given
|
11890026db
|
Push/pop are the right way round. Don't corrup short-form ALU instructions. Correct encoding of push/pop register ranges.
--HG--
branch : dtrg-videocore
|
2013-05-19 23:34:42 +01:00 |
|
David Given
|
76ba0bf6b3
|
First steps towards a code generator.
--HG--
branch : dtrg-videocore
|
2013-05-19 23:33:42 +01:00 |
|
David Given
|
61bff18082
|
Added skeleton bootstrap code.
--HG--
branch : dtrg-videocore
rename : plat/pc86/boot.s => plat/rpi/boot.s
|
2013-05-19 23:33:29 +01:00 |
|
David Given
|
80f85001fa
|
Correctly emit constants in some ALU instructions.
--HG--
branch : dtrg-videocore
|
2013-05-19 23:19:10 +01:00 |
|
David Given
|
a46ee91859
|
Fix warning.
--HG--
branch : dtrg-videocore
|
2013-05-19 23:18:36 +01:00 |
|
David Given
|
4f15423d63
|
Add compare-and-branch instructions.
--HG--
branch : dtrg-videocore
|
2013-05-19 18:40:19 +01:00 |
|
David Given
|
80afe75c9b
|
Added memory operations that work on fixed up addresses.
--HG--
branch : dtrg-videocore
|
2013-05-19 13:03:53 +01:00 |
|
David Given
|
febe8ca937
|
Add register offset and postincrement memory operations.
--HG--
branch : dtrg-videocore
|
2013-05-19 12:39:35 +01:00 |
|
David Given
|
fc2833d456
|
Add most vanilla memory load/store instructions.
--HG--
branch : dtrg-videocore
|
2013-05-19 00:56:56 +01:00 |
|
David Given
|
fc1b3672a3
|
Reapply bugfix to sbrk() which got dropped during the move from linx386/libsys
to liblinux. Set errno correctly.
|
2013-05-18 13:00:37 +01:00 |
|
David Given
|
c18a82ec40
|
Apply build system fixes for OpenBSD contributed by George Koehler.
|
2013-05-18 12:15:53 +01:00 |
|
David Given
|
26877d3c4f
|
Add a whole bunch of VC4 opcodes.
--HG--
branch : dtrg-videocore
|
2013-05-17 23:30:49 +01:00 |
|
David Given
|
5378e3fe53
|
Add special relocation type for VC4 jump instructions.
--HG--
branch : dtrg-videocore
|
2013-05-17 22:40:50 +01:00 |
|
David Given
|
5b4aa07dee
|
Merge fixes from trunk.
--HG--
branch : dtrg-videocore
|
2013-05-17 15:28:04 +01:00 |
|
David Given
|
9a513e8ef3
|
Fix warning.
|
2013-05-17 00:04:54 +01:00 |
|
David Given
|
e7c2029c9c
|
Dependency fixes.
|
2013-05-17 00:04:37 +01:00 |
|
David Given
|
32ebc502c8
|
Skeleton of VideoCore IV support for the Raspberry Pi.
--HG--
branch : dtrg-videocore
rename : mach/powerpc/as/.distr => mach/vc4/as/.distr
rename : mach/powerpc/as/mach0.c => mach/vc4/as/mach0.c
rename : mach/powerpc/as/mach1.c => mach/vc4/as/mach1.c
rename : mach/powerpc/as/mach2.c => mach/vc4/as/mach2.c
rename : mach/powerpc/as/mach3.c => mach/vc4/as/mach3.c
rename : mach/powerpc/as/mach4.c => mach/vc4/as/mach4.c
rename : mach/powerpc/as/mach5.c => mach/vc4/as/mach5.c
rename : mach/i86/build.mk => mach/vc4/build.mk
rename : mach/powerpc/libem/powerpc.h => mach/vc4/libem/videocore.h
rename : mach/i86/libend/.distr => mach/vc4/libend/.distr
rename : mach/i86/libend/edata.s => mach/vc4/libend/edata.s
rename : mach/i86/libend/em_end.s => mach/vc4/libend/em_end.s
rename : mach/i86/libend/end.s => mach/vc4/libend/end.s
rename : mach/i86/libend/etext.s => mach/vc4/libend/etext.s
rename : mach/powerpc/ncg/.distr => mach/vc4/ncg/.distr
rename : mach/powerpc/ncg/mach.c => mach/vc4/ncg/mach.c
rename : mach/powerpc/ncg/mach.h => mach/vc4/ncg/mach.h
rename : mach/powerpc/ncg/table => mach/vc4/ncg/table
rename : plat/pc86/descr => plat/rpi/descr
|
2013-05-17 00:03:38 +01:00 |
|
David Given
|
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!).
|
2013-05-16 22:02:59 +01:00 |
|