diff options
author | Camil Staps | 2016-09-19 09:50:25 +0200 |
---|---|---|
committer | Camil Staps | 2016-09-19 09:50:25 +0200 |
commit | 1f6e358d89bfa94e3f0b72a3365d1bcf5a893e6a (patch) | |
tree | 1e137868d9b2f7c7364f255aa871c66101ea00f1 /log.md | |
parent | Log (diff) |
Log 2016-09-18: vim plugin, question
Diffstat (limited to 'log.md')
-rw-r--r-- | log.md | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -3,6 +3,8 @@ Camil Staps ### 2016-09-18 +Made a Vim plugin for ABC code highlighting (camilstaps/vim-abc). + ARM/Thumb-2 mode switches are expensive, and since a Clean program continuously switches between the RTS and the program itself, it is not viable to have the RTS run in ARM mode and the code generator generate Thumb-2 code. Hence, I @@ -16,3 +18,10 @@ Started to make changes to the code generator: - Added `.thumb_func` before each code label - Fix for the `str pc,[sp,#-4]!` and similar instructions, since `pc` cannot be the `Rd` operand in a `str` instruction: copy to scratch register first. + +**Question**: +Is there an interface to get an auxiliary register in the code generator? For +example, to swap to registers a third is necessary (or the stack, but then the +PC and SP cannot be modified). In `w_as_jsr_instruction`, the PC is stored on +the stack, but PC cannot be `Rd` for `str`. Therefore we need an auxiliary +register (`8c91384` does this for some cases) |