diff options
author | Tom de Vries <tom@codesourcery.com> | 2014-04-25 11:21:40 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2014-04-25 11:21:40 +0000 |
commit | 97891c11e32537dfd2e4a4db1ca8d3eb541cf8aa (patch) | |
tree | f619c8dfb45013f73d3a208c27aae9880becdeda /gcc/expr.c | |
parent | 3ee634fd7b20399a1470db1a1e18d423ab761cf7 (diff) | |
download | gcc-97891c11e32537dfd2e4a4db1ca8d3eb541cf8aa.tar.gz |
Add clobber_reg
2014-04-25 Tom de Vries <tom@codesourcery.com>
* expr.c (clobber_reg_mode): New function.
* expr.h (clobber_reg): New function.
From-SVN: r209800
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 825a244b09a..fec6194af1f 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -2396,6 +2396,18 @@ use_reg_mode (rtx *call_fusage, rtx reg, enum machine_mode mode) = gen_rtx_EXPR_LIST (mode, gen_rtx_USE (VOIDmode, reg), *call_fusage); } +/* Add a CLOBBER expression for REG to the (possibly empty) list pointed + to by CALL_FUSAGE. REG must denote a hard register. */ + +void +clobber_reg_mode (rtx *call_fusage, rtx reg, enum machine_mode mode) +{ + gcc_assert (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER); + + *call_fusage + = gen_rtx_EXPR_LIST (mode, gen_rtx_CLOBBER (VOIDmode, reg), *call_fusage); +} + /* Add USE expressions to *CALL_FUSAGE for each of NREGS consecutive regs, starting at REGNO. All of these registers must be hard registers. */ |