Linux 6.13-rc4
[linux.git] / arch / sh / include / asm / cache_insns_32.h
blob470880b972cb1ea63e9813210c35a4c62c866cf5
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_SH_CACHE_INSNS_32_H
3 #define __ASM_SH_CACHE_INSNS_32_H
5 #include <linux/types.h>
7 #if defined(CONFIG_CPU_SH4A)
8 #define __icbi(addr) __asm__ __volatile__ ( "icbi @%0\n\t" : : "r" (addr))
9 #else
10 #define __icbi(addr) mb()
11 #endif
13 #define __ocbp(addr) __asm__ __volatile__ ( "ocbp @%0\n\t" : : "r" (addr))
14 #define __ocbi(addr) __asm__ __volatile__ ( "ocbi @%0\n\t" : : "r" (addr))
15 #define __ocbwb(addr) __asm__ __volatile__ ( "ocbwb @%0\n\t" : : "r" (addr))
17 static inline reg_size_t register_align(void *val)
19 return (unsigned long)(signed long)val;
22 #endif /* __ASM_SH_CACHE_INSNS_32_H */