On Sun, Mar 29, 2020 at 8:38 AM Christo Crause <christo.cra...@gmail.com> wrote:
> On Sat, Mar 28, 2020 at 11:04 PM Florian Klämpfl <flor...@freepascal.org> > wrote: > >> Am 28.03.20 um 21:33 schrieb Christo Crause via fpc-devel: >> > When building the xtensa rtl with >> > >> > make rtl FPC=~/fpc/3.3.1/compiler/ppcrossxtensa CROSSOPT=-Cacall0 >> > CPU_TARGET=xtensa OS_TARGET=embedded SUBARCH=esp8266 >> > BINUTILSPREFIX=xtensa-lx106-elf- >> > >> > the following errors are returned by as: >> > /home/christo/fpc/3.3.1/rtl/units/xtensa-embedded/system.s: Assembler >> > messages: >> > /home/christo/fpc/3.3.1/rtl/units/xtensa-embedded/system.s:203: Error: >> > unknown opcode or format name 'sext' >> > /home/christo/fpc/3.3.1/rtl/units/xtensa-embedded/system.s:204: Error: >> > unknown opcode or format name 'sext' >> > >> > When building with CROSSOPT=-Cawindowed as complains about other errors: >> > /home/christo/fpc/3.3.1/rtl/units/xtensa-embedded/system.s: Assembler >> > messages: >> > /home/christo/fpc/3.3.1/rtl/units/xtensa-embedded/system.s:11: Error: >> > unknown opcode or format name 'retw' >> > >> > Any tips on how to build the xtensa rtl? >> >> I didn't care about the call0 abi yet. Is it used by the esp8266? >> > > Inspecting some C examples I've compiled with PlatformIO for ESP8266 shows > use of callx0 for the non-rtos SDK. My goal was just to test the cross > compiler, but the RTL failed with error 2020031404 (in > tcpuparamanager.init_values) which seems to suggest an ABI must be > specified. Neither of the options I tried satisfied the assembler however. > According to the Xtensa ISA 4.3.8 the SEXT instruction is optional (and some others too) and apparently not implemented for ESP8266 according to core-isa.h in ESP8266_RTOS_SDK ( https://github.com/espressif/ESP8266_RTOS_SDK/blob/master/components/esp8266/include/xtensa/config/core-isa.h). This explains why xtensa-lx106-elf-as does not recognise the SEXT instruction. It seems that a different instruction sequence should be used for sign extension for the lx106 subarch. Also core-isa.h indicates XCHAL_HAVE_WINDOWED = 0, which I take to mean that the LX106 toolchain doesn't know/implement the windowed ABI, which explains why setting the FPC ABI to windowed caused as to flag retw as unknown.
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel