]> git.gir.st - Chiptunes.git/commit - foo.c
new version
authorTobias Girstmair <t@thi3nkpad.lan>
Tue, 11 Dec 2018 00:38:43 +0000 (01:38 +0100)
committerTobias Girstmair <t@thi3nkpad.lan>
Tue, 11 Dec 2018 00:44:37 +0000 (01:44 +0100)
commit4466dd8b6842dcd98a892ece212799e475c2b1c2
treee6b8ca5a4d799a7fd63325427b6075c8dd03582a
parent02f61e33f5f8b7434a2c3f139fcecdf67d7bab24
new version

using this we can save a few more cycles (code size not yet compared).
working principle:
 we can distinguish which number to multiply by with the lower nibble
 only. to have maximum overlap, use a decision tree to select where to
 go. the upper nibble is then just a straight path (there is not much
 to deduplicate).

worst case (roughly):
- mul-tree: 30cy tree + 5cy to load data[t]
- cpi-breq-rjmp: 37cy mul_xx + 5cy to load data[t]
- ldZ-ijmp: 28cy mul_xx + 10cy to load mul_jmptable[t]
fakeasm.h
foo.c
Imprint / Impressum