stettberger
6 days ago
I had quite some fun implementing this at a very lovely lake in Sweden, while my colleagues were attending GPCE.
jfim
6 days ago
That's absolutely hilarious, and a pretty fun hack.
By the way, if I understood you correctly, this sentence
> I'm still missing 5 opcodes (MULS, MULSU, FMUL, FMULS, FMULSU), but until now I did not encounter a C file, the AVR-GCC emits these opcodes.
could be rewritten as
> There are 5 opcodes that are not implemented (MULS, MULSU, FMUL, FMULS, FMULSU), as I have not yet encountered a C file for which AVR-GCC emits these opcodes.
couchand
6 days ago
The classic AVR instruction set does not include multiplication, you have to be targeting a device that supports AVRe+, such as an ATmega rather than an ATtiny. Try adding -mmcu=avr5 and it will show up pretty quick. Example: https://godbolt.org/z/x951M8fn8
Edit: nice work author, I love it!
kevin_thibedeau
6 days ago
> rather than an ATtiny
The new ATtiny 0/1/2-series parts are full AVRxt cores with a few instructions removed due to lack of need for large memory access. The classic terminology differentiating product lines isn't particularly useful anymore. ATtiny can multiply now.
tzs
6 days ago
> I had quite some fun implementing this at a very lovely lake in Sweden
Was there a wonderful telephone system and many interesting furry animals?