From: Petar Jovanovic Date: Wed, 5 Oct 2016 14:16:25 +0000 (+0000) Subject: mips: replace use of (d)addi with (d)addiu X-Git-Tag: svn/VALGRIND_3_13_0~359 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ddc3b67f411266ca5451ef48e4a19f1e42b467c2;p=thirdparty%2Fvalgrind.git mips: replace use of (d)addi with (d)addiu Replace use of daddi/addi with daddiu/addiu. This is more R6-friendly and we actually want to use the instructions that do not cause integer overflow exception. Patch by Vicente Olivert Riera. Related issue - BZ#356112. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16018 --- diff --git a/coregrind/m_dispatch/dispatch-mips32-linux.S b/coregrind/m_dispatch/dispatch-mips32-linux.S index 22b6b382aa..0ff5f485a7 100644 --- a/coregrind/m_dispatch/dispatch-mips32-linux.S +++ b/coregrind/m_dispatch/dispatch-mips32-linux.S @@ -196,7 +196,7 @@ VG_(disp_cp_xindir): addu $13, $13, $14 lw $12, 0($13) /* t3 = VG_(tt_fast)[hash] :: ULong* */ - addi $13, $13, 4 + addiu $13, $13, 4 lw $25, 0($13) /* little-endian, so comparing 1st 32bit word */ nop diff --git a/coregrind/m_dispatch/dispatch-mips64-linux.S b/coregrind/m_dispatch/dispatch-mips64-linux.S index 5e5afee060..5eec8e5ce8 100644 --- a/coregrind/m_dispatch/dispatch-mips64-linux.S +++ b/coregrind/m_dispatch/dispatch-mips64-linux.S @@ -196,7 +196,7 @@ VG_(disp_cp_xindir): daddu $13, $13, $14 ld $12, 0($13) /* t3 = VG_(tt_fast)[hash] :: ULong* */ - daddi $13, $13, 8 + daddiu $13, $13, 8 ld $25, 0($13) /* little-endian, so comparing 1st 32bit word */ nop diff --git a/coregrind/m_libcsetjmp.c b/coregrind/m_libcsetjmp.c index 24ca357324..39d6415dba 100644 --- a/coregrind/m_libcsetjmp.c +++ b/coregrind/m_libcsetjmp.c @@ -594,7 +594,7 @@ __asm__( /* Checking whether second argument is zero. */ " bnez $a1, 1f \n\t" " nop \n\t" -" addi $a1, $a1, 1 \n\t" /* We must return 1 if val=0. */ +" addiu $a1, $a1, 1 \n\t" /* We must return 1 if val=0. */ "1: \n\t" " move $v0, $a1 \n\t" /* Return value of second argument. */ " j $ra \n\t" diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c index db051541e9..ed274954b7 100644 --- a/coregrind/m_syswrap/syswrap-mips64-linux.c +++ b/coregrind/m_syswrap/syswrap-mips64-linux.c @@ -173,7 +173,7 @@ asm( " ld $30, 8($29)\n" " ld $28, 16($29)\n" " jr $31\n" -" daddi $29,$29, 32\n" +" daddiu $29,$29, 32\n" ".previous\n" ); diff --git a/coregrind/m_trampoline.S b/coregrind/m_trampoline.S index 176ea6693c..ef7c4e69b3 100644 --- a/coregrind/m_trampoline.S +++ b/coregrind/m_trampoline.S @@ -1278,8 +1278,8 @@ VG_(mips32_linux_REDIR_FOR_strlen): //la $a0, string j strlen_cond strlen_loop: - addi $v0, $v0, 1 - addi $a0, $a0, 1 + addiu $v0, $v0, 1 + addiu $a0, $a0, 1 strlen_cond: lbu $t0, ($a0) bne $t0, $zero, strlen_loop diff --git a/helgrind/tests/tc08_hbl2.c b/helgrind/tests/tc08_hbl2.c index c3ea44c872..4913abe2c1 100644 --- a/helgrind/tests/tc08_hbl2.c +++ b/helgrind/tests/tc08_hbl2.c @@ -125,11 +125,11 @@ # define INC(_lval,_lqual) \ __asm__ __volatile__ ( \ "L1xyzzy1" _lqual":\n" \ - " move $t0, %0\n" \ - " ll $t1, 0($t0)\n" \ - " addi $t1, $t1, 1\n" \ - " sc $t1, 0($t0)\n" \ - " beqz $t1, L1xyzzy1" _lqual \ + " move $t0, %0\n" \ + " ll $t1, 0($t0)\n" \ + " addiu $t1, $t1, 1\n" \ + " sc $t1, 0($t0)\n" \ + " beqz $t1, L1xyzzy1" _lqual \ : /*out*/ : /*in*/ "r"(&(_lval)) \ : /*trash*/ "t0", "t1", "memory" \ )