summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/insn.h
diff options
context:
space:
mode:
authorRabin Vincent2012-02-18 17:50:06 +0100
committerRussell King2012-03-24 10:38:55 +0100
commitd82227cf8f0b42ff42c21ed47025fdf54cb1698d (patch)
tree7f2501ef1f17a4fad5febe4b6a524d0e28eff43e /arch/arm/kernel/insn.h
parentARM: 7330/1: ftrace: use canonical Thumb-2 wide instruction format (diff)
downloadkernel-qcow2-linux-d82227cf8f0b42ff42c21ed47025fdf54cb1698d.tar.gz
kernel-qcow2-linux-d82227cf8f0b42ff42c21ed47025fdf54cb1698d.tar.xz
kernel-qcow2-linux-d82227cf8f0b42ff42c21ed47025fdf54cb1698d.zip
ARM: 7331/1: extract out insn generation code from ftrace
Extract out the instruction generation code so that it can be used for jump labels too. Signed-off-by: Rabin Vincent <rabin@rab.in> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/insn.h')
-rw-r--r--arch/arm/kernel/insn.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/kernel/insn.h b/arch/arm/kernel/insn.h
new file mode 100644
index 000000000000..994d60fd3ff5
--- /dev/null
+++ b/arch/arm/kernel/insn.h
@@ -0,0 +1,19 @@
+#ifndef __ASM_ARM_INSN_H
+#define __ASM_ARM_INSN_H
+
+unsigned long
+__arm_gen_branch(unsigned long pc, unsigned long addr, bool link);
+
+static inline unsigned long
+arm_gen_branch(unsigned long pc, unsigned long addr)
+{
+ return __arm_gen_branch(pc, addr, false);
+}
+
+static inline unsigned long
+arm_gen_branch_link(unsigned long pc, unsigned long addr)
+{
+ return __arm_gen_branch(pc, addr, true);
+}
+
+#endif