mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 09:41:44 +00:00
[MIPS] Fix branch emulation for floating-point exceptions.
In the branch emulation for floating-point exceptions, __compute_return_epc must determine for bc1f et al which condition code bit to test. This is based on bits <4:2> of the rt field. The switch statement to distinguish bc1f et al needs to use only the two low bits of rt, but the old code tests on the whole rt field. This patch masks off the proper bits. Signed-off-by: Win Treese <treese@acm.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
79e55bcf24
commit
ee1cca1b06
@ -184,7 +184,7 @@ int __compute_return_epc(struct pt_regs *regs)
|
||||
bit = (insn.i_format.rt >> 2);
|
||||
bit += (bit != 0);
|
||||
bit += 23;
|
||||
switch (insn.i_format.rt) {
|
||||
switch (insn.i_format.rt & 3) {
|
||||
case 0: /* bc1f */
|
||||
case 2: /* bc1fl */
|
||||
if (~fcr31 & (1 << bit))
|
||||
|
Loading…
Reference in New Issue
Block a user