From: Markos Chandras Date: Wed, 5 Nov 2014 14:17:52 +0000 (+0000) Subject: MIPS: asm: asmmacro: Replace "add" instructions with "addu" X-Git-Tag: v3.16.35~2701 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f27d07312ffca015b45d3529342dcfb55a1058f2;p=thirdparty%2Fkernel%2Fstable.git 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 Cc: Maciej W. Rozycki Signed-off-by: Markos Chandras [ luis: backported to 3.16: adjusted context ] Signed-off-by: Luis Henriques --- diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h index 935543f145384..9dbc454ad14e8 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