diff options
author | Otto Moerbeek <otto@cvs.openbsd.org> | 2006-04-18 18:32:02 +0000 |
---|---|---|
committer | Otto Moerbeek <otto@cvs.openbsd.org> | 2006-04-18 18:32:02 +0000 |
commit | 4a876bf4f9db5c8cc334e88a8d7480d091b7dfad (patch) | |
tree | 38eb92c05df2a63caddbfc02d6d795184956038a /gnu/usr.bin/gcc | |
parent | c6d0cb3804320d9e2ed2ad8f710263ef46dcc7db (diff) |
Backport fix for gcc bug #10692. Fixes code generation for htons()
on i386 with -march=i686 -O2. Problem report and nice test program by
chefren at pi dot net. Note that the fix is in non-target specific
code, even while the gcc people classified this as a m68k bug.
ok deraadt@
Diffstat (limited to 'gnu/usr.bin/gcc')
-rw-r--r-- | gnu/usr.bin/gcc/gcc/reload1.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gnu/usr.bin/gcc/gcc/reload1.c b/gnu/usr.bin/gcc/gcc/reload1.c index 69cdcf78ee3..35f6b6fc55e 100644 --- a/gnu/usr.bin/gcc/gcc/reload1.c +++ b/gnu/usr.bin/gcc/gcc/reload1.c @@ -6923,6 +6923,10 @@ do_input_reload (chain, rl, j) actually no need to store the old value in it. */ if (optimize + /* Only attempt this for input reloads; for RELOAD_OTHER we miss + that there may be multiple uses of the previous output reload. + Restricting to RELOAD_FOR_INPUT is mostly paranoia. */ + && rl->when_needed == RELOAD_FOR_INPUT && (reload_inherited[j] || reload_override_in[j]) && rl->reg_rtx && GET_CODE (rl->reg_rtx) == REG |