summaryrefslogtreecommitdiffstats
path: root/arch/mips/include
diff options
context:
space:
mode:
authorMarkos Chandras <markos.chandras@imgtec.com>2014-11-05 14:17:52 +0000
committerLuis Henriques <luis.henriques@canonical.com>2015-03-02 15:04:29 +0000
commitf27d07312ffca015b45d3529342dcfb55a1058f2 (patch)
tree2886a19100b7be488626340cdde0b1fcb9adf2a7 /arch/mips/include
parent0c24a6c4cc81f49a11389f480e4526cbf1e13d40 (diff)
downloadlinux-stable-f27d07312ffca015b45d3529342dcfb55a1058f2.tar.gz
linux-stable-f27d07312ffca015b45d3529342dcfb55a1058f2.tar.bz2
linux-stable-f27d07312ffca015b45d3529342dcfb55a1058f2.zip
MIPS: asm: asmmacro: Replace "add" instructions with "addu"
commit 98a833c1fa4de0695830f77b2d13fd86693da298 upstream. The "add" instruction is actually a macro in binutils and depending on the size of the immediate it can expand to an "addi" instruction. However, the "addi" instruction traps on overflows which is not something we want on address calculation. Link: http://www.linux-mips.org/archives/linux-mips/2015-01/msg00121.html Cc: Paul Burton <paul.burton@imgtec.com> Cc: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> [ luis: backported to 3.16: adjusted context ] Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Diffstat (limited to 'arch/mips/include')
-rw-r--r--arch/mips/include/asm/asmmacro.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h
index 935543f14538..9dbc454ad14e 100644
--- a/arch/mips/include/asm/asmmacro.h
+++ b/arch/mips/include/asm/asmmacro.h
@@ -293,7 +293,7 @@
.macro ld_d wd, off, base
.set push
.set noat
- add $1, \base, \off
+ addu $1, \base, \off
.word LDD_MSA_INSN | (\wd << 6)
.set pop
.endm
@@ -301,7 +301,7 @@
.macro st_d wd, off, base
.set push
.set noat
- add $1, \base, \off
+ addu $1, \base, \off
.word STD_MSA_INSN | (\wd << 6)
.set pop
.endm