diff options
author | Richard Stallman <rms@gnu.org> | 1992-05-27 20:52:20 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-05-27 20:52:20 +0000 |
commit | d8064a5d0ab07d0e39867ee22f8545ec6c4bb904 (patch) | |
tree | 338a61fcec20a04ccc68dd565ec42b9a2fca2eaa /gcc/expmed.c | |
parent | 55b2f10fbe1dff88a3d8c39ead368e1f06c8aaba (diff) | |
download | gcc-d8064a5d0ab07d0e39867ee22f8545ec6c4bb904.zip gcc-d8064a5d0ab07d0e39867ee22f8545ec6c4bb904.tar.gz gcc-d8064a5d0ab07d0e39867ee22f8545ec6c4bb904.tar.bz2 |
*** empty log message ***
From-SVN: r1101
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c index 07a6c27..9d0962e 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -2262,6 +2262,11 @@ expand_divmod (rem_flag, code, mode, op0, op1, target, unsignedp) if (rem_flag && GET_CODE (op1) == MEM && MEM_VOLATILE_P (op1)) op1 = force_reg (compute_mode, op1); + /* If we are computing the remainder, op0 will be needed later to calculate + X - Y * (X / Y), therefore cannot be clobbered. */ + if (rem_flag) + can_clobber_op0 = 0; + if (target == 0 || GET_MODE (target) != compute_mode) target = gen_reg_rtx (compute_mode); |