David Given
|
e36d739fa4
|
Add (largely untested) float/int conversion.
--HG--
branch : dtrg-videocore
|
2013-07-01 13:05:36 +01:00 |
|
David Given
|
8b6951dac0
|
Fix incorrect offset encoding in lea (sp) instructions.
--HG--
branch : dtrg-videocore
|
2013-06-29 00:35:07 +01:00 |
|
David Given
|
edb174da8d
|
Fix incorrect encoding of 'push lr' and 'pop pc'.
--HG--
branch : dtrg-videocore
|
2013-06-29 00:32:39 +01:00 |
|
David Given
|
29af6f1adb
|
ISA change: clz has been renamed to log2.
--HG--
branch : dtrg-videocore
|
2013-06-27 11:25:50 +01:00 |
|
David Given
|
2b3f95de0b
|
Fix jump range checking in the addcmpb family of instructions.
--HG--
branch : dtrg-videocore
|
2013-06-26 23:32:54 +01:00 |
|
David Given
|
c72eaef8ee
|
Add routine to set the Raspberry Pi clock to 250MHz (loads faster than the default 19.2MHz).
--HG--
branch : dtrg-videocore
rename : plat/rpi/libsys/pi_user_to_phys.s => plat/rpi/libsys/pi_fast_mode.s
|
2013-06-24 23:57:27 +01:00 |
|
David Given
|
d94c1c8150
|
Updated distr files.
--HG--
branch : dtrg-videocore
rename : mach/i80/.distr => mach/vc4/.distr
rename : plat/cpm/.distr => plat/rpi/.distr
|
2013-06-21 23:38:21 +01:00 |
|
David Given
|
2be811bac2
|
Updated VC4 docs.
--HG--
branch : dtrg-videocore
|
2013-06-21 23:21:08 +01:00 |
|
David Given
|
fd2360be0f
|
Ship assembler man pages.
--HG--
branch : dtrg-videocore
rename : man/8080_as.6 => man/i80_as.6
rename : man/m68k2_as.6 => man/m68020_as.6
|
2013-06-21 23:20:50 +01:00 |
|
David Given
|
55be35a68a
|
Add a stub malloc.h.
--HG--
branch : dtrg-videocore
rename : lang/cem/libcc.ansi/headers/stdlib.h => lang/cem/libcc.ansi/headers/malloc.h
|
2013-06-20 00:15:14 +01:00 |
|
David Given
|
052dd9bfc0
|
Actually remember to set the stack pointer on startup. Reduce to stack from 16kB to a much more reasonable 1kB.
--HG--
branch : dtrg-videocore
|
2013-06-20 00:14:55 +01:00 |
|
David Given
|
eaf4339cd6
|
Implement a very crude busy-wait based select() mechanism for consol input.
--HG--
branch : dtrg-videocore
rename : plat/rpi/include/ack/config.h => plat/rpi/include/sys/select.h
rename : plat/rpi/libsys/time.c => plat/rpi/libsys/select.c
|
2013-06-09 22:16:30 +01:00 |
|
David Given
|
bbd4b46850
|
Fix stack corruption when adjusting SP. Be a bit more rigorous about clearing the pseudostack on branch/labels.
--HG--
branch : dtrg-videocore
|
2013-06-07 21:25:38 +01:00 |
|
David Given
|
ed6c4a85d1
|
Change the size of the SRAM area to 128kB (to reflect reality).
--HG--
branch : dtrg-videocore
|
2013-06-06 00:05:48 +01:00 |
|
David Given
|
3e0123ca03
|
Fix treatment of out-of-range values in switch csa.
--HG--
branch : dtrg-videocore
|
2013-06-05 23:57:23 +01:00 |
|
David Given
|
aacabba165
|
Apply fix contributed by George Koehler:
- don't crash if BSS overlaps BDOS
- fix stack initialisation bug
- fix command line argification
|
2013-06-02 22:02:15 +01:00 |
|
David Given
|
86c6fa2f1e
|
Implement NOT...
--HG--
branch : dtrg-videocore
|
2013-05-30 23:50:19 +01:00 |
|
David Given
|
d5a112dbfd
|
Some more termios compatibility options.
--HG--
branch : dtrg-videocore
|
2013-05-30 23:25:22 +01:00 |
|
David Given
|
2054618e75
|
Add basic termios to the rpi platform to allow echoing/newline translation to be controlled.
--HG--
branch : dtrg-videocore
rename : plat/rpi/include/unistd.h => plat/rpi/include/termios.h
rename : plat/rpi/libsys/write.c => plat/rpi/libsys/tcgetattr.c
rename : plat/rpi/libsys/write.c => plat/rpi/libsys/tcsetattr.c
|
2013-05-30 23:19:55 +01:00 |
|
David Given
|
d273497077
|
Add some missing libc functions: setenv, unsetenv, strdup.
--HG--
rename : lang/cem/libcc.ansi/stdlib/getenv.c => lang/cem/libcc.ansi/stdlib/setenv.c
rename : lang/cem/libcc.ansi/string/strlen.c => lang/cem/libcc.ansi/string/strdup.c
extra : source : 64d6e6eec18d76bf8f3947ec5d171db94acdb282
|
2013-05-29 21:41:58 +01:00 |
|
David Given
|
074b42aa97
|
Add some missing libc functions: setenv, unsetenv, strdup.
--HG--
branch : dtrg-videocore
rename : lang/cem/libcc.ansi/stdlib/getenv.c => lang/cem/libcc.ansi/stdlib/setenv.c
rename : lang/cem/libcc.ansi/string/strlen.c => lang/cem/libcc.ansi/string/strdup.c
|
2013-05-29 21:41:58 +01:00 |
|
David Given
|
f522aba4af
|
Add support for snprintf and vsnprintf. Try and make the return value a bit
more standards-compliant.
--HG--
extra : source : a19eb606871f918e3d9e195b487b5276855edc8e
|
2013-05-29 17:10:58 +01:00 |
|
David Given
|
69953d016c
|
Add support for snprintf and vsnprintf. Try and make the return value a bit
more standards-compliant.
--HG--
branch : dtrg-videocore
|
2013-05-29 17:10:58 +01:00 |
|
David Given
|
d3e3e72860
|
Update from trunk.
--HG--
branch : dtrg-videocore
|
2013-05-29 15:03:48 +01:00 |
|
David Given
|
6fff2d45fe
|
Attempt to fix 64-bitness error in ashow. Deprecate the structure format macros in h/out.h because they make no sense on 64-bit platforms.
|
2013-05-29 14:48:51 +01:00 |
|
David Given
|
e0c121d6e6
|
Use relocation enumerations rather than hard-coded values for relocation types
(these were causing problems due to the enumeration values having changed).
|
2013-05-29 14:11:04 +01:00 |
|
David Given
|
1f36370d87
|
Implement nop (the C compiler sometimes generates this!).
--HG--
branch : dtrg-videocore
|
2013-05-26 22:54:53 +01:00 |
|
David Given
|
ae993b1eb2
|
Add a crude README.
--HG--
branch : dtrg-videocore
|
2013-05-26 19:54:22 +01:00 |
|
David Given
|
38e4726f5c
|
Boot code now works properly in both kernel and bare-metal mode.
--HG--
branch : dtrg-videocore
|
2013-05-26 19:41:37 +01:00 |
|
David Given
|
ef25c53c9c
|
Fix bug in ine/dee.
--HG--
branch : dtrg-videocore
|
2013-05-26 18:59:19 +01:00 |
|
David Given
|
e01f00e320
|
Allow reading from the mini UART. Add a check to not touch the UART unless it's been initialised (in case of accidents when running in kernel mode).
--HG--
branch : dtrg-videocore
|
2013-05-26 18:58:54 +01:00 |
|
David Given
|
366cd10194
|
Remainders are calculated correctly. printf now works.
--HG--
branch : dtrg-videocore
|
2013-05-26 13:13:58 +01:00 |
|
David Given
|
510888e6d5
|
.csb now works.
--HG--
branch : dtrg-videocore
rename : mach/vc4/libem/csa.s => mach/vc4/libem/csb.s
|
2013-05-26 13:06:25 +01:00 |
|
David Given
|
6284512b37
|
Fix erroneous section check (symbols may not have a defined section in pass 1).
--HG--
branch : dtrg-videocore
|
2013-05-26 00:35:15 +01:00 |
|
David Given
|
bd9497be77
|
Renamed the pi-specific functions to be a bit cleaner.
--HG--
branch : dtrg-videocore
rename : plat/rpi/libsys/phys_to_user.s => plat/rpi/libsys/pi_phys_to_user.s
rename : plat/rpi/libsys/uart.s => plat/rpi/libsys/pi_uart.s
rename : plat/rpi/libsys/user_to_phys.s => plat/rpi/libsys/pi_user_to_phys.s
|
2013-05-26 00:22:39 +01:00 |
|
David Given
|
308d41e083
|
Added triple-quad load and store (used by the signal stuff).
--HG--
branch : dtrg-videocore
|
2013-05-26 00:22:08 +01:00 |
|
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 |
|