This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] RFC: Never gimplify ASM_EXPRs
On Thu, 05 Jun 2003 11:12:36 -0400, Jason Merrill <jason@redhat.com> wrote:
> Andrew and I discussed this issue at the summit, and agreed (I thought)
> that the asm should either make the operand an input/output operand or pass
> in X and do the dereference in the explicit assembly.
Thus:
*** boehm-gc/include/private/gcconfig.h.~1~ 2003-05-07 11:14:51.000000000 -0400
--- boehm-gc/include/private/gcconfig.h 2003-06-05 11:50:33.000000000 -0400
***************
*** 973,979 ****
# endif
# ifdef USE_I686_PREFETCH
# define PREFETCH(x) \
! __asm__ __volatile__ (" prefetchnta %0": : "m"(*(char *)(x)))
/* Empirically prefetcht0 is much more effective at reducing */
/* cache miss stalls for the targetted load instructions. But it */
/* seems to interfere enough with other cache traffic that the net */
--- 973,979 ----
# endif
# ifdef USE_I686_PREFETCH
# define PREFETCH(x) \
! __asm__ __volatile__ (" prefetchnta (%0)": : "r"((char *)(x)))
/* Empirically prefetcht0 is much more effective at reducing */
/* cache miss stalls for the targetted load instructions. But it */
/* seems to interfere enough with other cache traffic that the net */
***************
*** 982,995 ****
/* Using prefetches for write seems to have a slight negative */
/* impact on performance, at least for a PIII/500. */
# define PREFETCH_FOR_WRITE(x) \
! __asm__ __volatile__ (" prefetcht0 %0": : "m"(*(char *)(x)))
# endif
# endif
# ifdef USE_3DNOW_PREFETCH
# define PREFETCH(x) \
! __asm__ __volatile__ (" prefetch %0": : "m"(*(char *)(x)))
# define PREFETCH_FOR_WRITE(x) \
! __asm__ __volatile__ (" prefetchw %0": : "m"(*(char *)(x)))
# endif
# endif
# ifdef CYGWIN32
--- 982,995 ----
/* Using prefetches for write seems to have a slight negative */
/* impact on performance, at least for a PIII/500. */
# define PREFETCH_FOR_WRITE(x) \
! __asm__ __volatile__ (" prefetcht0 (%0)": : "r"((char *)(x)))
# endif
# endif
# ifdef USE_3DNOW_PREFETCH
# define PREFETCH(x) \
! __asm__ __volatile__ (" prefetch (%0)": : "r"((char *)(x)))
# define PREFETCH_FOR_WRITE(x) \
! __asm__ __volatile__ (" prefetchw (%0)": : "r"((char *)(x)))
# endif
# endif
# ifdef CYGWIN32