summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/mips/r10k-cache-barrier-9.c
blob: cf795b6e7326d8f878f0762ad5051c228a25572e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* { dg-mips-options "-O2 -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 } } */