blob: 5475cbf9fb6b4266105353eee5ff1e4541eb8615 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_ARM_INSN_H
3#define __ASM_ARM_INSN_H
4
5static inline unsigned long
6arm_gen_nop(void)
7{
8#ifdef CONFIG_THUMB2_KERNEL
9 return 0xf3af8000; /* nop.w */
10#else
11 return 0xe1a00000; /* mov r0, r0 */
12#endif
13}
14
15unsigned long
Olivier Deprez157378f2022-04-04 15:47:50 +020016__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn);
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000017
18static inline unsigned long
19arm_gen_branch(unsigned long pc, unsigned long addr)
20{
Olivier Deprez157378f2022-04-04 15:47:50 +020021 return __arm_gen_branch(pc, addr, false, true);
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000022}
23
24static inline unsigned long
Olivier Deprez157378f2022-04-04 15:47:50 +020025arm_gen_branch_link(unsigned long pc, unsigned long addr, bool warn)
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000026{
Olivier Deprez157378f2022-04-04 15:47:50 +020027 return __arm_gen_branch(pc, addr, true, warn);
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000028}
29
30#endif