mips32: MIPS32_OP_SRL was using SRA opcode.
commit62b526dbbdec073cdcf95bf5cdf622401aa55e78
authorTobias Diedrich <ranma+openocd@tdiedrich.de>
Mon, 1 Aug 2016 18:29:41 +0000 (1 20:29 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 18 Nov 2023 11:29:49 +0000 (18 11:29 +0000)
tree97eb2e47632799557336f85b58292947dbf492cb
parentf55b122b42c212fcb3219e372a7361d6573bd6a3
mips32: MIPS32_OP_SRL was using SRA opcode.

The mips opcode macro for the SRL opcode was using the wrong constant
value:

SRA -- Shift right arithmetic
Encoding: 0000 00-- ---t tttt dddd dhhh hh00 0011

SRL -- Shift right logical
Encoding: 0000 00-- ---t tttt dddd dhhh hh00 0010

This corrects the opcode constant for SRL and adds the SRA opcode for
completeness.

There is only one user of MIPS32_OP_SRL in src/flash/nor/cfi.c:
Since the mask constant (0x00000080 for the DQ7 mask) shifted in this
case would never have the sign bit set, it worked fine even though it
was accidentally using the SRA opcode instead of SRL.

Change-Id: I0a80746e2075c7df1ce35b9db00d9d0b997a3feb
Signed-off-by: Tobias Diedrich <ranma+openocd@tdiedrich.de>
Reviewed-on: https://review.openocd.org/c/openocd/+/3613
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Oleksij Rempel <linux@rempel-privat.de>
src/target/mips32.h