Closed jjsuwa-sys3175 closed 2 years ago
Can you compare the generated binary sizes, please, for a non-trivial example? Maybe one of the webserver ones?
I'm worried it may grow somewhat by replacing a single instruction and constant (which might be shared now, saving more space) with multiple instructions.
I'm worried it may grow somewhat by replacing a single instruction and constant (which might be shared now, saving more space) with multiple instructions.
until now, the replacement occurs only if optimizing for size (-Os
, default setting for Arduino core) because reciprocal throughput of L32R
may reach 1 cycle;
(see https://github.com/earlephilhower/esp-quick-toolchain/pull/20#issuecomment-745783611)
however for ESP8266, that assumption is not correct.
Again, -Os
was specified in platform.txt
already, thus replaciing L32R
(+ 4-byte literal) to MOVI.n
+ SLLI
was always done unless the option was changed to -O2
.
(Arduino sketch is here)
it concludes:
on ESP8266.
the refman says this behavior is implementation-specific:
Xtensa(R) Instruction Set Reference Manual, "4.5.8 General RAM/ROM Option Features"