summaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/entry-macros.S
diff options
context:
space:
mode:
authorStuart Menefy <stuart.menefy@st.com>2009-08-24 10:09:53 +0200
committerPaul Mundt <lethal@linux-sh.org>2009-08-24 10:09:53 +0200
commitfea966f7564205fcf5919af9bde031e753419c96 (patch)
treeeb04727dfaad0c42bf9ba771e38f07c310622120 /arch/sh/include/asm/entry-macros.S
parentsh: Allow for kernel command line concatenation. (diff)
downloadlinux-fea966f7564205fcf5919af9bde031e753419c96.tar.xz
linux-fea966f7564205fcf5919af9bde031e753419c96.zip
sh: Remove implicit sign extension from assembler immediates
The SH instruction set has several instructions which accept an 8 bit immediate operand. For logical instructions this operand is zero extended, for arithmetic instructions the operand is sign extended. After adding an option to the assembler to check this, it was found that several pieces of assembly code were assuming this behaviour, and in one case getting it wrong. So this patch explicitly sign extends any immediate operands, which makes it obvious what is happening, and fixes the one case which got it wrong. Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/asm/entry-macros.S')
-rw-r--r--arch/sh/include/asm/entry-macros.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sh/include/asm/entry-macros.S b/arch/sh/include/asm/entry-macros.S
index 64fd0de24daf..cc43a55e1fcf 100644
--- a/arch/sh/include/asm/entry-macros.S
+++ b/arch/sh/include/asm/entry-macros.S
@@ -7,7 +7,7 @@
.endm
.macro sti
- mov #0xf0, r11
+ mov #0xfffffff0, r11
extu.b r11, r11
not r11, r11
stc sr, r10