| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright 2012 The Android Open Source Project | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license that can be | |
| 5 * found in the LICENSE file. | |
| 6 */ | |
| 7 #ifndef SkCachePreload_arm_DEFINED | |
| 8 #define SkCachePreload_arm_DEFINED | |
| 9 | |
| 10 // This file defines macros for preload instructions for ARM. These macros | |
| 11 // are designed to be embedded inside GNU inline assembly. | |
| 12 // For the use of these macros, __ARM_USE_PLD needs to be enabled. The cache | |
| 13 // line size also needs to be known (and needs to be contained inside | |
| 14 // __ARM_CACHE_LINE_SIZE). | |
| 15 #if defined(__ARM_USE_PLD) | |
| 16 | |
| 17 #define PLD(x, n) "pld [%["#x"], #("#n")]\n\t" | |
| 18 | |
| 19 #if __ARM_CACHE_LINE_SIZE == 32 | |
| 20 #define PLD64(x, n) PLD(x, n) PLD(x, (n) + 32) | |
| 21 #elif __ARM_CACHE_LINE_SIZE == 64 | |
| 22 #define PLD64(x, n) PLD(x, n) | |
| 23 #else | |
| 24 #error "unknown __ARM_CACHE_LINE_SIZE." | |
| 25 #endif | |
| 26 #else | |
| 27 // PLD is disabled, all macros become empty. | |
| 28 #define PLD(x, n) | |
| 29 #define PLD64(x, n) | |
| 30 #endif | |
| 31 | |
| 32 #define PLD128(x, n) PLD64(x, n) PLD64(x, (n) + 64) | |
| 33 | |
| 34 #endif // SkCachePreload_arm_DEFINED | |
| OLD | NEW |