| /* { dg-options "-mabi=64 -mr10k-cache-barrier=store" } */ |
| |
| /* Test that stores to uncached addresses do not get unnecessary |
| cache barriers. */ |
| |
| #define TEST(ADDR) \ |
| NOMIPS16 void \ |
| test_##ADDR (int n) \ |
| { \ |
| while (n--) \ |
| { \ |
| *(volatile char *) (0x##ADDR##UL) = 1; \ |
| *(volatile short *) (0x##ADDR##UL + 2) = 2; \ |
| *(volatile int *) (0x##ADDR##UL + 4) = 0; \ |
| } \ |
| } |
| |
| TEST (9000000000000000) |
| TEST (900000fffffffff8) |
| |
| TEST (9200000000000000) |
| TEST (920000fffffffff8) |
| |
| TEST (9400000000000000) |
| TEST (940000fffffffff8) |
| |
| TEST (9600000000000000) |
| TEST (960000fffffffff8) |
| |
| TEST (b800000000000000) |
| TEST (b80000fffffffff8) |
| |
| TEST (ba00000000000000) |
| TEST (ba0000fffffffff8) |
| |
| TEST (bc00000000000000) |
| TEST (bc0000fffffffff8) |
| |
| TEST (be00000000000000) |
| TEST (be0000fffffffff8) |
| |
| TEST (ffffffffa0000000) |
| TEST (ffffffffbffffff8) |
| |
| /* { dg-final { scan-assembler-not "\tcache\t" } } */ |