[Bug target/65283] New: [SH] lds fpscr not put in delay slot
olegendo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 2 21:32:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65283
Bug ID: 65283
Summary: [SH] lds fpscr not put in delay slot
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: olegendo at gcc dot gnu.org
Target: sh*-*-*
Compiling this example:
float test (float a, float b)
{
return a + b;
}
with -O2 -m4 -ml results in:
sts fpscr,r1
mov.l .L3,r2
xor r2,r1
lds r1,fpscr
fmov fr5,fr0
fadd fr4,fr0
sts fpscr,r1
xor r2,r1
lds r1,fpscr
rts
nop
The problem is that the lds_fpscr insn is a multiple-set insn and thus the
delay-branch pass will not consider it.
More information about the Gcc-bugs
mailing list