Crosscompiler fails on RTL, ARM7EM subarchitecture
Original Reporter info from Mantis: lelekx
-
Reporter name:
Original Reporter info from Mantis: lelekx
- Reporter name:
Description:
The compiler fails to build the RTL, reports use of SP as a general purpose register.
Assembler log:
d:\freepascal-master\rtl\units\arm-embedded\sysutils.s: Assembler messages:
d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:2291: Error: r13 not allowed here -- adds r0,r13'<br/> d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:2304: Error: r13 not allowed here --
adds r0,r13'
d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:2320: Error: r13 not allowed here -- adds r0,r13'<br/> d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:2332: Error: r13 not allowed here --
adds r0,r13'
d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:5194: Error: r13 not allowed here -- adds r0,r13'<br/> d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:5207: Error: r13 not allowed here --
adds r0,r13'
d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:5227: Error: r13 not allowed here -- adds r0,r13'<br/> d:\freepascal-master\rtl\units\arm-embedded\sysutils.s:5236: Error: r13 not allowed here --
adds r0,r13'
Assembler version: GNU Tools for ARM Embedded Processors, 2.23.2.20131129
Log file and assembler input attached.
Steps to reproduce:
Build the crosscompiler. On win32, adujst the PATH variable and:
make clean buildbase installbase CROSSINSTALL=1 OS_TARGET=embedded CPU_TARGET=arm SUBARCH=armv7em
Additional information:
There are only few variants of ADD and SUB instructions, where SP may be used as an operand. Everything is explained in Texas Instruments' "Cortex-M3 Instruction Set Technical User's Manual", page 44.
Mantis conversion info:
- Mantis ID: 25637
- OS: -
- OS Build: -
- Build: Latest
- Platform: embedded
- Version: 2.7.1
- Fixed in version: 3.0.0
- Fixed in revision: 26612 (#184baa3f)