On Tue, Jul 19, 2011 at 3:47 PM, H.J. Lu <hjl.to...@gmail.com> wrote:
>> Attached patch simply removes these two checks, as it seems they are >> not needed. This also follows how other Pmode != ptr_mode targets. >> >> 2011-07-19 Uros Bizjak <ubiz...@gmail.com> >> >> PR target/49780 >> * config/i386/i386.c (ix86_legitimate_address_p): Remove checks that >> base and index registers are in Pmode. >> >> Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu >> {,-m32}. Can you please re-test it on x32? > > Comparing with my patch, which only allows DImode and SImode, > it caused the following regressions: > > FAIL: libgomp.fortran/omp_atomic1.f90 -O1 execution test > FAIL: libgomp.fortran/omp_atomic1.f90 -O2 execution test > FAIL: libgomp.fortran/omp_atomic1.f90 -O3 -fomit-frame-pointer execution > test > FAIL: libgomp.fortran/omp_atomic1.f90 -O3 -fomit-frame-pointer > -funroll-all-loops -finline-functions execution test > FAIL: libgomp.fortran/omp_atomic1.f90 -O3 -fomit-frame-pointer > -funroll-loops execution test > FAIL: libgomp.fortran/omp_atomic1.f90 -O3 -g execution test > FAIL: libgomp.fortran/omp_atomic1.f90 -Os execution test > >> BTW: I still think that template should return the same address >> structure as expansion, but this won't crash the compiler anymore. There is no non-DImode addresses in insn stream, so I doubt the bug is due to my change. Uros.