diff options
author | Martin Liska <mliska@suse.cz> | 2018-11-27 13:30:59 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-11-27 12:30:59 +0000 |
commit | 2ff5ffb623e17b6bb81532394cb1f42fe7b354c8 (patch) | |
tree | 82fc40305d36ff9ce012e68a6947467161e0a015 /gcc/rtl.h | |
parent | da193a2713d34358d564c9fd5b5347d7bc2cc150 (diff) | |
download | gcc-2ff5ffb623e17b6bb81532394cb1f42fe7b354c8.zip gcc-2ff5ffb623e17b6bb81532394cb1f42fe7b354c8.tar.gz gcc-2ff5ffb623e17b6bb81532394cb1f42fe7b354c8.tar.bz2 |
Come up with memop_ret enum instead of int endp for memory operations.
2018-11-27 Martin Liska <mliska@suse.cz>
* asan.c (asan_emit_stack_protection): Use new enum values
instead of int constants.
* builtins.c (expand_builtin_memory_copy_args): Replace int
type with memop_ret enum type.
(expand_builtin_mempcpy_args): Likewise.
(expand_builtin_memcpy): Use new enum values
instead of int constants. Likewise.
(expand_builtin_mempcpy): Likewise.
(expand_movstr): Likewise.
(expand_builtin_strcpy_args): Likewise.
(expand_builtin_stpcpy_1): Likewise.
(expand_builtin_strncpy): Likewise.
(expand_builtin_memset_args): Likewise.
* expr.c (move_by_pieces_d::finish_endp): Rename to ...
(move_by_pieces_d::finish_retmode): ... this.
(move_by_pieces): Change last argument type to memop_ret.
(store_by_pieces): Use new enum values
instead of int constants.
(emit_block_move_hints): Likewise.
(emit_push_insn): Likewise.
(store_expr): Likewise.
* expr.h (store_by_pieces): Change int to newly added enum
type.
* rtl.h (enum memop_ret): Define.
(move_by_pieces): Use the enum type.
From-SVN: r266508
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -4046,9 +4046,24 @@ extern void expand_null_return (void); extern void expand_naked_return (void); extern void emit_jump (rtx); +/* Memory operation built-ins differ by return value. Mapping + of the enum values is following: + - RETURN_BEGIN - return destination, e.g. memcpy + - RETURN_END - return destination + n, e.g. mempcpy + - RETURN_END_MINUS_ONE - return a pointer to the terminating + null byte of the string, e.g. strcpy +*/ + +enum memop_ret +{ + RETURN_BEGIN, + RETURN_END, + RETURN_END_MINUS_ONE +}; + /* In expr.c */ extern rtx move_by_pieces (rtx, rtx, unsigned HOST_WIDE_INT, - unsigned int, int); + unsigned int, memop_ret); extern poly_int64 find_args_size_adjust (rtx_insn *); extern poly_int64 fixup_args_size_notes (rtx_insn *, rtx_insn *, poly_int64); |