rs6000-string.c: (expand_block_clear...

2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	* config/rs6000/rs6000-string.c: (expand_block_clear,
	do_load_for_compare, select_block_compare_mode,
	compute_current_alignment, expand_block_compare,
	expand_strncmp_align_check, expand_strn_compare,
	expand_block_move, rs6000_output_load_multiple)
	Move functions related to string/block move/compare
	to a separate file.
	* config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
	* config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
	for this function which is now used in two files.
	* config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
	* config.gcc: Add rs6000-string.o to extra_objs for
	targets powerpc*-*-* and rs6000*-*-*.

From-SVN: r249608
This commit is contained in:
Aaron Sawdey 2017-06-23 19:59:42 +00:00 committed by Aaron Sawdey
parent 37416b699f
commit 8845cb377a
6 changed files with 1489 additions and 1432 deletions

View File

@ -1,3 +1,19 @@
2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
* config/rs6000/rs6000-string.c: (expand_block_clear,
do_load_for_compare, select_block_compare_mode,
compute_current_alignment, expand_block_compare,
expand_strncmp_align_check, expand_strn_compare,
expand_block_move, rs6000_output_load_multiple)
Move functions related to string/block move/compare
to a separate file.
* config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
* config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
for this function which is now used in two files.
* config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
* config.gcc: Add rs6000-string.o to extra_objs for
targets powerpc*-*-* and rs6000*-*-*.
2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/80510

View File

@ -454,6 +454,7 @@ powerpc*-*-*spe*)
;;
powerpc*-*-*)
cpu_type=rs6000
extra_objs="rs6000-string.o"
extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h x86intrin.h"
extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
@ -471,6 +472,7 @@ riscv*)
;;
rs6000*-*-*)
extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
extra_objs="rs6000-string.o"
;;
sparc*-*-*)
cpu_type=sparc

View File

@ -134,6 +134,7 @@ extern void rs6000_emit_sCOND (machine_mode, rtx[]);
extern void rs6000_emit_cbranch (machine_mode, rtx[]);
extern char * output_cbranch (rtx, const char *, int, rtx_insn *);
extern const char * output_probe_stack_range (rtx, rtx);
extern void rs6000_emit_dot_insn (rtx dst, rtx src, int dot, rtx ccreg);
extern bool rs6000_emit_set_const (rtx, rtx);
extern int rs6000_emit_cmove (rtx, rtx, rtx, rtx);
extern int rs6000_emit_vector_cond_expr (rtx, rtx, rtx, rtx, rtx, rtx);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -26,6 +26,10 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c
$(COMPILE) $<
$(POSTCOMPILE)
rs6000-string.o: $(srcdir)/config/rs6000/rs6000-string.c
$(COMPILE) $<
$(POSTCOMPILE)
$(srcdir)/config/rs6000/rs6000-tables.opt: $(srcdir)/config/rs6000/genopt.sh \
$(srcdir)/config/rs6000/rs6000-cpus.def
$(SHELL) $(srcdir)/config/rs6000/genopt.sh $(srcdir)/config/rs6000 > \