This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch RFC] SH: PR target/21623


Joern RENNECKE <joern.rennecke@st.com> wrote:
> Sorry, I forgot that this is specified to depend on fpscr, and that we 
> are running
> optimize_mode_switching before reload now.  This makes this solution 
> unusable
> for TARGET_FMOVD.  This means we need to go the secondary / tertiary reload
> route.  (At least for TARGET_FMOVD - we can use a special constraint to mean
> FP_REGS if !TARGET_FMOVD and NO_REGS if TARGET_FMOVD.)

I'll try it, though the secondary/tertiary reload stuff may be beyond
me.

BTW, I've got the several failures with the last patch and it seems
that the fldi0 pattern is used with early passes unexpectedly in failed
testcases.  Those faiures go away if the fldi0 pattern is fixed so as
to be used only after reload:

(define_insn "fldi0"
  [(set (match_operand:SI 0 "register_operand" "=f")
	(const_int 0))
   (use (match_operand:PSI 1 "fpscr_operand" "c"))]
  "TARGET_SH2E && reload_completed"

The revised patch can bootstrap with no new failures at the toplevel
"make -k check" on sh4-unknown-linux-gnu.  I've run tests on x86 cross
sh-unknown-elf with sh-sim/-m2e too and found no regressions.  It even
solves some old failures on -m2e:

Old tests that failed, that have disappeared: (Eeek!)

gcc.c-torture/execute/ashrdi-1.c execution,  -O1
gcc.c-torture/execute/ashrdi-1.c execution,  -O2
gcc.c-torture/execute/ashrdi-1.c execution,  -Os

though it would be accidental.

Regards,
	kaz


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]