162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#ifndef __ASM_REGS_OPS_H 462306a36Sopenharmony_ci#define __ASM_REGS_OPS_H 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#define mfcr(reg) \ 762306a36Sopenharmony_ci({ \ 862306a36Sopenharmony_ci unsigned int tmp; \ 962306a36Sopenharmony_ci asm volatile( \ 1062306a36Sopenharmony_ci "mfcr %0, "reg"\n" \ 1162306a36Sopenharmony_ci : "=r"(tmp) \ 1262306a36Sopenharmony_ci : \ 1362306a36Sopenharmony_ci : "memory"); \ 1462306a36Sopenharmony_ci tmp; \ 1562306a36Sopenharmony_ci}) 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define mtcr(reg, val) \ 1862306a36Sopenharmony_ci({ \ 1962306a36Sopenharmony_ci asm volatile( \ 2062306a36Sopenharmony_ci "mtcr %0, "reg"\n" \ 2162306a36Sopenharmony_ci : \ 2262306a36Sopenharmony_ci : "r"(val) \ 2362306a36Sopenharmony_ci : "memory"); \ 2462306a36Sopenharmony_ci}) 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#endif /* __ASM_REGS_OPS_H */ 27