aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
blob: 2f83968aad65e05ddbc30414935253e2bb17da92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* { dg-options "-mr10k-cache-barrier=store -G8" } */

/* Test that out-of-range stores to components of static objects
   are protected by a cache barrier.  */

struct { struct { char i[4]; } a; struct { char j[4]; } b; } s;

NOMIPS16 void
foo (int sel1, int sel2, int sel3)
{
  if (sel1)
    s.a.i[8] = 1;
  if (sel2)
    s.b.j[4] = 100;
  if (sel3)
    s.a.i[-1] = 0;
}

/* { dg-final { scan-assembler-times "\tcache\t" 3 } } */