diff options
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -450,6 +450,11 @@ extern void use_group_regs PARAMS ((rtx *, rtx)); If OBJECT has BLKmode, SIZE is its length in bytes. */ extern rtx clear_storage PARAMS ((rtx, rtx)); +/* Determine whether the LEN bytes can be moved by using several move + instructions. Return nonzero if a call to move_by_pieces should + succeed. */ +extern int can_move_by_pieces PARAMS ((unsigned HOST_WIDE_INT, unsigned int)); + /* Return nonzero if it is desirable to store LEN bytes generated by CONSTFUN with several move instructions by store_by_pieces function. CONSTFUNDATA is a pointer which will be passed as argument @@ -463,11 +468,12 @@ extern int can_store_by_pieces PARAMS ((unsigned HOST_WIDE_INT, /* Generate several move instructions to store LEN bytes generated by CONSTFUN to block TO. (A MEM rtx with BLKmode). CONSTFUNDATA is a pointer which will be passed as argument in every CONSTFUN call. - ALIGN is maximum alignment we can assume. */ -extern void store_by_pieces PARAMS ((rtx, unsigned HOST_WIDE_INT, - rtx (*) (PTR, HOST_WIDE_INT, - enum machine_mode), - PTR, unsigned int)); + ALIGN is maximum alignment we can assume. + Returns TO + LEN. */ +extern rtx store_by_pieces PARAMS ((rtx, unsigned HOST_WIDE_INT, + rtx (*) (PTR, HOST_WIDE_INT, + enum machine_mode), + PTR, unsigned int, int)); /* Emit insns to set X from Y. */ extern rtx emit_move_insn PARAMS ((rtx, rtx)); |