[Bug target/94538] [10 Regression] ICE: in extract_constrain_insn_cached, at recog.c:2223 (insn does not satisfy its constraints) with -mcpu=cortex-m23 -mslow-flash-data
clyon at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 16 19:41:56 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94538
--- Comment #15 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to Wilco from comment #14)
> (In reply to Christophe Lyon from comment #11)
> > (In reply to Wilco from comment #10)
>
> > Right, but the code is functional.
>
> It doesn't avoid the literal load from flash which is exactly what pure-code
> and slow-flash-data is all about.
For f1 on M0, I can see:
.section .rodata.cst4,"aM",%progbits,4
.align 2
.LC0:
.word .LANCHOR0
.section .text,"0x20000006",%progbits
[...]
f1:
movs r3, #:upper8_15:#.LC0
lsls r3, #8
adds r3, #:upper0_7:#.LC0
lsls r3, #8
adds r3, #:lower8_15:#.LC0
lsls r3, #8
adds r3, #:lower0_7:#.LC0
ldr r3, [r3] @ 6 [c=10 l=2] *thumb1_movsi_insn/8
ldr r0, [r3] @ 7 [c=10 l=2] *thumb1_movsi_insn/8
bx lr
[...]
.bss
.align 2
.set .LANCHOR0,. + 0
.type x, %object
.size x, 4
x:
.space 4
So the 1st load is from .rodata.cst4 and the 2nd load is from bss, both of
which do not have the purecode bit set (unlike .text). Isn't that OK?
More information about the Gcc-bugs
mailing list