summaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/entry-macros.S
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-08-11 13:27:47 +0200
committerIngo Molnar <mingo@elte.hu>2008-08-11 13:27:47 +0200
commitc4c0c56a7a85ed5725786219e4fbca7e840b1531 (patch)
treec9d6b35a571fd5e80ddf5bf4a60142480eaa18d8 /arch/sh/include/asm/entry-macros.S
parentrcu classic: new algorithm for callbacks-processing(v2) (diff)
parentMerge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/c... (diff)
downloadlinux-c4c0c56a7a85ed5725786219e4fbca7e840b1531.tar.xz
linux-c4c0c56a7a85ed5725786219e4fbca7e840b1531.zip
Merge branch 'linus' into core/rcu
Diffstat (limited to 'arch/sh/include/asm/entry-macros.S')
-rw-r--r--arch/sh/include/asm/entry-macros.S33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/sh/include/asm/entry-macros.S b/arch/sh/include/asm/entry-macros.S
new file mode 100644
index 000000000000..2dab0b8d9454
--- /dev/null
+++ b/arch/sh/include/asm/entry-macros.S
@@ -0,0 +1,33 @@
+! entry.S macro define
+
+ .macro cli
+ stc sr, r0
+ or #0xf0, r0
+ ldc r0, sr
+ .endm
+
+ .macro sti
+ mov #0xf0, r11
+ extu.b r11, r11
+ not r11, r11
+ stc sr, r10
+ and r11, r10
+#ifdef CONFIG_CPU_HAS_SR_RB
+ stc k_g_imask, r11
+ or r11, r10
+#endif
+ ldc r10, sr
+ .endm
+
+ .macro get_current_thread_info, ti, tmp
+#ifdef CONFIG_CPU_HAS_SR_RB
+ stc r7_bank, \ti
+#else
+ mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
+ shll8 \tmp
+ shll2 \tmp
+ mov r15, \ti
+ and \tmp, \ti
+#endif
+ .endm
+