Commit graph

  • ef8e6e25e0 Fix a whole pile of issues related to the failed attempt to increase the number of types of relocation possible in the object file. (Now, hopefully, working.) David Given 2016-03-18 21:46:55 +0100
  • fd7e9f9046 Fix an insidious 64-bitness bug which was causing incorrectly optimised code. David Given 2016-03-17 22:30:24 +0100
  • 391cb0f2cd Fix checkin into wrong hg branch. David Given 2016-03-17 20:53:45 +0100
  • 863b610144 Fix use-after-free. David Given 2016-03-17 20:52:27 +0100
  • b7b449cec3 Install directory now defaults to INSDIR, for ease of use during development. David Given 2016-03-17 20:52:15 +0100
  • 7e964dd25e Raise the limit on ack.out relocation types by making the size of a relocation structure bigger. Bump ack.out magic number. David Given 2016-03-14 21:08:55 +0100
  • 88e13ecce3 Don't use the ACK preprocessor on host files --- use the host preprocessor instead. David Given 2016-03-14 20:58:19 +0100
  • e85991ec86 Fix stray 'call file'. David Given 2016-03-13 21:40:05 +0100
  • 436db46f48 Merge in VideoCore IV code generator. David Given 2016-03-13 21:39:05 +0100
  • ff0c78cc78 Merge from default. David Given 2016-03-13 21:13:09 +0100
  • 4c5eb9a602 The ACK needs ed? Also, Ubuntu doesn't *have* ed? David Given 2015-06-19 22:14:09 +0200
  • 5e9f79db05 Add Travis config file. David Given 2015-06-19 22:07:16 +0200
  • 3f09da5045 Rename branch. David Given 2015-06-18 23:39:26 +0200
  • f07c6e4d6a Rename branch. David Given 2015-06-18 23:39:25 +0200
  • ff774212be Rename branch. David Given 2015-06-18 23:39:25 +0200
  • 171f16d7b8 Rename branch. David Given 2015-06-18 23:38:50 +0200
  • 62cc636f10 Merge. David Given 2015-03-23 00:15:42 +0100
  • 44b5d01525 Merge. David Given 2015-03-23 00:14:10 +0100
  • b146d2641c Fix a slightly mysterious dependency issue. David Given 2015-03-23 00:09:41 +0100
  • 98ea849d03 Improve flex correctness. David Given 2015-03-23 00:09:27 +0100
  • 9f23fbbe6a Allow machines to use cg if they wish. David Given 2015-03-23 00:08:51 +0100
  • c5018d7088 64-bit-ify (adhoc varargs are evil). David Given 2015-03-23 00:07:59 +0100
  • 3d5e72e20b Newer versions of GNU Make have a new function which collides with a variable we're using; change the name of the variable. David Given 2015-03-22 12:09:46 +0100
  • 2271bcd0a7 Fixed a parallel build race condition (forgot to declare a dependency to the makefile). David Given 2014-11-09 18:47:51 +0100
  • 6a340ea1bd Remove regrettable comment. David Given 2014-08-31 13:40:39 +0200
  • e36d739fa4 Add (largely untested) float/int conversion. David Given 2013-07-01 13:05:36 +0100
  • 8b6951dac0 Fix incorrect offset encoding in lea (sp) instructions. David Given 2013-06-29 00:35:07 +0100
  • edb174da8d Fix incorrect encoding of 'push lr' and 'pop pc'. David Given 2013-06-29 00:32:39 +0100
  • 29af6f1adb ISA change: clz has been renamed to log2. David Given 2013-06-27 11:25:50 +0100
  • 2b3f95de0b Fix jump range checking in the addcmpb family of instructions. David Given 2013-06-26 23:32:54 +0100
  • c72eaef8ee Add routine to set the Raspberry Pi clock to 250MHz (loads faster than the default 19.2MHz). David Given 2013-06-24 23:57:27 +0100
  • d94c1c8150 Updated distr files. David Given 2013-06-21 23:38:21 +0100
  • 2be811bac2 Updated VC4 docs. David Given 2013-06-21 23:21:08 +0100
  • fd2360be0f Ship assembler man pages. David Given 2013-06-21 23:20:50 +0100
  • 55be35a68a Add a stub malloc.h. David Given 2013-06-20 00:15:14 +0100
  • 052dd9bfc0 Actually remember to set the stack pointer on startup. Reduce to stack from 16kB to a much more reasonable 1kB. David Given 2013-06-20 00:14:55 +0100
  • eaf4339cd6 Implement a very crude busy-wait based select() mechanism for consol input. David Given 2013-06-09 22:16:30 +0100
  • bbd4b46850 Fix stack corruption when adjusting SP. Be a bit more rigorous about clearing the pseudostack on branch/labels. David Given 2013-06-07 21:25:38 +0100
  • ed6c4a85d1 Change the size of the SRAM area to 128kB (to reflect reality). David Given 2013-06-06 00:05:48 +0100
  • 3e0123ca03 Fix treatment of out-of-range values in switch csa. David Given 2013-06-05 23:57:23 +0100
  • aacabba165 Apply fix contributed by George Koehler: - don't crash if BSS overlaps BDOS - fix stack initialisation bug - fix command line argification David Given 2013-06-02 22:02:15 +0100
  • 86c6fa2f1e Implement NOT... David Given 2013-05-30 23:50:19 +0100
  • d5a112dbfd Some more termios compatibility options. David Given 2013-05-30 23:25:22 +0100
  • 2054618e75 Add basic termios to the rpi platform to allow echoing/newline translation to be controlled. David Given 2013-05-30 23:19:55 +0100
  • d273497077 Add some missing libc functions: setenv, unsetenv, strdup. David Given 2013-05-29 21:41:58 +0100
  • 074b42aa97 Add some missing libc functions: setenv, unsetenv, strdup. David Given 2013-05-29 21:41:58 +0100
  • f522aba4af Add support for snprintf and vsnprintf. Try and make the return value a bit more standards-compliant. David Given 2013-05-29 17:10:58 +0100
  • 69953d016c Add support for snprintf and vsnprintf. Try and make the return value a bit more standards-compliant. David Given 2013-05-29 17:10:58 +0100
  • d3e3e72860 Update from trunk. David Given 2013-05-29 15:03:48 +0100
  • 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. David Given 2013-05-29 14:48:51 +0100
  • e0c121d6e6 Use relocation enumerations rather than hard-coded values for relocation types (these were causing problems due to the enumeration values having changed). David Given 2013-05-29 14:11:04 +0100
  • 1f36370d87 Implement nop (the C compiler sometimes generates this!). David Given 2013-05-26 22:54:53 +0100
  • ae993b1eb2 Add a crude README. David Given 2013-05-26 19:54:22 +0100
  • 38e4726f5c Boot code now works properly in both kernel and bare-metal mode. David Given 2013-05-26 19:41:37 +0100
  • ef25c53c9c Fix bug in ine/dee. David Given 2013-05-26 18:59:19 +0100
  • 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). David Given 2013-05-26 18:58:54 +0100
  • 366cd10194 Remainders are calculated correctly. printf now works. David Given 2013-05-26 13:13:58 +0100
  • 510888e6d5 .csb now works. David Given 2013-05-26 13:06:25 +0100
  • 6284512b37 Fix erroneous section check (symbols may not have a defined section in pass 1). David Given 2013-05-26 00:35:15 +0100
  • bd9497be77 Renamed the pi-specific functions to be a bit cleaner. David Given 2013-05-26 00:22:39 +0100
  • 308d41e083 Added triple-quad load and store (used by the signal stuff). David Given 2013-05-26 00:22:08 +0100
  • e299cc3bcf stdio (output only) now works. David Given 2013-05-25 23:59:31 +0100
  • 8c21a2ef9b Stop fighting the terrible code and remove the regvar support --- it didn't help much and was a pain. David Given 2013-05-25 23:58:35 +0100
  • 6a672d5e96 Heap allocations now works. David Given 2013-05-25 23:28:47 +0100
  • 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.) David Given 2013-05-25 23:26:10 +0100
  • b6680a48cc Disable register variables. The code is a bit worse, but having two stackable registers makes things much easier to understand. David Given 2013-05-25 13:31:58 +0100
  • d7efb0a32c Implement .csa. David Given 2013-05-25 13:31:27 +0100
  • 2ee79ab0b2 Encode comparing branch correctly. David Given 2013-05-25 13:31:01 +0100
  • ec25fec145 Build binaries that will run bare metal. Add enough syscall library to init the uart and write text. David Given 2013-05-25 00:35:29 +0100
  • 472f778342 Don't write out constant data as big-endian! Some other cleanups. David Given 2013-05-25 00:33:38 +0100
  • 98e745d04c Fix awful bug where uint32_t was sometimes defined as a short. David Given 2013-05-25 00:33:01 +0100
  • 98a51732ab Various codegen tweaks. David Given 2013-05-24 17:04:29 +0100
  • 2c7ee27206 Double-quads can be loaded and stored (more) correctly. David Given 2013-05-22 23:55:23 +0100
  • 6cbe6e1c4e Better treatment of sign extension. David Given 2013-05-22 23:12:48 +0100
  • 8f338f9b44 Now actually runs on real hardware. David Given 2013-05-22 22:46:10 +0100
  • 7537c85e0a Generate adds instructions when a shift-and-add is seen (useful for array indexing). David Given 2013-05-22 21:37:48 +0100
  • b5e5df4a63 Allocate a user stack to run code in. David Given 2013-05-22 18:25:30 +0100
  • cdce394b6c Generate ld rd, (rs) instructions properly. David Given 2013-05-22 11:02:46 +0100
  • 9e556d8b7b Optimise direct access to globals, and incrementing and decrementing locals. David Given 2013-05-22 10:55:13 +0100
  • 0068952bd1 Build the Raspberry Pi code. David Given 2013-05-22 09:47:22 +0100
  • 6b5316dcfa More typo fixes. David Given 2013-05-22 00:52:58 +0100
  • 08c4334224 Typo fixes. David Given 2013-05-22 00:44:04 +0100
  • 72542288cd Adjust bootstrap code to build kernels that work with the mailbox test app. David Given 2013-05-22 00:16:59 +0100
  • f904465e9c Fix signedness problem that was showing up on ARM. David Given 2013-05-22 00:16:16 +0100
  • 5e9102955c Reworked VC4 relocations and some of the instruction encoding to be actually correct. Now generating what could be real code! David Given 2013-05-21 23:17:30 +0100
  • 1312fe298b Now compiles (incorrectly) the entire libc, libpc, libm2 and libbasic! David Given 2013-05-21 20:05:26 +0100
  • 92817a6ad7 Allow platforms to specify size of long double; seperate alignment from size. David Given 2013-05-21 19:18:11 +0100
  • 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 +0100
  • 6cdea73e84 Add a lot more opcodes. David Given 2013-05-20 23:27:45 +0100
  • d6565f4d5b Fix typo. David Given 2013-05-20 23:27:31 +0100
  • e5341e4167 Remember to clear ackflags on reset. David Given 2013-05-20 22:41:27 +0100
  • 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 +0100
  • 5082b2a5d7 Add lea instruction. Fix dependency issues. David Given 2013-05-20 19:56:33 +0100
  • 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 +0100
  • 76ba0bf6b3 First steps towards a code generator. David Given 2013-05-19 23:33:42 +0100
  • 61bff18082 Added skeleton bootstrap code. David Given 2013-05-19 23:33:29 +0100
  • 80f85001fa Correctly emit constants in some ALU instructions. David Given 2013-05-19 23:19:10 +0100
  • a46ee91859 Fix warning. David Given 2013-05-19 23:18:36 +0100
  • 4f15423d63 Add compare-and-branch instructions. David Given 2013-05-19 18:40:19 +0100
  • 80afe75c9b Added memory operations that work on fixed up addresses. David Given 2013-05-19 13:03:53 +0100