diff options
author | Camil Staps | 2016-11-26 20:55:48 +0100 |
---|---|---|
committer | Camil Staps | 2016-11-26 20:55:48 +0100 |
commit | 8ad297ee59ccbbfbab8e3f9ebc465cf740d363a1 (patch) | |
tree | f1c3517a14a0f64997729f054e9ee9f5a6856bb1 | |
parent | two-bits -> code-addresses (diff) |
log
-rw-r--r-- | log.md | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -465,3 +465,33 @@ Start = append (fromto toRec 1 100) (fromto toRec 500 1000) ``` Seems to work fine so far. + +### 2016-11-26 + +Some updates, log is outdated... + +- I had mixed the `heap_size` and `heap_size_multiple` variables in `cgopts.s` + in September, and setting them correctly breaks some programs (one example is + `lqueen.icl`). It most likely indicates a problem that was already there but + somehow did not occur before. + +- Adapted the RTS to use aliases for register names, so that optimisation can + be done easily. **TODO**: there is an optimisation possibility with + registers, as some narrow thumb instructions can only use r0-r7; the + most-used registers should be there. + +- A number of programs that this log claimed were working seems broken now, + perhaps I didn't check with small heap sizes before? + +- The compacting compiler is broken. + +--- + +There is an issue in `ccall`s; they attempt to do `and sp,sp,#-8` which is not +allowed (see 3.7 of the Thumb-2 supplement). The quick solution is to `mov` to +the scratch register, do the operation there, and then move back (implemented +in cg `4290310`). + +Tried compiling the Clean compiler with a hacked clm. Had to `strip cocl` +manually, then achieved a size of 5.1M (5325412 bytes) compared to 5.3M +(5475152) for ARM. Segfaults, of course, when tried to use. |