Commit 34de028f by Michael Hayes Committed by Michael Hayes

c4x.c (c4x_process_after_reload): Rework machdep insn splitting to not use output template.

	* config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
	splitting to not use output template.

From-SVN: r29579
parent 634f1f20
Wed Sep 22 19:56:25 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
splitting to not use output template.
Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start. * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
......
...@@ -2200,26 +2200,25 @@ c4x_process_after_reload (first) ...@@ -2200,26 +2200,25 @@ c4x_process_after_reload (first)
if (insn_code_number == CODE_FOR_rptb_end) if (insn_code_number == CODE_FOR_rptb_end)
c4x_rptb_insert(insn); c4x_rptb_insert(insn);
/* We split all insns here if they have a # for the output /* When the optimization level less than 2 we need to split
template. */ the insn here. Otherwise the calls to force_const_mem
will not work. */
if (1) if (optimize < 2)
{ {
const char *template; rtx old = insn;
/* Don't split the insn if it has been deleted. */
if (! INSN_DELETED_P (old))
insn = try_split (PATTERN(old), old, 1);
template = get_insn_template (insn_code_number, insn); /* When not optimizing, the old insn will be still left around
if (template && template[0] == '#' && template[1] == '\0') with only the 'deleted' bit set. Transform it into a note
to avoid confusion of subsequent processing. */
if (INSN_DELETED_P (old))
{ {
rtx new = try_split (PATTERN(insn), insn, 0); PUT_CODE (old, NOTE);
NOTE_LINE_NUMBER (old) = NOTE_INSN_DELETED;
/* If we didn't split the insn, go away. */ NOTE_SOURCE_FILE (old) = 0;
if (new == insn && PATTERN (new) == PATTERN(insn))
fatal_insn ("Couldn't split pattern", insn);
PUT_CODE (insn, NOTE);
NOTE_SOURCE_FILE (insn) = 0;
NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
insn = new;
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment